Configure database env for Coolify

This commit is contained in:
2026-06-11 13:46:58 +07:00
parent 5a985c09b4
commit 3e9fa2e04f
7 changed files with 50 additions and 26 deletions
+8 -21
View File
@@ -1,22 +1,9 @@
# Copy nilai ini ke environment Coolify sesuai resource/aplikasi yang dideploy.
# XAMPP lokal tetap jalan tanpa file ini karena koneksi punya fallback localhost/root.
DB_HOST=mysql
DB_PORT=3306
DB_USER=webgis
DB_PASSWORD=change-this-password
# Umum untuk semua project PHP:
DB_HOST=nama-service-database
DB_USER=nama-user-database
DB_PASSWORD=nama-password-database
# DB_PASS juga didukung sebagai fallback jika platform memakai nama ini.
# DB_PASS=nama-password-database
# Pilih DB_NAME sesuai project:
# Project 01 dan 04
# DB_NAME=gis_spbu
# Project 02 endpoint aktif memakai db.php
# DB_NAME=data_jalan
# Project 02 koneksi.php lama/sisa jika masih dipakai
# DB_NAME=webgis
# Project 05
# DB_NAME=webgisuas
DB_NAME_GIS_SPBU=gis_spbu
DB_NAME_DATA_JALAN=data_jalan
DB_NAME_WEBGIS=webgis
DB_NAME_KEMISKINAN=webgisuas
+2 -1
View File
@@ -1,5 +1,6 @@
<?php
$host = getenv('DB_HOST') ?: 'localhost';
$port = (int)(getenv('DB_PORT') ?: 3306);
$user = getenv('DB_USER') ?: 'root';
$pass = getenv('DB_PASSWORD');
if ($pass === false || $pass === '') {
@@ -7,7 +8,7 @@ if ($pass === false || $pass === '') {
}
$db = getenv('DB_NAME_GIS_SPBU') ?: 'gis_spbu';
$conn = mysqli_connect($host, $user, $pass, $db);
$conn = mysqli_connect($host, $user, $pass, $db, $port);
if (!$conn) {
die("Koneksi database gagal: " . mysqli_connect_error());
+2 -1
View File
@@ -1,5 +1,6 @@
<?php
$host = getenv('DB_HOST') ?: 'localhost';
$port = (int)(getenv('DB_PORT') ?: 3306);
$user = getenv('DB_USER') ?: 'root';
$pass = getenv('DB_PASSWORD');
if ($pass === false || $pass === '') {
@@ -7,7 +8,7 @@ if ($pass === false || $pass === '') {
}
$db = getenv('DB_NAME_DATA_JALAN') ?: 'data_jalan';
$conn = mysqli_connect($host, $user, $pass, $db);
$conn = mysqli_connect($host, $user, $pass, $db, $port);
if (!$conn) {
die("Koneksi database gagal: " . mysqli_connect_error());
+2 -1
View File
@@ -1,5 +1,6 @@
<?php
$host = getenv('DB_HOST') ?: 'localhost';
$port = (int)(getenv('DB_PORT') ?: 3306);
$user = getenv('DB_USER') ?: 'root';
$pass = getenv('DB_PASSWORD');
if ($pass === false || $pass === '') {
@@ -7,7 +8,7 @@ if ($pass === false || $pass === '') {
}
$db = getenv('DB_NAME_WEBGIS') ?: 'webgis';
$conn = mysqli_connect($host, $user, $pass, $db);
$conn = mysqli_connect($host, $user, $pass, $db, $port);
if (!$conn) {
die("Koneksi database gagal: " . mysqli_connect_error());
+2 -1
View File
@@ -1,5 +1,6 @@
<?php
$host = getenv('DB_HOST') ?: 'localhost';
$port = (int)(getenv('DB_PORT') ?: 3306);
$user = getenv('DB_USER') ?: 'root';
$pass = getenv('DB_PASSWORD');
if ($pass === false || $pass === '') {
@@ -7,7 +8,7 @@ if ($pass === false || $pass === '') {
}
$db = getenv('DB_NAME_GIS_SPBU') ?: 'gis_spbu';
$conn = mysqli_connect($host, $user, $pass, $db);
$conn = mysqli_connect($host, $user, $pass, $db, $port);
if (!$conn) {
die("Koneksi database gagal: " . mysqli_connect_error());
@@ -4,6 +4,7 @@
// ============================================================
$dbHost = getenv('DB_HOST') ?: 'localhost';
$dbPort = (int)(getenv('DB_PORT') ?: 3306);
$dbUser = getenv('DB_USER') ?: 'root';
$dbPass = getenv('DB_PASSWORD');
if ($dbPass === false || $dbPass === '') {
@@ -12,6 +13,7 @@ if ($dbPass === false || $dbPass === '') {
$dbName = getenv('DB_NAME_KEMISKINAN') ?: 'webgisuas';
define('DB_HOST', $dbHost);
define('DB_PORT', $dbPort);
define('DB_USER', $dbUser);
define('DB_PASS', $dbPass);
define('DB_NAME', $dbName);
@@ -21,7 +23,7 @@ define('UPLOAD_DIR', __DIR__ . '/uploads/');
define('UPLOAD_URL', 'uploads/');
// -- Database
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);
$conn->set_charset('utf8mb4');
if ($conn->connect_error) {
+31
View File
@@ -1,2 +1,33 @@
# WebGIS_Project
## Konfigurasi Database Coolify
Project ini membaca konfigurasi database dari environment variable. Di Coolify, isi environment pada aplikasi PHP seperti contoh berikut:
```env
DB_HOST=mysql
DB_PORT=3306
DB_USER=webgis
DB_PASSWORD=change-this-password
DB_NAME_GIS_SPBU=gis_spbu
DB_NAME_DATA_JALAN=data_jalan
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.
Disarankan membuat user database khusus untuk aplikasi:
```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'@'%';
FLUSH PRIVILEGES;
```
Jangan simpan password asli di repo. Simpan password hanya di Environment Variables/Secrets Coolify.