From aecc9ebdd00377b3cebd66a061edeb3fbfc7d703 Mon Sep 17 00:00:00 2001 From: Freya_Martines Date: Fri, 12 Jun 2026 17:46:11 +0000 Subject: [PATCH] Upload files to "/" --- Dockerfile | 10 ++++++ cek_env.php | 10 ++++++ database.sql | 79 ++++++++++++++++++++++++++++++++++++++++++++ install_database.php | 57 ++++++++++++++++++++++++++++++++ koneksi.php | 5 +++ 5 files changed, 161 insertions(+) create mode 100644 Dockerfile create mode 100644 cek_env.php create mode 100644 database.sql create mode 100644 install_database.php create mode 100644 koneksi.php diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..dfbf0a0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM php:8.2-apache + +RUN docker-php-ext-install mysqli pdo pdo_mysql +RUN a2enmod rewrite + +COPY . /var/www/html/ + +RUN chown -R www-data:www-data /var/www/html + +EXPOSE 80 diff --git a/cek_env.php b/cek_env.php new file mode 100644 index 0000000..04df289 --- /dev/null +++ b/cek_env.php @@ -0,0 +1,10 @@ +'; +echo 'DB_HOST = ' . htmlspecialchars(getenv('DB_HOST') ?: '(kosong)') . PHP_EOL; +echo 'DB_PORT = ' . htmlspecialchars(getenv('DB_PORT') ?: '(kosong)') . PHP_EOL; +echo 'DB_NAME = ' . htmlspecialchars(getenv('DB_NAME') ?: '(kosong)') . PHP_EOL; +echo 'DB_USER = ' . htmlspecialchars(getenv('DB_USER') ?: '(kosong)') . PHP_EOL; +echo 'DB_PASS = ' . (getenv('DB_PASS') || getenv('DB_PASSWORD') ? 'TERISI' : 'KOSONG') . PHP_EOL; +echo ''; +?> diff --git a/database.sql b/database.sql new file mode 100644 index 0000000..6fefc4b --- /dev/null +++ b/database.sql @@ -0,0 +1,79 @@ +-- ============================================================ +-- database.sql - WebGIS Pemetaan Kemiskinan Freya +-- Versi deploy Coolify +-- Tidak memakai CREATE DATABASE / USE agar mengikuti Initial Database Coolify. +-- Akan me-reset tabel utama aplikasi. +-- ============================================================ + +SET FOREIGN_KEY_CHECKS = 0; +DROP TABLE IF EXISTS bantuan; +DROP TABLE IF EXISTS keluarga_miskin; +DROP TABLE IF EXISTS rumah_ibadah; +DROP TABLE IF EXISTS users; +SET FOREIGN_KEY_CHECKS = 1; + +CREATE TABLE users ( + id INT AUTO_INCREMENT PRIMARY KEY, + nama VARCHAR(100) NOT NULL, + username VARCHAR(80) NOT NULL UNIQUE, + password VARCHAR(255) NOT NULL, + role ENUM('admin','pengurus','pengguna') NOT NULL DEFAULT 'pengguna', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE rumah_ibadah ( + id INT AUTO_INCREMENT PRIMARY KEY, + nama VARCHAR(150) NOT NULL, + jenis VARCHAR(80) DEFAULT NULL, + alamat TEXT DEFAULT NULL, + ketua VARCHAR(120) DEFAULT NULL, + no_hp VARCHAR(30) DEFAULT NULL, + lat DOUBLE NOT NULL DEFAULT 0, + lng DOUBLE NOT NULL DEFAULT 0, + radius INT NOT NULL DEFAULT 500, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE keluarga_miskin ( + id INT AUTO_INCREMENT PRIMARY KEY, + nik VARCHAR(30) DEFAULT NULL, + nama VARCHAR(150) NOT NULL, + alamat TEXT DEFAULT NULL, + penghasilan_kategori VARCHAR(80) DEFAULT NULL, + prioritas VARCHAR(50) DEFAULT NULL, + lat DOUBLE NOT NULL DEFAULT 0, + lng DOUBLE NOT NULL DEFAULT 0, + status_bantuan ENUM('belum','proses','sudah') NOT NULL DEFAULT 'belum', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE bantuan ( + id INT AUTO_INCREMENT PRIMARY KEY, + keluarga_id INT NOT NULL, + jenis VARCHAR(80) NOT NULL, + jumlah VARCHAR(100) DEFAULT NULL, + keterangan TEXT DEFAULT NULL, + status ENUM('pending','disetujui','diserahkan','ditolak') NOT NULL DEFAULT 'pending', + status_aktif ENUM('aktif','selesai') NOT NULL DEFAULT 'aktif', + tanggal TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT fk_bantuan_keluarga + FOREIGN KEY (keluarga_id) REFERENCES keluarga_miskin(id) + ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +INSERT INTO users (nama, username, password, role) VALUES +('Administrator', 'admin', 'password', 'admin'), +('Pengurus Rumah Ibadah', 'pengurus', 'password', 'pengurus'), +('Pengguna Keluarga', 'pengguna', 'password', 'pengguna'); + +INSERT INTO rumah_ibadah (nama, jenis, alamat, ketua, no_hp, lat, lng, radius) VALUES +('Masjid Raya Mujahidin', 'Masjid', 'Jl. Jenderal Ahmad Yani, Pontianak', 'Pengurus Demo', '081234567890', -0.0554, 109.3465, 800), +('Masjid Jami Sultan Syarif Abdurrahman', 'Masjid', 'Pontianak Timur', 'Pengurus Demo', '081234567891', -0.0239, 109.3446, 800); + +INSERT INTO keluarga_miskin (nik, nama, alamat, penghasilan_kategori, prioritas, lat, lng, status_bantuan) VALUES +('6171010101010001', 'Budi Santoso', 'Pontianak Kota', 'rendah', 'sedang', -0.0412, 109.3210, 'belum'), +('6171010101010002', 'Siti Aminah', 'Pontianak Selatan', 'rendah', 'tinggi', -0.0550, 109.3450, 'belum'), +('6171010101010003', 'Rahmat Hidayat', 'Pontianak Utara', 'sedang', 'sedang', -0.0060, 109.3300, 'proses'); + +INSERT INTO bantuan (keluarga_id, jenis, jumlah, keterangan, status, status_aktif) VALUES +(3, 'barang', '1 paket sembako', 'Data dummy untuk testing', 'pending', 'aktif'); diff --git a/install_database.php b/install_database.php new file mode 100644 index 0000000..562d166 --- /dev/null +++ b/install_database.php @@ -0,0 +1,57 @@ +Install Database WebGIS Kemiskinan Freya"; +echo "

Target koneksi: " . htmlspecialchars($host) . ":" . htmlspecialchars((string)$port) . ", database: " . htmlspecialchars($db) . ", user: " . htmlspecialchars($user) . "

"; + +$conn = new mysqli($host, $user, $pass, $db, $port); + +if ($conn->connect_error) { + die("

Koneksi gagal: " . htmlspecialchars($conn->connect_error) . "

"); +} + +$conn->set_charset('utf8mb4'); + +$sqlFile = __DIR__ . '/database.sql'; + +if (!file_exists($sqlFile)) { + die("

File database.sql tidak ditemukan.

"); +} + +$sql = file_get_contents($sqlFile); + +// Untuk Coolify: database sudah dipilih lewat Initial Database, jadi CREATE DATABASE/USE dihapus jika ada. +$sql = preg_replace('/CREATE\s+DATABASE\s+(IF\s+NOT\s+EXISTS\s+)?`?[^`\s;]+`?.*?;/is', '', $sql); +$sql = preg_replace('/USE\s+`?[^`\s;]+`?\s*;/is', '', $sql); + +if ($conn->multi_query($sql)) { + do { + if ($result = $conn->store_result()) { + $result->free(); + } + } while ($conn->more_results() && $conn->next_result()); + + if ($conn->errno) { + echo "

Ada error saat import: " . htmlspecialchars($conn->error) . "

"; + } else { + echo "

Database berhasil diimport.

"; + echo "

Akun demo:

"; + echo ""; + echo "

Setelah berhasil, hapus file install_database.php dari repo lalu redeploy.

"; + } +} else { + echo "

Import gagal: " . htmlspecialchars($conn->error) . "

"; +} + +$conn->close(); +?> diff --git a/koneksi.php b/koneksi.php new file mode 100644 index 0000000..76837d3 --- /dev/null +++ b/koneksi.php @@ -0,0 +1,5 @@ +