Prepare Docker Compose deployment for Coolify
This commit is contained in:
@@ -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;
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user