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:
@@ -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).
|
||||
|
||||
**[](http://192.168.0.148:3000)** · **[](http://192.168.0.148:1122)** · **[](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
|
||||
|
||||
Reference in New Issue
Block a user