Untuk Deploy
This commit is contained in:
@@ -0,0 +1,12 @@
|
|||||||
|
.git
|
||||||
|
.gitignore
|
||||||
|
.agents
|
||||||
|
.codex
|
||||||
|
**/.git
|
||||||
|
**/.git/**
|
||||||
|
**/.idea
|
||||||
|
**/.vscode
|
||||||
|
**/node_modules
|
||||||
|
deploy.py
|
||||||
|
README.md
|
||||||
|
|
||||||
+15
@@ -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
|
||||||
|
|
||||||
@@ -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
|
## 🚀 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**:
|
Karena aplikasi ini sekarang menggunakan **PHP dan MySQL**, Anda tidak bisa langsung membuka file HTML-nya. Ikuti langkah berikut menggunakan **XAMPP**:
|
||||||
|
|||||||
+23
-11
@@ -1,18 +1,30 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once 'db.php';
|
require_once 'db.php';
|
||||||
|
|
||||||
$sql = "
|
|
||||||
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);
|
|
||||||
";
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$pdo->exec($sql);
|
$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
|
||||||
|
)
|
||||||
|
");
|
||||||
|
|
||||||
|
$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)");
|
||||||
|
}
|
||||||
|
|
||||||
echo "Database table 'features' created successfully.";
|
echo "Database table 'features' created successfully.";
|
||||||
} catch (PDOException $e) {
|
} catch (PDOException $e) {
|
||||||
echo "Error creating table: " . $e->getMessage();
|
echo "Error creating table: " . $e->getMessage();
|
||||||
|
|||||||
Reference in New Issue
Block a user