version: '3.8' services: # 1. PHP + Apache Web App (for Root Portal, SPBU, Parsil, and Chloropleth) # Coolify's Traefik reverse proxy routes traffic to this service via the domain set in Coolify UI. php-app: build: context: . dockerfile: ./docker/php/Dockerfile container_name: gis_php_app environment: - DB_HOST=db - DB_DATABASE=spbu_db - DB_USERNAME=root - DB_PASSWORD=rootpassword depends_on: - db networks: - gis-network # 2. Next.js App Service # Coolify's Traefik reverse proxy routes traffic to this service via the domain set in Coolify UI. next-app: build: context: . dockerfile: ./docker/nextjs/Dockerfile container_name: gis_next_app working_dir: /app environment: - NEXT_PUBLIC_SUPABASE_URL=https://gzpvygrsfdtzykyqbnes.supabase.co - NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imd6cHZ5Z3JzZmR0enlreXFibmVzIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzkxNTUxNTIsImV4cCI6MjA5NDczMTE1Mn0.bP4qLY6PVT9UplSxB276tZ5HWClIkiuZ_-Yx3IlL8Dw - SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imd6cHZ5Z3JzZmR0enlreXFibmVzIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc3OTE1NTE1MiwiZXhwIjoyMDk0NzMxMTUyfQ.H8rDKBGeagZnF22lFZwlsqPbDP6_kDurNpt8ZRvAigc - PORT=3000 - HOSTNAME=0.0.0.0 networks: - gis-network # 3. MySQL Database Service db: image: mysql:8.0 container_name: gis_db command: --default-authentication-plugin=mysql_native_password # No host port mapping - DB is only accessible internally via gis-network environment: - MYSQL_ROOT_PASSWORD=rootpassword - MYSQL_DATABASE=spbu_db volumes: - db-data:/var/lib/mysql - ./docker/db/init.sql:/docker-entrypoint-initdb.d/init.sql:ro networks: - gis-network # 4. phpMyAdmin (Database Management Web UI) phpmyadmin: image: phpmyadmin:latest container_name: gis_phpmyadmin # No host port mapping - Coolify's Traefik proxy routes traffic via the assigned domain environment: - PMA_HOST=db - PMA_USER=root - PMA_PASSWORD=rootpassword depends_on: - db networks: - gis-network volumes: db-data: networks: gis-network: driver: bridge