2026-06-10 18:08:57 +07:00
2026-06-10 18:08:57 +07:00
2026-06-10 18:08:57 +07:00

WebGIS Pemetaan Kemiskinan

Aplikasi WebGIS berbasis Laravel untuk memetakan rumah ibadah, keluarga miskin, radius layanan, bantuan, transfer tanggungan, dan statistik sebaran.

Deploy Dengan Docker

Repository ini sudah disiapkan untuk jalan lewat Docker Compose:

  • app: container PHP Laravel, expose port 8000
  • mysql: database MySQL 8.4 dengan volume persisten
  • vite: hanya untuk development, tidak otomatis jalan saat production deploy

Kebutuhan Hosting

  • Docker Engine
  • Docker Compose plugin
  • Domain atau subdomain yang diarahkan ke server
  • Reverse proxy hosting ke port aplikasi, misalnya APP_PORT=8000

Document root tidak perlu diarahkan manual ke public karena aplikasi berjalan di container Laravel.

Setup Pertama Di Server

  1. Upload atau clone project ke server.

  2. Buat file environment Docker:

cp .env.docker.example .env
  1. Edit .env minimal bagian ini:
APP_ENV=production
APP_DEBUG=false
APP_URL=https://domain-anda.com
APP_PORT=8000

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=webgis_miskin
DB_USERNAME=webgis
DB_PASSWORD=password-kuat
MYSQL_ROOT_PASSWORD=password-root-kuat
MYSQL_HOST_PORT=3307

Jika project di-upload dari mesin development dan .env lama ikut terbawa, ubah nilainya ke konfigurasi production di atas. Docker Compose otomatis membaca file .env di root project.

  1. Build asset frontend:
npm install
npm run build
  1. Build dan jalankan container:
docker compose up --build -d

Entrypoint container app otomatis menjalankan:

  • composer install
  • membuat .env dari .env.docker.example jika belum ada
  • php artisan key:generate jika APP_KEY belum ada
  • php artisan migrate --force
  • php artisan db:seed --force
  • php artisan schedule:work

Command Operasional

Cek container:

docker compose ps

Lihat log aplikasi:

docker compose logs -f app

Masuk ke container app:

docker compose exec app sh

Jalankan ulang cache Laravel setelah edit .env:

docker compose exec app php artisan config:cache
docker compose exec app php artisan route:cache
docker compose exec app php artisan view:cache

Restart container:

docker compose restart app

Stop semua container:

docker compose down

Stop container tanpa menghapus data database:

docker compose down

Hapus container sekaligus volume database:

docker compose down -v

Gunakan down -v hanya kalau memang mau reset data MySQL.

Update Aplikasi Di Server

  1. Pull atau upload perubahan terbaru.

  2. Build ulang asset:

npm install
npm run build
  1. Rebuild container:
docker compose up --build -d
  1. Refresh cache:
docker compose exec app php artisan optimize:clear
docker compose exec app php artisan config:cache
docker compose exec app php artisan route:cache
docker compose exec app php artisan view:cache

Development Lokal Dengan Vite

Untuk development yang butuh Vite dev server:

docker compose --profile dev up --build -d

Vite akan tersedia di port 5173. Untuk production deploy, jangan gunakan profile dev.

Akun Awal

Seeder membuat akun awal berikut:

Role Email Password
Administrator admin@webgis.local admin123
Pengurus Ibadah pengurus@webgis.local password123
Petugas Pendataan petugas@webgis.local password123
Pemangku Kebijakan kebijakan@webgis.local password123

Ganti password akun awal setelah deploy.

Halaman Utama

  • /login - login pengguna
  • /map - peta interaktif
  • /data - data tabular
  • /dashboard - dashboard statistik
  • /permohonan - permohonan transfer
  • /admin/users - manajemen pengguna
  • /admin/logs - log aktivitas
  • /admin/settings - pengaturan sistem

Catatan Penting

  • Jangan commit .env ke repository.
  • Pastikan APP_URL sesuai domain production.
  • Pastikan reverse proxy hosting meneruskan traffic ke APP_PORT.
  • Volume webgis_mysql_data menyimpan data MySQL.
  • Folder project dimount ke /var/www/html, jadi perubahan file di server langsung terbaca container.
  • Jika hosting punya backup volume, backup volume MySQL dan folder project.
S
Description
No description provided
Readme 299 KiB
Languages
Blade 52.3%
PHP 31.7%
HTML 11.5%
CSS 3.8%
Dockerfile 0.3%
Other 0.3%