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
+35 -16
View File
@@ -32,24 +32,43 @@ class Database {
$password = self::env('DB_PASSWORD', '');
}
self::$conn = new PDO(
"mysql:host={$host};port={$port};dbname={$dbName};charset=utf8mb4",
$username,
$password
);
self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
try {
self::$conn = new PDO(
"mysql:host={$host};port={$port};dbname={$dbName};charset=utf8mb4",
$username,
$password
);
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
self::$conn->exec("SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))");
// 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',''))");
// Auto-initialize database if empty
$stmt = self::$conn->query("SHOW TABLES LIKE 'users'");
if ($stmt->rowCount() == 0) {
$sqlFile = __DIR__ . '/../../db_scripts/webgis_naufal_zaky.sql';
if (file_exists($sqlFile)) {
$sql = file_get_contents($sqlFile);
self::$conn->exec($sql);
// Auto-initialize database if empty
$stmt = self::$conn->query("SHOW TABLES LIKE 'users'");
if ($stmt->rowCount() == 0) {
$sqlFile = __DIR__ . '/../../db_scripts/webgis_naufal_zaky.sql';
if (file_exists($sqlFile)) {
$sql = file_get_contents($sqlFile);
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';
$host = getenv('DB_HOST') ?: 'localhost';
+1 -1
View File
@@ -1,4 +1,4 @@
<?php
<?php
require_once __DIR__ . '/core_config/session_mgr.php';
startAppSession();
if (isset($_SESSION['user_id'])) {
+1 -1
View File
@@ -1,4 +1,4 @@
<?php
<?php
require_once __DIR__ . '/core_config/session_mgr.php';
startAppSession();
session_destroy();
+1 -1
View File
@@ -1,4 +1,4 @@
<?php
<?php
require_once __DIR__ . '/../core_config/database.php';
require_once __DIR__ . '/../core_config/middleware_auth.php';
requireRole('admin');
+1 -1
View File
@@ -1,4 +1,4 @@
<?php
<?php
require_once __DIR__ . '/../core_config/database.php';
require_once __DIR__ . '/../core_config/middleware_auth.php';
requireRole('admin');
+1 -1
View File
@@ -1,4 +1,4 @@
<?php
<?php
require_once __DIR__ . '/../core_config/database.php';
require_once __DIR__ . '/../core_config/middleware_auth.php';
requireRole('admin');
@@ -1,4 +1,4 @@
<?php
<?php
require_once __DIR__ . '/../core_config/database.php';
require_once __DIR__ . '/../core_config/middleware_auth.php';
requireRole('admin');