fix database configuration for Coolify
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
# Gunakan hostname internal resource MySQL Coolify, bukan localhost.
|
||||||
|
DB_HOST=mysql
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_USER=root
|
||||||
|
DB_PASSWORD=ganti_dengan_password_mysql
|
||||||
|
|
||||||
|
# Kedua database dapat berada dalam satu resource MySQL.
|
||||||
|
INFRA_DB_NAME=db_infrastruktur
|
||||||
|
KEMISKINAN_DB_NAME=db_kemiskinan
|
||||||
|
|
||||||
|
# Jika memakai dua resource MySQL terpisah, isi variabel khusus berikut:
|
||||||
|
# INFRA_DB_HOST=mysql-infrastruktur
|
||||||
|
# INFRA_DB_PORT=3306
|
||||||
|
# INFRA_DB_USER=root
|
||||||
|
# INFRA_DB_PASSWORD=password_infrastruktur
|
||||||
|
# KEMISKINAN_DB_HOST=mysql-kemiskinan
|
||||||
|
# KEMISKINAN_DB_PORT=3306
|
||||||
|
# KEMISKINAN_DB_USER=root
|
||||||
|
# KEMISKINAN_DB_PASSWORD=password_kemiskinan
|
||||||
@@ -19,3 +19,23 @@ Database dan tabel akan dibuat otomatis ketika project dijalankan.
|
|||||||
- Username: `admin`
|
- Username: `admin`
|
||||||
- Password: `password`
|
- Password: `password`
|
||||||
|
|
||||||
|
## Deploy di Coolify
|
||||||
|
|
||||||
|
Tambahkan resource MySQL ke project Coolify, lalu hubungkan aplikasi ke
|
||||||
|
hostname internal resource tersebut. Jangan gunakan `localhost`, karena
|
||||||
|
`localhost` di dalam container menunjuk ke container aplikasi sendiri.
|
||||||
|
|
||||||
|
Tambahkan environment variable berikut pada aplikasi:
|
||||||
|
|
||||||
|
```env
|
||||||
|
DB_HOST=hostname-internal-mysql
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_USER=root
|
||||||
|
DB_PASSWORD=password-mysql
|
||||||
|
INFRA_DB_NAME=db_infrastruktur
|
||||||
|
KEMISKINAN_DB_NAME=db_kemiskinan
|
||||||
|
```
|
||||||
|
|
||||||
|
Jika user MySQL tidak memiliki izin membuat database, buat
|
||||||
|
`db_infrastruktur` dan `db_kemiskinan` terlebih dahulu dari resource MySQL.
|
||||||
|
Contoh lengkap tersedia di `.env.example`.
|
||||||
|
|||||||
+20
-11
@@ -1,18 +1,27 @@
|
|||||||
<?php
|
<?php
|
||||||
$host = "localhost";
|
mysqli_report(MYSQLI_REPORT_OFF);
|
||||||
$user = "root";
|
|
||||||
$pass = "";
|
|
||||||
$dbname = "db_infrastruktur";
|
|
||||||
|
|
||||||
// Auto-create database if not exists
|
$host = getenv('INFRA_DB_HOST') ?: (getenv('DB_HOST') ?: '127.0.0.1');
|
||||||
$conn = new mysqli($host, $user, $pass);
|
$port = (int) (getenv('INFRA_DB_PORT') ?: (getenv('DB_PORT') ?: 3306));
|
||||||
if ($conn->connect_error) {
|
$user = getenv('INFRA_DB_USER') ?: (getenv('DB_USER') ?: 'root');
|
||||||
die(json_encode(['error' => 'Koneksi MySQL gagal: ' . $conn->connect_error]));
|
$pass = getenv('INFRA_DB_PASSWORD');
|
||||||
|
$pass = $pass !== false ? $pass : (getenv('DB_PASSWORD') ?: '');
|
||||||
|
$dbname = getenv('INFRA_DB_NAME') ?: 'db_infrastruktur';
|
||||||
|
|
||||||
|
$conn = new mysqli($host, $user, $pass, '', $port);
|
||||||
|
if ($conn->connect_errno) {
|
||||||
|
http_response_code(500);
|
||||||
|
die('Koneksi database Infrastruktur gagal. Periksa environment variable database di Coolify.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create database if not exist
|
if (!$conn->select_db($dbname)) {
|
||||||
$conn->query("CREATE DATABASE IF NOT EXISTS `$dbname`");
|
if (!$conn->query("CREATE DATABASE IF NOT EXISTS `$dbname`") || !$conn->select_db($dbname)) {
|
||||||
$conn->select_db($dbname);
|
http_response_code(500);
|
||||||
|
die("Database Infrastruktur belum tersedia. Buat database `$dbname` atau gunakan akun yang memiliki izin CREATE DATABASE.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$conn->set_charset('utf8mb4');
|
||||||
|
|
||||||
// Auto-create tables if not exist
|
// Auto-create tables if not exist
|
||||||
$conn->query("CREATE TABLE IF NOT EXISTS tb_admin (
|
$conn->query("CREATE TABLE IF NOT EXISTS tb_admin (
|
||||||
|
|||||||
@@ -1,24 +1,29 @@
|
|||||||
<?php
|
<?php
|
||||||
$host = "localhost";
|
mysqli_report(MYSQLI_REPORT_OFF);
|
||||||
$user = "root";
|
|
||||||
$pass = "";
|
$host = getenv('INFRA_DB_HOST') ?: (getenv('DB_HOST') ?: '127.0.0.1');
|
||||||
|
$port = (int) (getenv('INFRA_DB_PORT') ?: (getenv('DB_PORT') ?: 3306));
|
||||||
|
$user = getenv('INFRA_DB_USER') ?: (getenv('DB_USER') ?: 'root');
|
||||||
|
$pass = getenv('INFRA_DB_PASSWORD');
|
||||||
|
$pass = $pass !== false ? $pass : (getenv('DB_PASSWORD') ?: '');
|
||||||
|
$dbname = getenv('INFRA_DB_NAME') ?: 'db_infrastruktur';
|
||||||
|
|
||||||
// Koneksi tanpa DB dulu untuk buat DB jika belum ada
|
// Koneksi tanpa DB dulu untuk buat DB jika belum ada
|
||||||
$conn = new mysqli($host, $user, $pass);
|
$conn = new mysqli($host, $user, $pass, '', $port);
|
||||||
if ($conn->connect_error) {
|
if ($conn->connect_error) {
|
||||||
die("Koneksi gagal: " . $conn->connect_error);
|
die("Koneksi gagal: " . $conn->connect_error);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1. Buat Database
|
// 1. Buat Database
|
||||||
$sql_db = "CREATE DATABASE IF NOT EXISTS db_infrastruktur";
|
$sql_db = "CREATE DATABASE IF NOT EXISTS `$dbname`";
|
||||||
if ($conn->query($sql_db) === TRUE) {
|
if ($conn->query($sql_db) === TRUE) {
|
||||||
echo "Database db_infrastruktur siap.<br>";
|
echo "Database $dbname siap.<br>";
|
||||||
} else {
|
} else {
|
||||||
echo "Error membuat database: " . $conn->error . "<br>";
|
echo "Error membuat database: " . $conn->error . "<br>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gunakan database tersebut
|
// Gunakan database tersebut
|
||||||
$conn->select_db("db_infrastruktur");
|
$conn->select_db($dbname);
|
||||||
|
|
||||||
// 2. Buat Tabel tb_admin
|
// 2. Buat Tabel tb_admin
|
||||||
$sql_admin = "CREATE TABLE IF NOT EXISTS tb_admin (
|
$sql_admin = "CREATE TABLE IF NOT EXISTS tb_admin (
|
||||||
|
|||||||
+20
-11
@@ -1,18 +1,27 @@
|
|||||||
<?php
|
<?php
|
||||||
$host = "localhost";
|
mysqli_report(MYSQLI_REPORT_OFF);
|
||||||
$user = "root";
|
|
||||||
$pass = "";
|
|
||||||
$dbname = "db_kemiskinan";
|
|
||||||
|
|
||||||
// Auto-create database if not exists
|
$host = getenv('KEMISKINAN_DB_HOST') ?: (getenv('DB_HOST') ?: '127.0.0.1');
|
||||||
$conn = new mysqli($host, $user, $pass);
|
$port = (int) (getenv('KEMISKINAN_DB_PORT') ?: (getenv('DB_PORT') ?: 3306));
|
||||||
if ($conn->connect_error) {
|
$user = getenv('KEMISKINAN_DB_USER') ?: (getenv('DB_USER') ?: 'root');
|
||||||
die(json_encode(['error' => 'Koneksi MySQL gagal: ' . $conn->connect_error]));
|
$pass = getenv('KEMISKINAN_DB_PASSWORD');
|
||||||
|
$pass = $pass !== false ? $pass : (getenv('DB_PASSWORD') ?: '');
|
||||||
|
$dbname = getenv('KEMISKINAN_DB_NAME') ?: 'db_kemiskinan';
|
||||||
|
|
||||||
|
$conn = new mysqli($host, $user, $pass, '', $port);
|
||||||
|
if ($conn->connect_errno) {
|
||||||
|
http_response_code(500);
|
||||||
|
die('Koneksi database Kemiskinan gagal. Periksa environment variable database di Coolify.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create database if not exist
|
if (!$conn->select_db($dbname)) {
|
||||||
$conn->query("CREATE DATABASE IF NOT EXISTS `$dbname`");
|
if (!$conn->query("CREATE DATABASE IF NOT EXISTS `$dbname`") || !$conn->select_db($dbname)) {
|
||||||
$conn->select_db($dbname);
|
http_response_code(500);
|
||||||
|
die("Database Kemiskinan belum tersedia. Buat database `$dbname` atau gunakan akun yang memiliki izin CREATE DATABASE.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$conn->set_charset('utf8mb4');
|
||||||
|
|
||||||
// Auto-create tables if not exist
|
// Auto-create tables if not exist
|
||||||
$conn->query("CREATE TABLE IF NOT EXISTS tb_admin (
|
$conn->query("CREATE TABLE IF NOT EXISTS tb_admin (
|
||||||
|
|||||||
@@ -1,24 +1,29 @@
|
|||||||
<?php
|
<?php
|
||||||
$host = "localhost";
|
mysqli_report(MYSQLI_REPORT_OFF);
|
||||||
$user = "root";
|
|
||||||
$pass = "";
|
$host = getenv('KEMISKINAN_DB_HOST') ?: (getenv('DB_HOST') ?: '127.0.0.1');
|
||||||
|
$port = (int) (getenv('KEMISKINAN_DB_PORT') ?: (getenv('DB_PORT') ?: 3306));
|
||||||
|
$user = getenv('KEMISKINAN_DB_USER') ?: (getenv('DB_USER') ?: 'root');
|
||||||
|
$pass = getenv('KEMISKINAN_DB_PASSWORD');
|
||||||
|
$pass = $pass !== false ? $pass : (getenv('DB_PASSWORD') ?: '');
|
||||||
|
$dbname = getenv('KEMISKINAN_DB_NAME') ?: 'db_kemiskinan';
|
||||||
|
|
||||||
// Koneksi tanpa DB dulu untuk buat DB jika belum ada
|
// Koneksi tanpa DB dulu untuk buat DB jika belum ada
|
||||||
$conn = new mysqli($host, $user, $pass);
|
$conn = new mysqli($host, $user, $pass, '', $port);
|
||||||
if ($conn->connect_error) {
|
if ($conn->connect_error) {
|
||||||
die("Koneksi gagal: " . $conn->connect_error);
|
die("Koneksi gagal: " . $conn->connect_error);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1. Buat Database
|
// 1. Buat Database
|
||||||
$sql_db = "CREATE DATABASE IF NOT EXISTS db_kemiskinan";
|
$sql_db = "CREATE DATABASE IF NOT EXISTS `$dbname`";
|
||||||
if ($conn->query($sql_db) === TRUE) {
|
if ($conn->query($sql_db) === TRUE) {
|
||||||
echo "Database db_kemiskinan siap.<br>";
|
echo "Database $dbname siap.<br>";
|
||||||
} else {
|
} else {
|
||||||
echo "Error membuat database: " . $conn->error . "<br>";
|
echo "Error membuat database: " . $conn->error . "<br>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gunakan database tersebut
|
// Gunakan database tersebut
|
||||||
$conn->select_db("db_kemiskinan");
|
$conn->select_db($dbname);
|
||||||
|
|
||||||
// 2. Buat Tabel tb_admin
|
// 2. Buat Tabel tb_admin
|
||||||
$sql_admin = "CREATE TABLE IF NOT EXISTS tb_admin (
|
$sql_admin = "CREATE TABLE IF NOT EXISTS tb_admin (
|
||||||
|
|||||||
Reference in New Issue
Block a user