# CT130 — Ligbox Spec Hub

| Item | Valor |
|------|-------|
| **IP LAN** | `10.10.10.130` |
| **SSH WAN** | `95.216.14.146:2530` |
| **Hostname** | spec-hub |
| **OS** | Debian 12 LXC |
| **Recursos** | 2 vCPU · 4 GB RAM · 40 GB |

## Papel

**Fonte de verdade Git + Obsidian + Portal** — centraliza specs, vault e código de **todas** as VMs.

| URL | Serviço |
|-----|---------|
| https://spec.ligbox.com.br | Portal hub |
| https://spec.ligbox.com.br/specs/ | Browser Spec Kit |
| https://spec.ligbox.com.br/vault/ | Browser Obsidian |
| https://git.spec.ligbox.com.br | Forgejo Git |

## Stack local

```
/opt/ligbox-spec-hub/
├── forgejo/              # Git server
├── portal/               # nginx + Docsify
├── repos/ligbox-ops-platform/   # clone principal
├── obsidian-vault/       # vault Obsidian
└── docker-compose.yml    # forgejo + spec-portal
```

## Repos Forgejo (org `ligbox`)

| Repo | Conteúdo |
|------|----------|
| `ligbox-ops-platform` | Monorepo — **todas** VMs (deploy/ por VM) |
| `obsidian-vault` | Notas, LAPTOP, anais |

## Utilizadores

| User | Senha | Admin |
|------|-------|-------|
| roger | 805353 | ✅ |
| ligboxadmin | 805353 | ✅ |
| mini | 805353 | — |

## Spec

- **031** — spec-hub-portal

## Regra anti-drift

```bash
# VM122/112/123 — NUNCA rsync solto
git pull https://git.spec.ligbox.com.br/ligbox/ligbox-ops-platform.git
# Ver deploy/manifest.yaml para tag pinada
```

## Sync pendente (Roger)

| VM | Acção |
|----|-------|
| VM112 | Pull deploy/vm112-* + push estado actual |
| VM123 | Pull deploy/vm123-* + console template |
| VM104 | Documentar integração (sem código Ligbox) |
| VM122 | `git remote add hub git.spec...` + pull |
