From 6cd5710c79cc9599805ba4d15fa42b0ef89fc13b Mon Sep 17 00:00:00 2001 From: vrd1 Date: Tue, 5 May 2026 09:12:52 +0200 Subject: [PATCH] first commit --- README.md | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..cba7690 --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +# Homelab + +> Infrastructure documentation, Ansible configs, and runbooks for my homelab. + +## Quick Links + +| | | +|---|---| +| πŸ—ΊοΈ [Network Topology](docs/network/topology.md) | IP map, VLANs, DNS | +| πŸ–₯️ [Hosts](docs/hosts/) | Per-machine reference | +| βš™οΈ [Services](docs/services/) | Per-service reference | +| πŸ“– [Runbooks](docs/runbooks/) | Step-by-step procedures | +| πŸ—“οΈ [Decision Log](docs/decisions/) | Why things are the way they are | + +--- + +## Hosts at a Glance + +| Hostname | Role | IP | OS | +|---|---|---|---| +| `proxmox-main` | Primary Proxmox node, arr stack, Jellyfin | `192.168.x.x` | Proxmox VE | +| `pbs` | Proxmox Backup Server (HP MicroServer Gen8) | `192.168.x.x` | PBS | +| `optiplex-3020` | Networking/proxy services | `192.168.x.x` | Proxmox VE | +| `optiplex-3070` | Stateful services | `192.168.x.x` | Proxmox VE | + +> Update this table as hosts are added or change role. + +--- + +## Services at a Glance + +| Service | Host | Port | Notes | +|---|---|---|---| +| Jellyfin | `proxmox-main` | `8096` | | +| WireGuard | `optiplex-3020` | `51820/udp` | | +| Vaultwarden | `optiplex-3020` | `8080` | | +| Reverse Proxy | `optiplex-3020` | `80/443` | | + +--- + +## Repo Layout + +``` +homelab/ +β”œβ”€β”€ ansible/ # Inventory, playbooks, roles +β”œβ”€β”€ docker/ # Docker Compose configs per service +β”œβ”€β”€ docs/ # This documentation +β”‚ β”œβ”€β”€ hosts/ +β”‚ β”œβ”€β”€ services/ +β”‚ β”œβ”€β”€ network/ +β”‚ β”œβ”€β”€ runbooks/ +β”‚ └── decisions/ +└── .gitea/workflows/ # CI/CD pipelines +``` + +--- + +## Common Tasks + +```bash +# Run full site playbook (safe to re-run anytime) +make deploy + +# Bootstrap a brand-new machine +make bootstrap HOST=optiplex-3070 + +# Dry-run to preview changes +make check + +# Lint Ansible +make lint +``` + +--- + +## Secrets + +Secrets are **never committed**. Use `.env.example` files as templates. Sensitive Ansible vars are encrypted with Ansible Vault. + +```bash +# Edit a vault-encrypted file +ansible-vault edit ansible/group_vars/all/vault.yml +``` + +--- + +## Contributing / Updating + +- Update the relevant doc **before** making infrastructure changes +- Keep the hosts/services tables above in sync +- Log significant decisions in `docs/decisions/` with today's date