setup coolify

This commit is contained in:
naukyy
2026-06-14 17:28:43 +07:00
parent 28d6bfd1df
commit 0d994831c9
14 changed files with 48 additions and 29 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
/** /**
* jalan.php * jalan.php
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Jalan (LineString). * Tanggung Jawab: Menangani operasi CRUD untuk entitas Jalan (LineString).
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
/** /**
* kavling.php * kavling.php
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Kavling (Polygon). * Tanggung Jawab: Menangani operasi CRUD untuk entitas Kavling (Polygon).
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
/** /**
* rumah_ibadah.php * rumah_ibadah.php
* Tanggung Jawab: Operasi CRUD Rumah Ibadah + Endpoint analisis jangkauan Haversine. * Tanggung Jawab: Operasi CRUD Rumah Ibadah + Endpoint analisis jangkauan Haversine.
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
require_once '../core_config/database.php'; require_once '../core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
/** /**
* statistik.php * statistik.php
* Tanggung Jawab: Menyediakan data analisis spasial menggunakan Point in Polygon (ST_Contains). * Tanggung Jawab: Menyediakan data analisis spasial menggunakan Point in Polygon (ST_Contains).
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
/** /**
* warga_miskin.php * warga_miskin.php
* Tanggung Jawab: Operasi CRUD untuk Warga Miskin. * Tanggung Jawab: Operasi CRUD untuk Warga Miskin.
+35 -16
View File
@@ -32,24 +32,43 @@ class Database {
$password = self::env('DB_PASSWORD', ''); $password = self::env('DB_PASSWORD', '');
} }
self::$conn = new PDO( try {
"mysql:host={$host};port={$port};dbname={$dbName};charset=utf8mb4", self::$conn = new PDO(
$username, "mysql:host={$host};port={$port};dbname={$dbName};charset=utf8mb4",
$password $username,
); $password
self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); );
self::$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
// Disable strict mode for GROUP BY to prevent 1055 errors in Coolify's MariaDB // Disable strict mode for GROUP BY to prevent 1055 errors in Coolify's MariaDB
self::$conn->exec("SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))"); self::$conn->exec("SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))");
// Auto-initialize database if empty // Auto-initialize database if empty
$stmt = self::$conn->query("SHOW TABLES LIKE 'users'"); $stmt = self::$conn->query("SHOW TABLES LIKE 'users'");
if ($stmt->rowCount() == 0) { if ($stmt->rowCount() == 0) {
$sqlFile = __DIR__ . '/../../db_scripts/webgis_naufal_zaky.sql'; $sqlFile = __DIR__ . '/../../db_scripts/webgis_naufal_zaky.sql';
if (file_exists($sqlFile)) { if (file_exists($sqlFile)) {
$sql = file_get_contents($sqlFile); $sql = file_get_contents($sqlFile);
self::$conn->exec($sql); self::$conn->exec($sql);
}
}
} catch (PDOException $e) {
$isApi = (defined('JSON_REQUEST') && JSON_REQUEST) ||
(strpos($_SERVER['REQUEST_URI'] ?? '', '/api/') !== false) ||
(strpos($_SERVER['REQUEST_URI'] ?? '', 'endpoints/') !== false) ||
(isset($_SERVER['HTTP_ACCEPT']) && strpos($_SERVER['HTTP_ACCEPT'], 'application/json') !== false);
if ($isApi) {
header('Content-Type: application/json; charset=utf-8');
http_response_code(500);
echo json_encode([
'status' => 'error',
'message' => 'Database Connection Failed: ' . $e->getMessage()
]);
exit();
} else {
die("Database Connection Failed: " . $e->getMessage());
} }
} }
} }
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
require_once __DIR__ . '/core_config/settings.php'; require_once __DIR__ . '/core_config/settings.php';
$host = getenv('DB_HOST') ?: 'localhost'; $host = getenv('DB_HOST') ?: 'localhost';
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
require_once __DIR__ . '/core_config/session_mgr.php'; require_once __DIR__ . '/core_config/session_mgr.php';
startAppSession(); startAppSession();
if (isset($_SESSION['user_id'])) { if (isset($_SESSION['user_id'])) {
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
require_once __DIR__ . '/core_config/session_mgr.php'; require_once __DIR__ . '/core_config/session_mgr.php';
startAppSession(); startAppSession();
session_destroy(); session_destroy();
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
require_once __DIR__ . '/../core_config/database.php'; require_once __DIR__ . '/../core_config/database.php';
require_once __DIR__ . '/../core_config/middleware_auth.php'; require_once __DIR__ . '/../core_config/middleware_auth.php';
requireRole('admin'); requireRole('admin');
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
require_once __DIR__ . '/../core_config/database.php'; require_once __DIR__ . '/../core_config/database.php';
require_once __DIR__ . '/../core_config/middleware_auth.php'; require_once __DIR__ . '/../core_config/middleware_auth.php';
requireRole('admin'); requireRole('admin');
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
require_once __DIR__ . '/../core_config/database.php'; require_once __DIR__ . '/../core_config/database.php';
require_once __DIR__ . '/../core_config/middleware_auth.php'; require_once __DIR__ . '/../core_config/middleware_auth.php';
requireRole('admin'); requireRole('admin');
@@ -1,4 +1,4 @@
<?php <?php
require_once __DIR__ . '/../core_config/database.php'; require_once __DIR__ . '/../core_config/database.php';
require_once __DIR__ . '/../core_config/middleware_auth.php'; require_once __DIR__ . '/../core_config/middleware_auth.php';
requireRole('admin'); requireRole('admin');