Files

75 lines
2.5 KiB
YAML

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
args:
- NEXT_PUBLIC_SUPABASE_URL=https://gzpvygrsfdtzykyqbnes.supabase.co
- NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imd6cHZ5Z3JzZmR0enlreXFibmVzIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzkxNTUxNTIsImV4cCI6MjA5NDczMTE1Mn0.bP4qLY6PVT9UplSxB276tZ5HWClIkiuZ_-Yx3IlL8Dw
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
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