3.2 KiB
Panduan Deployment Docker - web-antrean
Panduan ini berisi langkah-langkah untuk menjalankan aplikasi web-antrean (Nuxt 3) menggunakan Docker & Docker Compose.
📦 Prasyarat (Prerequisites)
Sebelum memulai, pastikan Anda telah menginstal:
- Docker Desktop (atau Docker Engine di Linux)
- Docker Compose (biasanya otomatis terinstal dengan Docker Desktop)
🚀 Quick Start (Mulai Cepat)
1. Siapkan File .env
Pastikan file .env sudah ada di root folder web-antrean dengan konfigurasi yang benar. Anda bisa menyalin dari template yang disediakan:
cp .env.docker.example .env
Important
Pastikan variabel
HOSTdiatur ke0.0.0.0agar aplikasi dapat menerima request dari luar container Docker. SesuaikanAUTH_ORIGINdanPOST_LOGOUT_REDIRECT_URIdengan alamat/domain server Anda (misal:http://10.10.150.175:3000).
2. Bangun dan Jalankan Container
Jalankan perintah berikut di terminal untuk melakukan build image sekaligus menjalankan container di background:
docker-compose up -d --build
3. Akses Aplikasi
Setelah container berhasil berjalan, aplikasi dapat diakses di browser melalui:
- http://localhost:3000 (atau IP server Anda, misal: http://10.10.150.175:3000)
🔧 Perintah Docker yang Sering Digunakan (Useful Commands)
Menjalankan Container (Jalankan di background)
docker-compose up -d
Mematikan Container
docker-compose down
Membangun Ulang & Menjalankan Ulang (Jika ada perubahan kode)
docker-compose up -d --build
Melihat Log Aplikasi secara Real-time
docker-compose logs -f web-antrean
Masuk ke Terminal di Dalam Container
docker exec -it web-antrean sh
💾 Persistensi Database (SQLite)
Aplikasi web-antrean menggunakan better-sqlite3 untuk menyimpan data sinkronisasi pengguna di /app/data/users.db.
Agar data ini tidak hilang saat container dihapus atau dibangun ulang, kami menggunakan Volume Mounting di docker-compose.yml:
volumes:
- ./data:/app/data
Ini akan otomatis memetakan folder local ./data di host server Anda ke folder /app/data di dalam container. File database Anda akan tersimpan dengan aman di folder local ./data.
🔍 Troubleshooting (Penyelesaian Masalah)
1. Masalah dengan Native Module compilation (better-sqlite3)
Jika image gagal dibangun karena error kompilasi C/C++, Dockerfile kami telah dikonfigurasi menggunakan multi-stage build dengan base image node:20-alpine dan menginstal package compiler (make, g++, gcc, python3) di builder stage. Ini menjamin proses build aman dan hasil image final tetap berukuran kecil (~150MB - 200MB).
2. Cek Status Container dan Health Check
Container ini dilengkapi dengan health check otomatis. Anda bisa mengecek statusnya dengan:
docker ps
Jika statusnya Up (healthy), berarti server Nuxt Anda telah siap dan dapat diakses.
3. Hapus Cache Docker jika Mengalami Error Aneh
docker-compose down --rmi all --volumes
🛡️ Catatan Keamanan
- Jangan pernah meng-commit file
.envke Git repository. - Selalu gunakan
NUXT_AUTH_SECRETyang aman dan unik untuk setiap environment (Development/Production).