mirror of
https://github.com/vrd1/homelab-2.0.git
synced 2026-05-06 20:30:10 +02:00
first commit
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user