Repositori ini berisi infrastruktur-as-code (IaC) untuk manajemen homelab menggunakan Ansible. Konfigurasi ini mencakup otomatisasi deployment layanan, manajemen jaringan, dan sistem tunnel yang aman.
- Ansible: Alat utama manajemen konfigurasi dan deployment.
- Docker: Containerization untuk hampir semua aplikasi.
- SOPS + Age: Manajemen file rahasia (secrets) secara terenkripsi di dalam repositori.
- Cloudflare Tunnel: Akses publik yang aman tanpa perlu buka port router (Manajemen Lokal).
- Taskfile: Orkestrasi perintah pengembangan dan deployment.
Semua variabel sensitif disimpan dalam file .sops.yaml yang dienkripsi menggunakan Age.
- Kunci publik tercatat di
.sops.yamlroot. - Kunci privat (
age.key) harus tersedia di lingkungan lokal agar Ansible dapat melakukan dekripsi saat runtime.
Tunnel dikelola sepenuhnya melalui repositori ini (Local Management Mode). Konfigurasi ingress didefinisikan di inventory/group_vars/tunnel.sops.yaml.
| Public Hostname | Internal Service | Deskripsi |
|---|---|---|
home.itstoni.com |
http://homarr:7575 |
Homarr Dashboard |
hestia.itstoni.com |
http://hass:8123 |
Home Assistant |
sm.itstoni.com |
http://semaphore:3000 |
Ansible Semaphore |
zb.itstoni.com |
http://zabbix-dashboard:8080 |
Zabbix Monitoring |
lb.itstoni.com |
http://librenms:8000 |
LibreNMS |
pg.itstoni.com |
tcp://postgres:5432 |
Postgres Database (TCP) |
- Pastikan virtual environment aktif:
source .venv/bin/activate - Pastikan
age.keysudah terkonfigurasi untuk dekripsi SOPS.
Gunakan task untuk menjalankan playbook:
- Deploy Semua:
task play - Deploy Berdasarkan Tag:
task play tags=tunnel - Cek Perubahan (Dry Run):
task check tags=tunnel
roles/core/: Layanan dasar (Docker, Cloudflare Tunnel, Squid, Traefik).roles/apps/: Aplikasi spesifik (Home Assistant, Zabbix, Homarr, dll).roles/storage/: Database dan sistem penyimpanan (Postgres, MySQL, Redis, Minio).inventory/group_vars/: Variabel konfigurasi terenkripsi per grup layanan.