# Homelab — Infraestrutura como Código

> Guardiã: **Gaia** (Agente Hermes)
> Mantido por: João Paulo Ferreira (jp@iamferreirajp.com)
> Repositório Base: [gaia/homelab](https://gitea.hackerfortress.cc/gaia/homelab)

## Visão Geral

Este repositório contém toda a infraestrutura do homelab em formato de **Infraestrutura como Código (IaC)**. O objetivo é ter todo o ambiente versionado, documentado e reproduzível.

### Hardware do Homelab

| Máquina | IP | Função Principal |
|---------|-----|------------------|
| TrueNAS | 10.0.0.30 | NAS, n8n, Uptime Kuma |
| Proxmox | 10.0.0.20 | Hypervisor (VMs) |
| Dockerino | 10.0.0.50 | Docker Host (NPM, AdGuard, etc) |
| Media | 10.0.0.36 | Jellyfin, Sonarr, Radarr, etc |
| Home Assistant | 10.0.0.100 | Automação residencial |
| ER605 (Omada) | 10.0.0.1 | Router/Gateway |

### Topologia de Rede

- **VLAN1 (Infra):** 10.0.0.0/24 — Servidores
- **VLAN10 (Geral):** 10.0.10.0/24 — Computadores, celulares
- **VLAN20 (IOT):** 10.0.20.0/24 — Dispositivos IoT
- **VLAN30 (Guests):** 10.0.30.0/24 — Visitantes

## Estrutura do Repositório

```
homelab/
├── terraform/              # Terraform para recursos de nuvem/rede
│   ├── er605/              # Router TP-Link ER605 (Omada Controller)
│   ├── truenas/            # TrueNAS
│   ├── proxmox/            # Proxmox
│   └── adguard/            # AdGuard Home
├── ansible/                # Ansible para configuração de VMs
│   ├── roles/               # Roles reutilizáveis
│   └── playbooks/          # Playbooks principais
├── docker/                  # Docker Compose files
│   ├── dockerino/           # Stack do Dockerino (10.0.0.50)
│   │   ├── nginx/           # Nginx Proxy Manager
│   │   ├── adguard/         # AdGuard Home
│   │   ├── outline/         # Outline Wiki
│   │   ├── bookstack/       # BookStack
│   │   └── ...
│   └── media/               # Stack de mídia (10.0.0.36)
│       └── docker-compose.yml
└── docs/                    # Documentação adicional
    ├── ARCHITECTURE.md      # Arquitetura detalhada
    └── NEXT_STEPS.md        # Próximos passos
```

## Quick Start

### Clonar o Repositório

```bash
git clone https://gitea.hackerfortress.cc/gaia/homelab.git
cd homelab
```

### Aplicar Terraform

```bash
cd terraform/er605
terraform init
terraform plan
terraform apply
```

### Aplicar Ansible

```bash
cd ansible
ansible-playbook playbooks/setup-dockerino.yml
```

### Subir Docker Stacks

```bash
cd docker/dockerino/nginx
docker compose up -d
```

## Serviços

### Dockerino (10.0.0.50)

| Serviço | Porta | Domínio |
|---------|-------|---------|
| Nginx Proxy Manager | 80, 443 | proxy.hackerfortress.cc |
| AdGuard Home | 3000 | adguard.hackerfortress.cc |
| Outline Wiki | 3001 | outline.hackerfortress.cc |
| BookStack | 8082 | bookstack.hackerfortress.cc |
| Homer | 8090 | (internal) |
| HomeBox | 3100 | homebox.hackerfortress.cc |
| FlatNotes | 8089 | flatnotes.hackerfortress.cc |
| Picsur | 8091 | picsur.hackerfortress.cc |
| Speedtest | 8765 | speedtest.hackerfortress.cc |
| Omada Controller | 8043 | omada.hackerfortress.cc |
| Twingate | - | VPN |

### Media (10.0.0.36)

| Serviço | Porta | Domínio |
|---------|-------|---------|
| Jellyfin | 8096 | jellyfin.hackerfortress.cc |
| Sonarr | 8989 | sonarr.hackerfortress.cc |
| Radarr | 7878 | radarr.hackerfortress.cc |
| Prowlarr | 9696 | prowlarr.hackerfortress.cc |
| Bazarr | 6767 | bazarr.hackerfortress.cc |
| qBittorrent | 5080 | qbittorrent.hackerfortress.cc |

### TrueNAS (10.0.0.30)

| Serviço | Porta |
|---------|-------|
| SSH | 22 |
| WebUI | 443 |
| n8n | 30109 |
| Uptime Kuma | 31050 |

## Mantenedores

- **Gaia** — Guardiã da IaC (este repositório)
- **Héstia** — Documentação e arquitetura original

## Licença

MIT
