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. DB_HOST=mysql
# XAMPP lokal tetap jalan tanpa file ini karena koneksi punya fallback localhost/root. DB_PORT=3306
DB_USER=webgis
DB_PASSWORD=change-this-password
# Umum untuk semua project PHP: DB_NAME_GIS_SPBU=gis_spbu
DB_HOST=nama-service-database DB_NAME_DATA_JALAN=data_jalan
DB_USER=nama-user-database DB_NAME_WEBGIS=webgis
DB_PASSWORD=nama-password-database DB_NAME_KEMISKINAN=webgisuas
# 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
+2 -1
View File
@@ -1,5 +1,6 @@
<?php <?php
$host = getenv('DB_HOST') ?: 'localhost'; $host = getenv('DB_HOST') ?: 'localhost';
$port = (int)(getenv('DB_PORT') ?: 3306);
$user = getenv('DB_USER') ?: 'root'; $user = getenv('DB_USER') ?: 'root';
$pass = getenv('DB_PASSWORD'); $pass = getenv('DB_PASSWORD');
if ($pass === false || $pass === '') { if ($pass === false || $pass === '') {
@@ -7,7 +8,7 @@ if ($pass === false || $pass === '') {
} }
$db = getenv('DB_NAME_GIS_SPBU') ?: 'gis_spbu'; $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) { if (!$conn) {
die("Koneksi database gagal: " . mysqli_connect_error()); die("Koneksi database gagal: " . mysqli_connect_error());
+2 -1
View File
@@ -1,5 +1,6 @@
<?php <?php
$host = getenv('DB_HOST') ?: 'localhost'; $host = getenv('DB_HOST') ?: 'localhost';
$port = (int)(getenv('DB_PORT') ?: 3306);
$user = getenv('DB_USER') ?: 'root'; $user = getenv('DB_USER') ?: 'root';
$pass = getenv('DB_PASSWORD'); $pass = getenv('DB_PASSWORD');
if ($pass === false || $pass === '') { if ($pass === false || $pass === '') {
@@ -7,7 +8,7 @@ if ($pass === false || $pass === '') {
} }
$db = getenv('DB_NAME_DATA_JALAN') ?: 'data_jalan'; $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) { if (!$conn) {
die("Koneksi database gagal: " . mysqli_connect_error()); die("Koneksi database gagal: " . mysqli_connect_error());
+2 -1
View File
@@ -1,5 +1,6 @@
<?php <?php
$host = getenv('DB_HOST') ?: 'localhost'; $host = getenv('DB_HOST') ?: 'localhost';
$port = (int)(getenv('DB_PORT') ?: 3306);
$user = getenv('DB_USER') ?: 'root'; $user = getenv('DB_USER') ?: 'root';
$pass = getenv('DB_PASSWORD'); $pass = getenv('DB_PASSWORD');
if ($pass === false || $pass === '') { if ($pass === false || $pass === '') {
@@ -7,7 +8,7 @@ if ($pass === false || $pass === '') {
} }
$db = getenv('DB_NAME_WEBGIS') ?: 'webgis'; $db = getenv('DB_NAME_WEBGIS') ?: 'webgis';
$conn = mysqli_connect($host, $user, $pass, $db); $conn = mysqli_connect($host, $user, $pass, $db, $port);
if (!$conn) { if (!$conn) {
die("Koneksi database gagal: " . mysqli_connect_error()); die("Koneksi database gagal: " . mysqli_connect_error());
+2 -1
View File
@@ -1,5 +1,6 @@
<?php <?php
$host = getenv('DB_HOST') ?: 'localhost'; $host = getenv('DB_HOST') ?: 'localhost';
$port = (int)(getenv('DB_PORT') ?: 3306);
$user = getenv('DB_USER') ?: 'root'; $user = getenv('DB_USER') ?: 'root';
$pass = getenv('DB_PASSWORD'); $pass = getenv('DB_PASSWORD');
if ($pass === false || $pass === '') { if ($pass === false || $pass === '') {
@@ -7,7 +8,7 @@ if ($pass === false || $pass === '') {
} }
$db = getenv('DB_NAME_GIS_SPBU') ?: 'gis_spbu'; $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) { if (!$conn) {
die("Koneksi database gagal: " . mysqli_connect_error()); die("Koneksi database gagal: " . mysqli_connect_error());
@@ -4,6 +4,7 @@
// ============================================================ // ============================================================
$dbHost = getenv('DB_HOST') ?: 'localhost'; $dbHost = getenv('DB_HOST') ?: 'localhost';
$dbPort = (int)(getenv('DB_PORT') ?: 3306);
$dbUser = getenv('DB_USER') ?: 'root'; $dbUser = getenv('DB_USER') ?: 'root';
$dbPass = getenv('DB_PASSWORD'); $dbPass = getenv('DB_PASSWORD');
if ($dbPass === false || $dbPass === '') { if ($dbPass === false || $dbPass === '') {
@@ -12,6 +13,7 @@ if ($dbPass === false || $dbPass === '') {
$dbName = getenv('DB_NAME_KEMISKINAN') ?: 'webgisuas'; $dbName = getenv('DB_NAME_KEMISKINAN') ?: 'webgisuas';
define('DB_HOST', $dbHost); define('DB_HOST', $dbHost);
define('DB_PORT', $dbPort);
define('DB_USER', $dbUser); define('DB_USER', $dbUser);
define('DB_PASS', $dbPass); define('DB_PASS', $dbPass);
define('DB_NAME', $dbName); define('DB_NAME', $dbName);
@@ -21,7 +23,7 @@ define('UPLOAD_DIR', __DIR__ . '/uploads/');
define('UPLOAD_URL', 'uploads/'); define('UPLOAD_URL', 'uploads/');
// -- Database // -- 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'); $conn->set_charset('utf8mb4');
if ($conn->connect_error) { if ($conn->connect_error) {
+31
View File
@@ -1,2 +1,33 @@
# WebGIS_Project # 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.