Files
web-antrean/README.Docker.md
T

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 HOST diatur ke 0.0.0.0 agar aplikasi dapat menerima request dari luar container Docker. Sesuaikan AUTH_ORIGIN dan POST_LOGOUT_REDIRECT_URI dengan 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:


🔧 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 .env ke Git repository.
  • Selalu gunakan NUXT_AUTH_SECRET yang aman dan unik untuk setiap environment (Development/Production).