Cara Install Caddy Web Server di Ubuntu 24.04
Caddy adalah web server open-source yang dirancang untuk kesederhanaan dan otomatisasi. Dibangun dengan Go, Caddy menawarkan fitur yang menarik, termasuk dukungan bawaan untuk HTTPS melalui Let’s Encrypt, manajemen sertifikat otomatis, dan konfigurasi yang sederhana. Berkat fitur-fitur tersebut, Caddy menjadi pilihan ideal bagi pengembang yang membutuhkan solusi cepat dan handal untuk melayani situs web atau aplikasi.
Install Caddy
Berikut adalah langkah-langkah untuk menginstal dan mengonfigurasi Caddy Web Server di Ubuntu 24.04.
Install dependensi untuk menambahkan Caddy GPG key dan apt:
1 | sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl |
Menambahkan Caddy GPG key:
1 | curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg |
Menambahkan Caddy repository:
1 | curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list |
Update repository dan install Caddy:
1 2 | sudo apt update sudo apt install caddy |
Menampilkan service status Caddy:
1 | sudo systemctl status caddy |
Deploy Static Site
Membuat direktori untuk document root dengan nama domain aminlabs.my.id
:
1 | sudo mkdir -p /var/www/aminlabs.my.id |
Membuat file index.html
:
1 | sudo nano /var/www/aminlabs.my.id/index.html |
Isi file dummy index.html
:
1 2 3 4 5 6 7 8 9 | <!DOCTYPE html> <html> <head> <title>Selamat datang</title> </head> <body> <h1>Selamat datang. Halaman ini menggunakan Caddy web server</h1> </body> </html> |
Berpindah direktori ke caddy
dan membuka file konfigurasi Caddyfile
:
1 2 | cd /etc/caddy sudo nano Caddyfile |
Ganti isinya, lalu masukkan konfigurasi untuk domain aminlabs.my.id
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | www.aminlabs.my.id { tls admin@aminlabs.my.id root * /var/www/aminlabs.my.id file_server log { output file /var/log/caddy/aminlabs.my.id.log } } aminlabs.my.id { redir https://www.aminlabs.my.id{uri} permanent } |
Arti dari baris konfigurasi Caddyfile
di atas:
- www.aminlabs.my.id {: menentukan domain atau subdomain yang akan dilayani oleh Caddy, dalam hal ini adalah www.aminlabs.my.id.
- tls [email protected]: mengaktifkan TLS (HTTPS) untuk domain www.aminlabs.my.id. Sertifikat SSL akan diurus otomatis oleh Let’s Encrypt dengan email [email protected] untuk notifikasi terkait SSL, seperti peringatan pembaruan atau masalah sertifikat.
- root * /var/www/aminlabs.my.id: menentukan direktori root yang akan digunakan untuk melayani file statis.
- file_server: mengaktifkan fitur file server, yang memungkinkan Caddy untuk melayani file statis dari direktori root yang telah ditentukan.
- index index.html: menentukan file indeks yang akan dicari oleh Caddy saat mengakses direktori.
- log {: mengonfigurasi logging.
- output file /var/log/caddy/aminlabs.my.id.log: log dari situs www.aminlabs.my.id akan disimpan dalam file /var/log/caddy/aminlabs.my.id.log
- aminlabs.my.id {: menangani domain utama aminlabs.my.id (tanpa www.).
- redir https://www.aminlabs.my.id{uri} permanent: menginstruksikan Caddy untuk melakukan pengalihan permanen (HTTP status code 301) dari domain aminlabs.my.id ke versi www.aminlabs.my.id. {uri} memastikan bahwa semua jalur (path) yang diminta dari domain aminlabs.my.id akan diteruskan ke domain www.aminlabs.my.id dengan jalur yang sama. Misalnya, jika pengguna mengunjungi aminlabs.my.id/about, mereka akan diarahkan ke www.aminlabs.my.id/about.
Memverifikasi konfigurasi Caddyfile
apakah terdapat kesalahan:
1 | sudo caddy validate |
Jika terdapat pesan peringatan:
1 | WARN Caddyfile input is not formatted; run 'caddy fmt --overwrite' to fix inconsistencies |
jalankan perintah berikut:
1 | sudo caddy fmt --overwrite |
Restart service Caddy:
1 | sudo systemctl restart caddy |
Terakhir, menguji hasil konfigurasi Caddy web server, browse nama domain. Jika berhasil, domain harus bisa diakses, menampilkan halaman index.html, dan protokol HTTPS telah aktif.
Selamat mencoba 🙂