Mengatur Custom Domain di Fly.io

Berawal dari postingan tentang deploy Valtwarden sebelumnya, tentu
saya akan menggunakan domain gratisan saya supaya saya tidak
banyak mengubah pengaturan di klien Bitwarden lain. Yang disayangkan
adalah kita tidak bisa benar-benar mengganti domain dari fly.io, kita
hanya bisa melakukan pointing saja. Jadi, kalau ada orang yang mengakses
domain proyek saya, tentu bisa dibuka.
Sebagai contoh, domain project saya adalah https://ttrphy-vault.fly.dev,
kemudian saya akan menggunakan domain saya sendiri yaitu ke https://vault.ktem.eu.org sesuai
apa yang ada di fly.toml
vaultwarden saya.
Ada 2 cara yang bisa kita lakukan, yaitu dengan menggunakan CNAME atau dengan A/AAAA record, tetapi tentu akan lebih lama karena ketika kita mengakses custom domain, akan dilakukan lookup lagi ke DNS-nya fly.io. Saya lebih suka menggunakan A/AAAA record. Langsung saja, berikut langkah-langkahnya:
1. Buat cert untuk custom domain kita
Langsung saja ketik perintah
fly cert create vault.ktem.eu.org
. Bolehkah menggunakan
wildcard? Tentu saja bisa. Setelah beberapa saat, ketikkan
fly cert show vault.ktem.eu.org
dan salin ke notepad bagian
DNS, misalnya seperti di bawah.
-challenge.vault.ktem.eu.org => vault.ktem.eu.org.o055.flydns.net.
DNS Validation Instructions = CNAME _acme-challenge.vault.ktem.eu.org
DNS Validation Hostname = _acme DNS Validation Target = vault.ktem.eu.org.o055.flydns.net
2. Masukkan ke dns provider kamu
Di sini saya menggunakan Cloudflare sebagai penyedia DNS, dan perlu dicatat bahwa Cloudflare menawarkan proxy dalam manajemen DNS-nya. Untuk bisa terhubung ke fly.io, kita harus menonaktifkan fitur proxy tersebut.
OK, masuk ke DNS cloudlare, dan masukkan acme challenge
ke DNS recordnya. Lalu untuk mengisi record A atau AAAA, ketikkan
fly ips list
. Input deh satu - satu, ingat matikan fitur
proxy, jadi DNS record pada cf berstatus DNS Only
.
3. Validasi
cert
dan domain kustom siap digunakan
Ketikkan perintah fly cert check
. Jika berhasil, itu
berarti domain kustom sudah siap digunakan.
Begitu saja, seperti di Heroku, sebenarnya kita tidak bisa benar-benar menghapus subdomain dari Heroku/fly.io, tetapi setidaknya kita bisa menggunakan custom domain kita sendiri. Bahkan lebih baik lagi, fly.io memberikan Anycast IP kepada kita, sehingga penggunaan custom domain menjadi lebih fleksibel!
Selamat mencoba!