Untuk Deploy

This commit is contained in:
TigerStable
2026-06-12 21:50:22 +07:00
parent 41c86ecc08
commit b0b94ecec3
4 changed files with 74 additions and 11 deletions
+12
View File
@@ -0,0 +1,12 @@
.git
.gitignore
.agents
.codex
**/.git
**/.git/**
**/.idea
**/.vscode
**/node_modules
deploy.py
README.md
+15
View File
@@ -0,0 +1,15 @@
FROM php:8.2-apache
RUN docker-php-ext-install pdo pdo_mysql \
&& a2enmod headers
WORKDIR /var/www/html
COPY . /var/www/html
RUN chown -R www-data:www-data /var/www/html \
&& find /var/www/html -type d -exec chmod 755 {} \; \
&& find /var/www/html -type f -exec chmod 644 {} \;
EXPOSE 80
+24
View File
@@ -32,6 +32,30 @@ Semua data geospasial (titik, garis, poligon) disimpan di MySQL secara fleksibel
---
## Deploy ke Coolify
Repo ini sudah disiapkan untuk dibuild sebagai container PHP-Apache. Di Coolify, pakai sumber Git dari:
`https://git.ifuntanhub.dev/RafaelGerhardPanjaitan/UAS_SIG_WebGIS.git`
Langkah ringkas:
1. Buat application baru dari Git repository.
2. Pilih build pack `Dockerfile`.
3. Gunakan `Dockerfile` di root repo ini.
4. Hubungkan aplikasi ke service MySQL/MariaDB milik project Coolify Anda.
5. Set environment variables berikut di aplikasi:
- `DB_HOST`
- `DB_NAME`
- `DB_USER`
- `DB_PASS`
6. Import schema dari `database.sql` ke database yang dipakai aplikasi.
7. Pastikan `DB_HOST` menunjuk ke hostname internal database Coolify, bukan `localhost`.
Jika database belum punya tabel, jalankan `api/init_db.php` sekali dari browser setelah service database aktif, atau import `database.sql` langsung dari panel database Coolify.
---
## 🚀 Panduan Instalasi & Menjalankan Aplikasi
Karena aplikasi ini sekarang menggunakan **PHP dan MySQL**, Anda tidak bisa langsung membuka file HTML-nya. Ikuti langkah berikut menggunakan **XAMPP**:
+18 -6
View File
@@ -1,18 +1,30 @@
<?php
require_once 'db.php';
$sql = "
try {
$pdo->exec("
CREATE TABLE IF NOT EXISTS features (
id VARCHAR(100) PRIMARY KEY,
layer VARCHAR(50) NOT NULL,
data JSON NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_layer ON features(layer);
";
)
");
$stmt = $pdo->prepare("
SELECT 1
FROM information_schema.statistics
WHERE table_schema = DATABASE()
AND table_name = 'features'
AND index_name = 'idx_layer'
LIMIT 1
");
$stmt->execute();
if (!$stmt->fetchColumn()) {
$pdo->exec("CREATE INDEX idx_layer ON features(layer)");
}
try {
$pdo->exec($sql);
echo "Database table 'features' created successfully.";
} catch (PDOException $e) {
echo "Error creating table: " . $e->getMessage();