Installation
Requirements
Section titled “Requirements”- Docker (v20+) and Docker Compose (v2+)
- Git
- 4 GB+ RAM recommended (MySQL + Redis + 4 services)
Clone the Repository
Section titled “Clone the Repository”git clone https://github.com/appstorecat/appstorecat.gitcd appstorecatRun setup with a single command:
make setupThis command:
- Builds all Docker containers (
server,web,scraper-ios,scraper-android,mysql,redis) - Installs dependencies (Composer for the server, npm for web and the App Store scraper)
- Generates the Laravel
APP_KEY - Runs the database migrations
Start the Services
Section titled “Start the Services”make devAll services will start in the background:
| Service | URL | Description |
|---|---|---|
| Backend API | http://localhost:7460 | Laravel API gateway |
| Frontend | http://localhost:7461 | React SPA |
| App Store Scraper | http://localhost:7462 | iOS data source |
| Google Play Scraper | http://localhost:7463 | Android data source |
| MySQL | localhost:7464 | Database (host-side; container is :3306) |
| Redis | localhost:7465 | Cache & queue (host-side; container is :6379) |
Verify the Setup
Section titled “Verify the Setup”Check that all services are running:
make psYou should see 6 healthy containers: appstorecat-server, appstorecat-web, appstorecat-scraper-ios, appstorecat-scraper-android, appstorecat-mysql, appstorecat-redis.
Visit http://localhost:7461 to reach the frontend.
Seed Store Categories
Section titled “Seed Store Categories”After setup, seed the store categories (App Store and Google Play categories):
make seedStop the Services
Section titled “Stop the Services”make downStart Services Individually
Section titled “Start Services Individually”If you only need specific services:
make dev-server # Backend + MySQL + Redismake dev-web # Frontend onlymake dev-ios # App Store scraper onlymake dev-android # Google Play scraper onlyTroubleshooting
Section titled “Troubleshooting”Port Conflicts
Section titled “Port Conflicts”Default ports are in the 7460–7465 range. If any port is in use, change it by editing the .env file at the project root.
Database Connection Issues
Section titled “Database Connection Issues”If the backend cannot connect to MySQL, wait a few seconds for the health check to pass:
docker compose logs appstorecat-mysqlClean Install
Section titled “Clean Install”To remove all containers and volumes and start from scratch:
make clean # Remove containers and volumesmake setup # Rebuild everythingFor a full reset including local Docker images:
make nuke # Remove everything, images includedmake setup