Files
C_UAS_WEBGIS_AndrieWijaya_D…/WebgisPovertyMapping/docs/deployment-docker.md
T
2026-06-11 18:14:21 +07:00

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 Dockerfile root 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/, dan WebgisPovertyMapping/.
  • db: MariaDB, private untuk service app.

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.

  1. Push root repository webgis/ ke Git provider.
  2. Buat resource baru di Coolify dari repository tersebut.
  3. Pilih deployment type Docker Compose.
  4. Set compose file ke docker-compose.yml.
  5. Assign domain ke service app, misalnya https://ifuntanhub.dev.
  6. 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 hanya docker-compose.yml.
  • DB gagal terhubung: cek env MARIADB_ROOT_PASSWORD, service db, 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 app dan container port 80.
  • Peta/chart/font gagal load: cek akses internet ke CDN dan tile provider eksternal.