refactor: split into 6 specialized repos

- docker-services, ansible, install-scripts -> own repos
- macos-setup merged with hermes-install
- home-nas-tools (metadata only, no binaries)
- docs (architecture, security, contributing)
- this repo: index + LICENSE + .gitignore only
This commit is contained in:
2026-08-01 16:37:32 +02:00
parent b569344e69
commit 24d5e9be42
72 changed files with 61 additions and 3904 deletions
+61 -51
View File
@@ -1,83 +1,93 @@
# 🔧 mates Home Infrastructure
# 🏠 mates-infra Home Infrastructure
> Sbírka šablon, skriptů a Ansible playbooků pro rychlé nasazení self-hostované infrastruktury.
> Veškerý obsah vychází z reálného běhu na serveru `192.168.0.148` (Ubuntu 24.04, Docker 29.x).
**[![Gitea](https://img.shields.io/badge/Gitea-192.168.0.148:3000-609926?logo=gitea)](http://192.168.0.148:3000)** · **[![Jotty](https://img.shields.io/badge/Jotty-docs-3b82f6)](http://192.168.0.148:1122)** · **[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)**
> Hlavní index pro **home infrastructure as code** projekty.
> Obsah je **rozdělen do 6 specializovaných repozitářů** pro snadnou orientaci a
> samostatné použití. Toto repo slouží jako **orchestrátor + dokumentace**.
---
## 🗂 Co je v tomto repo
## 📦 Repozitáře (6)
| Adresář | Účel | Stav |
| Repo | Obsah | URL |
|---|---|---|
| [`docker-services/`](docker-services/) | Generické `docker-compose.yml` pro 14+ služeb (portainer, vaultwarden, nextcloud, …) | |
| [`install-scripts/`](install-scripts/) | Bash skripty pro nové servery (Ubuntu 22.04/24.04 LTS) | ✅ |
| [`ansible/`](ansible/) | Ansible playbooks + role pro idempotentní deploy | ✅ |
| [`hermes-install/`](hermes-install/) | Instalace a konfigurace Hermes Agent (mě) na macOS | ✅ |
| [`macos-setup/`](macos-setup/) | Homebrew `Brewfile` + skripty pro macOS workstation | ✅ |
| [`home-nas-tools/`](home-nas-tools/) | Rejstřík projektů a nástrojů z NAS (`/Volumes/Backups/Prace/`) | ✅ |
| [`docs/`](docs/) | Architektura, bezpečnost, contributing | ✅ |
| [`mates-docker-services`](https://github.com/mates/mates-docker-services) | 14 generických `docker-compose.yml` (portainer, npm, vaultwarden, gitea, jotty, nextcloud, …) | http://192.168.0.148:3000/mates/mates-docker-services |
| [`mates-ansible`](https://github.com/mates/mates-ansible) | 4 Ansible playbooky (bootstrap, deploy, update, security) | http://192.168.0.148:3000/mates/mates-ansible |
| [`mates-install-scripts`](https://github.com/mates/mates-install-scripts) | Bash skripty pro nový Ubuntu server (bootstrap, docker, portainer, npm, backup, restore) | http://192.168.0.148:3000/mates/mates-install-scripts |
| [`mates-macos-setup`](https://github.com/mates/mates-macos-setup) | macOS workstation (Brewfile, Fish aliasy, osx defaults, Hermes CLI) | http://192.168.0.148:3000/mates/mates-macos-setup |
| [`mates-home-nas-tools`](https://github.com/mates/mates-home-nas-tools) | Rejstřík projektů na NAS (metadata only, žádné binárky) | http://192.168.0.148:3000/mates/mates-home-nas-tools |
| [`mates-docs`](https://github.com/mates/mates-docs) | Architektura, bezpečnost, contributing | http://192.168.0.148:3000/mates/mates-docs |
> **Proč 6 repo?** Každý má **jiný scope**, **jiný lifecycle**, **jiné uživatele**.
> Např. `mates-install-scripts` se mění zřídka, `mates-docker-services` často.
## 🏗 Aktuální infrastruktura
```
┌─────────────────────────────────────────────────────────────────────
Internet (Cloudflare Tunnel)
└────────────────────┬────────────────────────────────────────────────
│ HTTPS (443)
┌─────────────────────────────────────────────────────────────────────┐
│ Nginx Proxy Manager (192.168.0.148:81, 443) │
│ ├─ DNS: domácí subdomény → LAN IP │
│ └─ Let's Encrypt auto-renew │
└────────────────────┬────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
Nginx Proxy Manager (reverzní proxy + HTTPS)
└────────────────────┬────────────────────────────────────────┘
┌─────────────────┼─────────────────┬──────────────┐
▼ ▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────
│ Nextcloud│ │Vaultwarden│ │ Gitea │ │ Jotty (doc)
│ AIO │ │ :2999 │ │ :3000/222 │ │ :1122
│ :11000 │ └──────────┘ └──────────┘ └────────────
└──────────┘
… dalších 11 služeb (Plex, RustDesk, Calibre, Audiobookshelf, Wikijs, …)
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Nextcloud│ │Vaultwarden│ │ Gitea │ │ Jotty
AIO │ │ :2999 │ │ :3000/222│ │ :1122 │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
… dalších 11 služeb (Plex, RustDesk, Audiobookshelf, …)
```
Detailní seznam: [`docker-services/README.md`](docker-services/README.md)
Detailní seznam: [`mates-docker-services/README.md`](https://github.com/mates/mates-docker-services)
## 🚀 Rychlý start (nový server)
```bash
# 1. Klonuj tento repo
git clone https://github.com/<user>/mates-infra.git ~/infra
cd ~/infra
# 1. Klonuj všechna relevantní repo
git clone http://192.168.0.148:3000/mates/mates-install-scripts.git
git clone http://192.168.0.148:3000/mates/mates-docker-services.git
# 2. Spusť bootstrap (Ubuntu 22.04/24.04 LTS)
sudo bash install-scripts/bootstrap-ubuntu-server.sh
# 2. Bootstrap
cd mates-install-scripts
sudo bash bootstrap-ubuntu-server.sh
sudo bash install-docker.sh
# 3. Nainstaluj všechny služby
sudo bash install-scripts/install-docker.sh
sudo bash install-scripts/install-portainer.sh
# … další viz install-scripts/
# 3. Nasaď služby
cd ../mates-docker-services
cp portainer/.env.example portainer/.env # a další služby
docker compose -f portainer/docker-compose.yml up -d
# ... atd.
# 4. Nebo použij Ansible
cd ansible
# 4. (Volitelně) Ansible
git clone http://192.168.0.148:3000/mates/mates-ansible.git
cd mates-ansible
ansible-playbook -i inventory.example.yml playbooks/deploy-services.yml
```
## 📚 Dokumentace
- 🏛 [Architektura](docs/architecture.md) jak to celé funguje
- 🔐 [Bezpečnost](docs/security.md) hardening, secrets, HTTPS
- 🤝 [Contributing](docs/contributing.md) jak přispívat
- 📝 [Jotty dokumentace](http://192.168.0.148:1122) knowledge base v Jotty
- 🏛 [Architektura](https://github.com/mates/mates-docs) jak to celé funguje
- 🔐 [Bezpečnost](https://github.com/mates/mates-docs) hardening, secrets
- 🤝 [Contributing](https://github.com/mates/mates-docs) jak přispívat
- 📝 [Jotty knowledge base](http://192.168.0.148:1122) interní dokumentace
## 🗂 Mapa závislostí
```
mates-infra (toto repo index)
├──→ mates-docs (architektura, bezpečnost)
├──→ mates-docker-services (služby)
├──→ mates-install-scripts (nový server)
├──→ mates-ansible (idempotentní deploy)
├──→ mates-macos-setup (workstation)
└──→ mates-home-nas-tools (metadata k NAS)
```
## 🔒 Bezpečnost
- **Všechna hesla v `.env.example`** nikdy necommituj `.env`
- **HTTPS** Let's Encrypt přes NPM
- **Firewall** UFW + fail2ban
- **Bezpečnostní audit**: viz [`docs/security.md`](docs/security.md)
- Všechna hesla v `.env.example` (šablona), nikdy v `docker-compose.yml`
- API token Gitea uložen v **macOS keychainu** (`gitea:api:192.168.0.148`)
- SSH klíče pro git push přes `credential.helper`
- HTTPS terminuje Nginx Proxy Manager (Let's Encrypt)
- Detailní security hardening: [`mates-docs/security.md`](https://github.com/mates/mates-docs)
## 📜 Licence
@@ -85,4 +95,4 @@ ansible-playbook -i inventory.example.yml playbooks/deploy-services.yml
---
**Vyrobeno s ❤️ v homelabu · 2026**
**Home lab · 2026 · Poslední update:** 2026-08-01