Banyak developer Indonesia yang masih bingung bagaimana cara deploy aplikasi Next.js mereka ke production. Padahal, dengan VPS murah seharga Rp50-100 ribu per bulan, kamu sudah bisa punya server sendiri.
Dalam tutorial ini, kita akan membahas langkah-langkah lengkap deploy Next.js menggunakan Docker dan Caddy sebagai reverse proxy.
Persiapan
Yang kamu butuhkan:
- VPS dengan Ubuntu 22.04 atau lebih baru (minimal 1GB RAM)
- Domain yang sudah pointing ke IP VPS
- SSH access ke VPS
Step 1: Install Docker
SSH ke VPS dan jalankan:
curl -fsSL https://get.docker.com | sh
Verifikasi instalasi:
docker --version
Step 2: Buat Dockerfile
Di root project Next.js kamu, buat file Dockerfile:
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /app
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public
EXPOSE 3000
CMD ["node", "server.js"]
Step 3: Docker Compose
Buat docker-compose.yml:
services:
app:
build: .
restart: unless-stopped
ports:
- "3000:3000"
env_file:
- .env.production
Step 4: Install dan Konfigurasi Caddy
Caddy adalah reverse proxy yang otomatis menangani SSL certificate.
apt install -y caddy