Prepare Docker Compose deployment for Coolify

This commit is contained in:
2026-06-11 16:24:28 +07:00
parent ab5f5541fb
commit 9c1bf32cfe
4 changed files with 77 additions and 28 deletions
+28 -10
View File
@@ -2,13 +2,23 @@
## Konfigurasi Database Coolify
Project ini membaca konfigurasi database dari environment variable. Di Coolify, isi environment pada aplikasi PHP seperti contoh berikut:
Project ini bisa dideploy di Coolify dengan Docker Compose. Pilih build pack **Docker Compose**, base directory `/`, dan compose file `docker-compose.yml`.
Di Coolify, isi environment stack seperti contoh berikut:
```env
MYSQL_ROOT_PASSWORD=change-this-root-password
MYSQL_USER=webgis
MYSQL_PASSWORD=change-this-password
```
Compose akan mengisi koneksi aplikasi PHP ke service MySQL internal:
```env
DB_HOST=mysql
DB_PORT=3306
DB_USER=webgis
DB_PASSWORD=change-this-password
DB_USER=${MYSQL_USER}
DB_PASSWORD=${MYSQL_PASSWORD}
DB_NAME_GIS_SPBU=gis_spbu
DB_NAME_DATA_JALAN=data_jalan
@@ -16,16 +26,24 @@ DB_NAME_WEBGIS=webgis
DB_NAME_KEMISKINAN=webgisuas
```
`DB_HOST` harus memakai hostname service MySQL internal di Coolify, bukan `localhost`. Nama host biasanya mengikuti nama service/resource MySQL yang dibuat di Coolify.
`DB_HOST` harus memakai hostname service MySQL internal di Compose, yaitu `mysql`, bukan `localhost`.
Disarankan membuat user database khusus untuk aplikasi:
Saat volume MySQL masih kosong, file SQL berikut otomatis dijalankan:
- `01/database_01.sql`
- `02/database_02.sql`
- `05/webgis_uas_FIXED_v2/webgis_uas_FIXED/database_LENGKAP.sql`
- `docker/mysql/init/99-grants.sh`
Script `99-grants.sh` memberi user `${MYSQL_USER}` akses tulis ke semua database project.
Jika database Coolify sudah pernah dibuat sebelum perubahan Compose ini, init script tidak berjalan ulang. Jalankan grant manual sekali lewat phpMyAdmin atau terminal MySQL:
```sql
CREATE USER 'webgis'@'%' IDENTIFIED BY 'change-this-password';
GRANT ALL PRIVILEGES ON gis_spbu.* TO 'webgis'@'%';
GRANT ALL PRIVILEGES ON data_jalan.* TO 'webgis'@'%';
GRANT ALL PRIVILEGES ON webgis.* TO 'webgis'@'%';
GRANT ALL PRIVILEGES ON webgisuas.* TO 'webgis'@'%';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP ON gis_spbu.* TO 'webgis'@'%';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP ON data_jalan.* TO 'webgis'@'%';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP ON webgis.* TO 'webgis'@'%';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP ON webgisuas.* TO 'webgis'@'%';
FLUSH PRIVILEGES;
```