Setup with Docker
Cara tercepat untuk men-deploy NxGate self-hosted adalah menggunakan Docker Compose. Panduan ini menjelaskan langkah-langkah dari nol sampai aplikasi siap diakses dari publik dengan reverse proxy.
1. Prasyarat
- Server Linux (Ubuntu 22.04+ direkomendasikan)
- Docker Engine 24+ dan Docker Compose v2
- Domain yang sudah diarahkan ke server
- Port 80 & 443 terbuka untuk reverse proxy
2. docker-compose.yml
docker-compose.yml
1# docker-compose.yml2version: "3.9"34services:5 nxgate:6 image: noxlydev/nxgate:latest7 container_name: nxgate8 restart: unless-stopped9 ports:10 - "3000:3000"11 environment:12 DATABASE_URL: postgres://nxgate:secret@db:5432/nxgate13 JWT_SECRET: change-me-please14 SMTP_HOST: smtp.gmail.com15 SMTP_USER: noreply@yourdomain.com16 SMTP_PASSWORD: ${SMTP_PASSWORD}17 depends_on:18 - db1920 db:21 image: postgres:16-alpine22 container_name: nxgate-db23 restart: unless-stopped24 environment:25 POSTGRES_USER: nxgate26 POSTGRES_PASSWORD: secret27 POSTGRES_DB: nxgate28 volumes:29 - nxgate_pgdata:/var/lib/postgresql/data3031volumes:32 nxgate_pgdata:
3. Jalankan Container
terminal
# Pull image dan jalankandocker compose pulldocker compose up -d# Cek statusdocker compose ps# Lihat logdocker compose logs -f nxgate
4. Migrasi Database & Admin
terminal
# Jalankan migrasi database (sekali saat install pertama)docker compose exec nxgate npm run migrate# Buat akun admin pertamadocker compose exec nxgate npm run create:admin
5. Reverse Proxy (Nginx)
nxgate.conf
1# /etc/nginx/sites-available/nxgate2server {3 listen 443 ssl http2;4 server_name license.yourdomain.com;56 ssl_certificate /etc/letsencrypt/live/license.yourdomain.com/fullchain.pem;7 ssl_certificate_key /etc/letsencrypt/live/license.yourdomain.com/privkey.pem;89 location / {10 proxy_pass http://127.0.0.1:3000;11 proxy_http_version 1.1;12 proxy_set_header Host $host;13 proxy_set_header X-Real-IP $remote_addr;14 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;15 proxy_set_header X-Forwarded-Proto $scheme;16 }17}
Backup Otomatis
Tambahkan cron job harian yang menjalankan docker compose exec db pg_dump ke object storage agar data lisensi Anda selalu aman.