Files
mates-infra/ansible
mates 444191d16d 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
2026-08-01 16:25:58 +02:00
..
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00
2026-08-01 16:25:58 +02:00

🎭 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

# 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