Skip to content

Installation

  • Docker (v20+) and Docker Compose (v2+)
  • Git
  • 4 GB+ RAM recommended (MySQL + Redis + 4 services)
Terminal window
git clone https://github.com/appstorecat/appstorecat.git
cd appstorecat

Run setup with a single command:

Terminal window
make setup

This command:

  1. Builds all Docker containers (server, web, scraper-ios, scraper-android, mysql, redis)
  2. Installs dependencies (Composer for the server, npm for web and the App Store scraper)
  3. Generates the Laravel APP_KEY
  4. Runs the database migrations
Terminal window
make dev

All services will start in the background:

ServiceURLDescription
Backend APIhttp://localhost:7460Laravel API gateway
Frontendhttp://localhost:7461React SPA
App Store Scraperhttp://localhost:7462iOS data source
Google Play Scraperhttp://localhost:7463Android data source
MySQLlocalhost:7464Database (host-side; container is :3306)
Redislocalhost:7465Cache & queue (host-side; container is :6379)

Check that all services are running:

Terminal window
make ps

You 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.

After setup, seed the store categories (App Store and Google Play categories):

Terminal window
make seed
Terminal window
make down

If you only need specific services:

Terminal window
make dev-server # Backend + MySQL + Redis
make dev-web # Frontend only
make dev-ios # App Store scraper only
make dev-android # Google Play scraper only

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.

If the backend cannot connect to MySQL, wait a few seconds for the health check to pass:

Terminal window
docker compose logs appstorecat-mysql

To remove all containers and volumes and start from scratch:

Terminal window
make clean # Remove containers and volumes
make setup # Rebuild everything

For a full reset including local Docker images:

Terminal window
make nuke # Remove everything, images included
make setup