Modern Self-Hosted Web Infrastructure & CMS
🛡️ Project Overview
Merancang dan men-deploy arsitektur infrastruktur web yang sepenuhnya mandiri (Self-Hosted) sebagai demonstrasi praktis dari prinsip 'Infrastructure as Code'.
Berbeda dengan solusi hosting konvensional (Shared/cPanel) yang terbatas, sistem ini dibangun manual dari level OS hingga Application Layer menggunakan orkestrasi container. Tujuannya adalah menciptakan lingkungan produksi yang terisolasi, portabel, dan memiliki kontrol penuh atas keamanan serta performa.
⚙️ Tech Stack
- Core Infrastructure: Docker & Docker Compose (Microservices Architecture).
- Edge Gateway: Nginx (Reverse Proxy & SSL Termination).
- Backend Application: Python Flask (WSGI Interface).
- Security & Automation: Certbot (Let's Encrypt), UFW Firewall, Bash Scripting.
🚀 Key Technical Implementations
1. High-Performance Edge Gateway (Nginx)
Mengimplementasikan Nginx sebagai gerbang utama lalu lintas HTTP/HTTPS. Dikonfigurasi secara hard-code untuk menangani:
* SSL Termination: Dekripsi trafik HTTPS sebelum masuk ke jaringan internal container.
* Reverse Proxy: Routing cerdas ke container aplikasi Flask.
* Security Headers: Implementasi HSTS dan X-Frame-Options untuk mencegah serangan umum.
2. Automated TLS Lifecycle Management
Mengatasi tantangan teknis "Chicken & Egg" pada deployment awal SSL dengan mengembangkan Custom Bootstrap Script.
* Problem: Nginx butuh sertifikat untuk start, tapi Certbot butuh Nginx jalan untuk validasi domain.
* Solution: Script otomatis yang men-generate sertifikat dummy untuk inisialisasi, lalu melakukan validasi Let's Encrypt, dan auto-renewal tanpa downtime (Zero-touch maintenance).
3. Defense-in-Depth Security Strategy
Penerapan keamanan berlapis untuk melindungi server fisik:
* OS Level: Konfigurasi UFW Firewall (Whitelisting port esensial hanya 80/443/22).
* Container Level: Menjalankan service dengan Non-Root User untuk meminimalisir dampak privilege escalation.
* App Level: Hashing password admin menggunakan algoritma PBKDF2.
4. Custom Content Management System (CMS)
Alih-alih menggunakan CMS jadi (Wordpress), saya membangun backend dinamis berbasis Flask yang disesuaikan dengan kebutuhan:
* Dynamic Content: Manajemen Project, Blog, dan Sertifikat secara real-time.
* Markdown Editor: Integrasi editor WYSIWYG untuk penulisan artikel teknis yang rapi.
* Media Management: Sistem upload dan manajemen file statis yang terintegrasi.