Upload files to "/"
This commit is contained in:
+10
@@ -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
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
// cek_env.php - opsional untuk debugging env Coolify. HAPUS setelah selesai.
|
||||
echo '<pre>';
|
||||
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 '</pre>';
|
||||
?>
|
||||
@@ -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');
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
// install_database.php
|
||||
// Installer sementara untuk import database.sql.
|
||||
// HAPUS file ini setelah database berhasil diimport.
|
||||
|
||||
set_time_limit(300);
|
||||
|
||||
$host = getenv('DB_HOST') ?: 'localhost';
|
||||
$user = getenv('DB_USER') ?: 'root';
|
||||
$pass = getenv('DB_PASS') ?: (getenv('DB_PASSWORD') ?: '');
|
||||
$db = getenv('DB_NAME') ?: 'pemetaan_kemiskinan';
|
||||
$port = (int)(getenv('DB_PORT') ?: 3306);
|
||||
|
||||
echo "<h2>Install Database WebGIS Kemiskinan Freya</h2>";
|
||||
echo "<p>Target koneksi: <b>" . htmlspecialchars($host) . ":" . htmlspecialchars((string)$port) . "</b>, database: <b>" . htmlspecialchars($db) . "</b>, user: <b>" . htmlspecialchars($user) . "</b></p>";
|
||||
|
||||
$conn = new mysqli($host, $user, $pass, $db, $port);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
die("<p style='color:red'>Koneksi gagal: " . htmlspecialchars($conn->connect_error) . "</p>");
|
||||
}
|
||||
|
||||
$conn->set_charset('utf8mb4');
|
||||
|
||||
$sqlFile = __DIR__ . '/database.sql';
|
||||
|
||||
if (!file_exists($sqlFile)) {
|
||||
die("<p style='color:red'>File database.sql tidak ditemukan.</p>");
|
||||
}
|
||||
|
||||
$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 "<p style='color:red'>Ada error saat import: " . htmlspecialchars($conn->error) . "</p>";
|
||||
} else {
|
||||
echo "<p style='color:green;font-weight:bold'>Database berhasil diimport.</p>";
|
||||
echo "<p>Akun demo:</p>";
|
||||
echo "<ul><li>admin / password</li><li>pengurus / password</li><li>pengguna / password</li></ul>";
|
||||
echo "<p>Setelah berhasil, hapus file <code>install_database.php</code> dari repo lalu redeploy.</p>";
|
||||
}
|
||||
} else {
|
||||
echo "<p style='color:red'>Import gagal: " . htmlspecialchars($conn->error) . "</p>";
|
||||
}
|
||||
|
||||
$conn->close();
|
||||
?>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
// koneksi.php
|
||||
// File wrapper agar endpoint yang memakai include "../koneksi.php" tetap berjalan.
|
||||
require_once __DIR__ . '/config/koneksi.php';
|
||||
?>
|
||||
Reference in New Issue
Block a user