2.9 KiB
Deployment Docker
Panduan ini menjadi referensi utama untuk menjalankan WebGIS Poverty Mapping. XAMPP tidak lagi menjadi jalur deploy utama; gunakan XAMPP hanya sebagai fallback legacy.
Runtime
- PHP 8.2 Apache dari
Dockerfileroot repository. - MariaDB 11.4 dari
docker-compose.yml. - Database aplikasi final:
db_webgis. - Database project kelas
01/:db_webgis_01. - Aplikasi final tersedia di path
/WebgisPovertyMapping/.
Struktur Docker
File Docker berada di root repository webgis/:
Dockerfile
docker-compose.yml
docker-compose.local.yml
.env.example
docker/apache-webgis.conf
Service:
app: Apache + PHP, melayani root landing page,01/, danWebgisPovertyMapping/.db: MariaDB, private untuk serviceapp.
Local Development
Jalankan dari root repository:
cp .env.example .env
docker compose -f docker-compose.yml -f docker-compose.local.yml up --build -d
Buka:
http://localhost:8080/
http://localhost:8080/WebgisPovertyMapping/
Jika port 8080 sudah dipakai, tambahkan di .env:
APP_PORT=8081
Lalu jalankan ulang compose lokal.
Database Init
MariaDB menjalankan file berikut hanya saat volume database masih kosong:
01/setup_database.sql
WebgisPovertyMapping/setup_database.sql
Untuk reset database lokal:
docker compose -f docker-compose.yml -f docker-compose.local.yml down -v
docker compose -f docker-compose.yml -f docker-compose.local.yml up --build -d
Production Di Coolify
Gunakan docker-compose.yml saja.
- Push root repository
webgis/ke Git provider. - Buat resource baru di Coolify dari repository tersebut.
- Pilih deployment type
Docker Compose. - Set compose file ke
docker-compose.yml. - Assign domain ke service
app, misalnyahttps://ifuntanhub.dev. - Set environment variable:
MARIADB_ROOT_PASSWORD=isi-password-kuat
docker-compose.yml production hanya memakai expose: 80. Jangan tambahkan ports: untuk production, karena routing publik harus lewat reverse proxy Coolify.
Reverse Proxy
Coolify/reverse proxy menerima traffic publik dari domain dan meneruskannya ke container app port 80.
Alur request:
https://ifuntanhub.dev -> Coolify reverse proxy -> app:80 -> /WebgisPovertyMapping/
Header X-Forwarded-Proto: https dipakai oleh aplikasi untuk mengenali HTTPS saat menentukan secure session cookie.
Troubleshooting
- App tidak bisa dibuka lokal: pastikan memakai
docker-compose.local.yml, bukan hanyadocker-compose.yml. - DB gagal terhubung: cek env
MARIADB_ROOT_PASSWORD, servicedb, dan healthcheck MariaDB. - SQL init tidak berubah setelah edit schema: reset volume database; MariaDB hanya menjalankan init script saat volume kosong.
- Domain Coolify tidak masuk ke app: pastikan domain diassign ke service
appdan container port80. - Peta/chart/font gagal load: cek akses internet ke CDN dan tile provider eksternal.