Membangun aplikasi modern tidak hanya soal coding. Setelah aplikasi selesai dibuat, langkah penting berikutnya adalah melakukan deployment ke server agar bisa diakses secara online dengan aman dan stabil.
Pada artikel ini, kita akan membahas cara setup server Ubuntu 24.04 mulai dari instalasi Docker, konfigurasi Nginx sebagai reverse proxy, hingga pemasangan SSL gratis menggunakan Let's Encrypt Certbot.
Panduan ini cocok untuk deployment aplikasi Next.js, Laravel, Node.js, Golang, Python, maupun aplikasi berbasis Docker lainnya.
Persiapan Server
Sebelum memulai, pastikan Anda sudah memiliki:
- VPS dengan Ubuntu 24.04
- Domain yang sudah mengarah ke IP VPS
- Akses SSH ke server
- User dengan hak sudo atau root
Contoh domain yang digunakan:
chatline.example.com
Update Sistem Ubuntu
Langkah pertama adalah memperbarui paket sistem agar menggunakan versi terbaru.
sudo apt update
sudo apt upgrade -y
sudo reboot
Setelah server kembali online, login kembali melalui SSH.
Install Docker di Ubuntu 24.04
Docker memudahkan proses deployment karena aplikasi dapat berjalan dalam container yang terisolasi.
Install Docker menggunakan script resmi:
curl -fsSL https://get.docker.com | sh
Pastikan Docker berhasil terpasang:
docker --version
Cek juga Docker Compose:
docker compose version
Aktifkan Docker agar otomatis berjalan saat server restart:
sudo systemctl enable docker
sudo systemctl start docker
Install Nginx
Nginx akan digunakan sebagai reverse proxy yang meneruskan request dari domain ke aplikasi yang berjalan di Docker.
Install Nginx:
sudo apt install nginx -y
Aktifkan service:
sudo systemctl enable nginx
sudo systemctl start nginx
Cek status:
sudo systemctl status nginx
Konfigurasi Firewall
Jika menggunakan UFW, buka akses untuk HTTP dan HTTPS.
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
Verifikasi:
sudo ufw status
Menjalankan Aplikasi dengan Docker
Misalnya aplikasi berjalan pada port 8001.
Contoh menjalankan container:
docker compose up -d
Pastikan aplikasi dapat diakses secara lokal:
curl http://localhost:8001
Jika aplikasi merespon dengan baik, lanjut ke konfigurasi Nginx.
Konfigurasi Nginx Reverse Proxy
Buat file konfigurasi baru:
sudo nano /etc/nginx/sites-available/chatline.example.com
Isi dengan konfigurasi berikut:
server {
listen 80;
listen [::]:80;
server_name chatline.example.com;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Aktifkan konfigurasi:
sudo ln -s /etc/nginx/sites-available/chatline.example.com /etc/nginx/sites-enabled/
Hapus konfigurasi default:
sudo rm -f /etc/nginx/sites-enabled/default
Test konfigurasi:
sudo nginx -t
Jika berhasil:
sudo systemctl reload nginx
Install SSL Gratis dengan Certbot
Agar website dapat diakses menggunakan HTTPS, install Certbot terlebih dahulu.
sudo apt install certbot python3-certbot-nginx -y
Cek versi:
certbot --version
Generate SSL Let's Encrypt
Pastikan domain sudah mengarah ke IP VPS.
Jika menggunakan Cloudflare, ubah DNS menjadi DNS Only terlebih dahulu sebelum proses generate SSL.
Jalankan:
sudo certbot --nginx -d chatline.example.com
Masukkan email dan ikuti instruksi yang muncul.
Saat ditanya mengenai redirect HTTP ke HTTPS, pilih:
Redirect
Certbot akan otomatis:
- Membuat sertifikat SSL
- Menambahkan konfigurasi SSL ke Nginx
- Membuat redirect HTTP ke HTTPS
Test SSL HTTPS
Buka browser:
https://chatline.example.com
Atau test menggunakan terminal:
curl -I https://chatline.example.com
Jika berhasil, website sudah menggunakan HTTPS dengan sertifikat SSL yang valid.
Auto Renewal SSL
Let's Encrypt memiliki masa berlaku 90 hari.
Certbot secara otomatis membuat jadwal perpanjangan sertifikat.
Untuk memastikan fitur auto renewal berjalan:
systemctl list-timers | grep certbot
Lakukan simulasi:
sudo certbot renew --dry-run
Jika tidak ada error, sertifikat akan diperpanjang otomatis sebelum masa berlaku habis.
Konfigurasi Cloudflare (Opsional)
Jika menggunakan Cloudflare, setelah SSL berhasil dibuat:
- Aktifkan kembali Proxy Cloudflare
- Masuk ke menu SSL/TLS
- Pilih mode Full (Strict)
Konfigurasi ini memberikan keamanan maksimal antara Cloudflare dan server origin.
Struktur Deployment yang Direkomendasikan
/opt/app
├── docker-compose.yml
├── .env
├── uploads
├── backups
└── logs
Dengan struktur ini, proses maintenance, backup, dan scaling aplikasi akan lebih mudah dilakukan.
Kesimpulan
Menggunakan Docker, Nginx, dan SSL Certbot adalah salah satu kombinasi terbaik untuk deployment aplikasi modern di Ubuntu 24.04. Setup ini ringan, mudah dikelola, aman, dan cocok digunakan untuk berbagai jenis aplikasi seperti Next.js, Node.js, Laravel, Go, Python, hingga aplikasi SaaS berbasis Docker.
Dengan reverse proxy Nginx dan SSL Let's Encrypt, aplikasi Anda akan lebih profesional, aman, dan siap digunakan di lingkungan production.
Top comments (0)