4.2 KiB
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 port8000mysql: database MySQL 8.4 dengan volume persistenvite: 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
-
Upload atau clone project ke server.
-
Buat file environment Docker:
cp .env.docker.example .env
- Edit
.envminimal 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.
- Build asset frontend:
npm install
npm run build
- Build dan jalankan container:
docker compose up --build -d
Entrypoint container app otomatis menjalankan:
composer install- membuat
.envdari.env.docker.examplejika belum ada php artisan key:generatejikaAPP_KEYbelum adaphp artisan migrate --forcephp artisan db:seed --forcephp 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
-
Pull atau upload perubahan terbaru.
-
Build ulang asset:
npm install
npm run build
- Rebuild container:
docker compose up --build -d
- 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 | 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
.envke repository. - Pastikan
APP_URLsesuai domain production. - Pastikan reverse proxy hosting meneruskan traffic ke
APP_PORT. - Volume
webgis_mysql_datamenyimpan 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.