Intro
Caddy adalah server web open-source yang mendukung aplikasi web statis maupun modern menggunakan aturan konfigurasi yang sudah ditentukan, lengkap dengan fitur HTTPS otomatis untuk semua nama domain yang terhubung. Ditulis menggunakan bahasa pemrograman Go, Caddy menawarkan pengaturan konfigurasi yang ramah pengguna, sehingga dapat digunakan sebagai server web, reverse proxy, atau load balancer untuk menyajikan aplikasi web di server Anda.
Artikel ini akan membahas langkah-langkah untuk menginstal server web Caddy di Ubuntu 24.04 dan mengamankan aplikasi web di server tersebut.
Persyaratan Awal
Sebelum memulai, pastikan sobat server :
- Menyiapkan instance server Ubuntu 24.04.
- Membuat catatan A pada domain Anda yang mengarah ke IP server.
- Mengakses server melalui SSH.
- Membuat akun non-root dengan hak akses sudo, lalu beralih ke akun tersebut.
Cara Menginstal Caddy
Karena Caddy tidak tersedia di repositori APT bawaan Ubuntu 24.04, instalasinya dilakukan melalui file sumber atau dengan menambahkan repositori resmi terbaru ke server. Berikut langkahnya:
- Tambahkan kunci GPG terbaru untuk Caddy ke server sobat:
root@jagoserver:~# curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
- Tambahkan repositori Caddy ke daftar sumber APT:
root@jagoserver:~# curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
- Perbarui indeks paket:
root@jagoserver:~# sudo apt update
- Instal Caddy:
root@jagoserver:~# sudo apt install caddy
- Periksa versi Caddy untuk memastikan instalasi berhasil:
root@jagoserver:~# caddy -v
- Buka akses koneksi ke port HTTP (80) melalui firewall:
root@jagoserver:~# sudo ufw allow 80 root@jagoserver:~# sudo ufw reload
Akses IP server sobat melalui browser untuk memverifikasi bahwa halaman default Caddy ditampilkan.
Mengelola Layanan Sistem Caddy
Agar Caddy berjalan otomatis saat boot, aktifkan layanannya:
root@jagoserver:~# sudo systemctl enable caddy
Start Caddy:
root@jagoserver:~# sudo systemctl start caddy
Periksa status service untuk memastikan berjalan dengan baik:
root@jagoserver:~# sudo systemctl status caddy
Membuat Virtual Host di Caddy
Konfigurasi virtual host memungkinkan Anda menyajikan aplikasi web tertentu. Berikut langkah-langkahnya:
- Buat direktori untuk file aplikasi web:
root@jagoserver:~# sudo mkdir -p /var/www/example.com
- Tambahkan file HTML sederhana di direktori tersebut:
root@jagoserver:~# sudo nano /var/www/example.com/index.html
Isi file:<html> <head> <title>Selamat Datang!</title> </head> <body> <h1 align="center">Hello World, Greetings from Caddy!</h1> </body> </html>
- Pindah ke direktori konfigurasi Caddy:
root@jagoserver:~# cd /etc/caddy/
- Cadangkan file konfigurasi default:
root@jagoserver:~# sudo mv Caddyfile Caddyfile.default
- Buat file konfigurasi baru untuk virtual host:
root@jagoserver:~# sudo nano Caddyfile
Isi konfigurasi:example.com { tls [email protected] root * /var/www/example.com file_server { index index.html } log { output file /var/log/caddy/example.log format console } }
- Validasi konfigurasi Caddy:
root@jagoserver:~# caddy validate
- Terapkan perubahan dengan me-reload layanan:
root@jagoserver:~# sudo caddy reload
Keamanan dan Firewall Caddy
Untuk mengamankan Caddy:
- Ubah kepemilikan direktori konfigurasi menjadi milik pengguna Caddy:
root@jagoserver:~# sudo chown -R caddy:caddy /etc/caddy
- Sesuaikan izin file Caddyfile agar hanya dapat diakses pengguna tertentu:
root@jagoserver:~# sudo chmod 660 /etc/caddy/Caddyfile
Pastikan port HTTP (80) dan HTTPS (443) terbuka di firewall:
root@jagoserver:~# sudo ufw allow 443
root@jagoserver:~# sudo ufw reload
Akses domain sobat server untuk memverifikasi bahwa aplikasi web berjalan dengan SSL.
Kesimpulan
Sobat server telah berhasil menginstal server web Caddy di Ubuntu 24.04 dan mengonfigurasi virtual host untuk menyajikan aplikasi web. Untuk informasi lebih lanjut, kunjungi dokumentasi resmi Caddy.
Jika ada yang perlu diubah atau diperbaiki, beri tahu saya, sobat server! 😊