feat: initial infra repo

- docker-services: 14 generic compose templates (portainer, npm, vaultwarden, gitea, jotty, nextcloud-aio, rustdesk, audiobookshelf, calibre-web, plex, erugo, jswiki, speedtest, watchtower)
- install-scripts: bash scripts for Ubuntu server bootstrap, docker, portainer, npm, backup, restore
- ansible: 4 playbooks (bootstrap, deploy-services, update-services, security-hardening) + roles skeleton
- hermes-install: Hermes CLI setup on macOS
- macos-setup: Brewfile + osx-defaults + fish-config
- home-nas-tools: metadata index for NAS projects (no binaries)
- docs: architecture, security, contributing
- README, LICENSE (MIT), .gitignore
This commit is contained in:
2026-08-01 16:25:58 +02:00
commit 444191d16d
73 changed files with 4032 additions and 0 deletions
+88
View File
@@ -0,0 +1,88 @@
# 🎭 Ansible Playbooks
> Ansible role a playbooks pro nasazení a správu home infrastruktury.
> Idempotentní, testovatelné, čitelné.
## 📁 Struktura
```
ansible/
├── README.md # Tento soubor
├── ansible.cfg # Konfigurace
├── requirements.yml # Ansible Galaxy role
├── inventory.example.yml # Ukázkový inventory
├── playbooks/
│ ├── bootstrap-server.yml # Úvodní setup nového serveru
│ ├── deploy-services.yml # Nasaď všechny Docker služby
│ ├── update-services.yml # Update všech služeb
│ └── security-hardening.yml # Bezpečnostní hardening
├── roles/
│ ├── common/ # Společné úkoly (update, packages, users)
│ ├── docker/ # Docker + compose
│ ├── portainer/ # Portainer compose
│ ├── nginx-proxy/ # Nginx Proxy Manager
│ ├── vaultwarden/ # Vaultwarden
│ ├── gitea/ # Gitea
│ └── ...
└── group_vars/
└── all.yml.example # Společné proměnné
```
## 🚀 Quickstart
```bash
# 1. Příprava
pip install ansible
ansible-galaxy install -r requirements.yml
# 2. Inventory
cp inventory.example.yml inventory.yml
nano inventory.yml # nastavit IP a SSH user
# 3. Test připojení
ansible all -m ping
# 4. Bootstrap
ansible-playbook -i inventory.yml playbooks/bootstrap-server.yml
# 5. Nasaď služby
ansible-playbook -i inventory.yml playbooks/deploy-services.yml --extra-vars "services=[portainer,vaultwarden,gitea]"
# 6. Update
ansible-playbook -i inventory.yml playbooks/update-services.yml
```
## 🎯 Playbooky
### `bootstrap-server.yml`
- Update OS
- Setup deploy user (UID 1000)
- SSH hardening
- UFW firewall
- fail2ban
- Základní utility
### `deploy-services.yml`
- Nasaď vybrané Docker služby
- Idempotentní můžeš spustit víckrát
### `update-services.yml`
- `docker compose pull && up -d` pro všechny služby
- Watchtower notifikace
### `security-hardening.yml`
- Sysctl hardening
- AppArmor profily
- Auditd pravidla
- Automatické security updaty
## 🔐 Bezpečnost
- **Bez hesel v inventory** použij `ansible-vault` nebo SSH klíče
- **Privilege escalation** `become: true` jen kde potřeba
- **Idempotence** každý task kontroluje stav
## 📚 Dokumentace
- [Ansible docs](https://docs.ansible.com/)
- [Best practices](https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html)