implement docker

This commit is contained in:
tistopandita
2026-06-11 15:28:54 +07:00
parent b350e4e2c8
commit 448fcb54f0
6 changed files with 161 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
# ─── Konfigurasi Database MySQL ─────────────────────────────────────────────
# Di Coolify: gunakan nama service MySQL yang dibuat, contoh: "mysql" atau "db"
DB_HOST=db
DB_PORT=3306
DB_USER=webgis_user
DB_PASSWORD=ganti_dengan_password_kuat
DB_NAME=spbu_pontianak
# ─── Server ──────────────────────────────────────────────────────────────────
PORT=3000
NODE_ENV=production
+12
View File
@@ -10,9 +10,21 @@ const app = express();
const PORT = process.env.PORT || 3000;
// ─── Middleware ───────────────────────────────────────────────────────────────
app.set("trust proxy", 1); // Untuk Coolify reverse proxy (Traefik/Nginx)
app.use(cors());
app.use(express.json());
app.use("/api/poverty", povertyRoutes);
// ─── Health Check (dibutuhkan Coolify untuk monitoring container) ─────────────────
app.get("/health", async (req, res) => {
try {
await db.execute("SELECT 1");
res.json({ status: "ok", db: "connected", timestamp: new Date().toISOString() });
} catch (err) {
res.status(503).json({ status: "error", db: "disconnected", message: err.message });
}
});
// ─── Root: landing page (harus sebelum express.static) ───────────────────────
app.get("/", (req, res) => {
res.sendFile(path.join(__dirname, "../frontend/landing.html"));