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
|
||||
|
||||
Karena aplikasi ini sekarang menggunakan **PHP dan MySQL**, Anda tidak bisa langsung membuka file HTML-nya. Ikuti langkah berikut menggunakan **XAMPP**:
|
||||
|
||||
+18
-6
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user