Membangun Aplikasi SaaS Multi-Tenant dengan Rails 8, Caddy, dan Kamal
Setelah mempublikasikan panduan deploy Kamal, pertanyaan paling umum adalah: "Bagaimana cara menghandle multiple tenant domain dengan automatic SSL?"
Technical Detail
Panduan ini menjelaskan bagaimana membangun aplikasi SaaS multi-tenant dengan Rails 8, Caddy, dan Kamal. Kami akan membahas tentang:
- Mengapa kamal-proxy's SSL tidak scale untuk aplikasi multi-tenant
- Menjalankan Caddy sebagai aksesori Kamal untuk on-demand TLS
- Endpoint /internal/tls/verify — Caddy meminta Rails sebelum mengeluarkan sertifikat
- Model subdomain, validasi, dan auto-generasi
- Routing berbasis constraint (TenantConstraint / MainConstraint)
- Mengatasi tenant saat ini dari request hostname
- Model domain kustom dengan instruksi DNS untuk pengguna
- Konfigurasi Caddyfile dan deploy.yml lengkap
Key Features
- Mendukung multi-tenant: Aplikasi dapat menghandle multiple tenant domain secara otomatis
- Automatic SSL: Caddy dapat mengeluarkan sertifikat SSL secara otomatis untuk setiap tenant
- Konfigurasi fleksibel: Konfigurasi Caddyfile dan deploy.yml dapat disesuaikan dengan kebutuhan aplikasi
Geek Opinion
Membangun aplikasi SaaS multi-tenant dengan Rails 8, Caddy, dan Kamal adalah pilihan yang tepat untuk developer yang ingin menghandle multiple tenant domain secara otomatis. Dengan menggunakan Caddy sebagai aksesori Kamal, kita dapat mengeluarkan sertifikat SSL secara otomatis untuk setiap tenant.



