diff --git a/README.md b/README.md index fe1b1a0..08283ec 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,27 @@ -# Infracloud - Infraestrutura Rede5 - -Este repositório contém a documentação e os manifestos de Infraestrutura como Código (IaC) da Rede5. - -## 📂 Estrutura do Projeto - -### ☸️ Kubernetes (K3s) - -Clusters Kubernetes gerenciados via K3s (Lightweight Kubernetes). - -- [**Documentação Geral K3s**](./k3s/README.md) - - [Arquitetura](./k3s/architecture.md) - - [Inventário de Serviços](./k3s/services_inventory.md) - -### 🖥️ VPS (Virtual Private Servers) - -Servidores standalone gerenciados individualmente. - -- [**Apolo**](./vps/apolo/README.md): Servidor de Produção/Staging (Podman + Systemd). +# Infracloud - Infraestrutura Rede5 + +Este repositorio contem a documentacao e os manifestos de Infraestrutura como Codigo (IaC) da Rede5. + +## Estrutura do Projeto + +### Kubernetes (K3s) + +Clusters Kubernetes gerenciados via K3s (Lightweight Kubernetes). + +- [**Documentacao Geral K3s**](./k3s/README.md) + - [Arquitetura](./k3s/architecture.md) + - [Inventario de Servicos](./k3s/services_inventory.md) + +### VPS (Virtual Private Servers) + +Servidores standalone gerenciados individualmente. + +- [**Apolo**](./vps/apolo/README.md): Servidor de Producao/Staging (Podman + Systemd). IP: 45.143.7.55 +- [**Vim**](./vps/vim/README.md): Servidor de Producao (Dokku PaaS). IP: 38.19.201.52 +- [**NC1**](./vps/nc1/README.md): Servidor de Producao (Podman + Systemd). IP: 185.194.141.70 + +### Containers + +Definicoes de containers compartilhados entre servidores. + +- [**Containers**](./containers/): Dockerfiles e configuracoes de containers diff --git a/vps/vim/services_inventory.md b/vps/vim/services_inventory.md index a787a5f..eb288d8 100644 --- a/vps/vim/services_inventory.md +++ b/vps/vim/services_inventory.md @@ -1,133 +1,96 @@ -# Inventário de Serviços Vim - -## Visão Geral - -Este documento apresenta o inventário completo de serviços hospedados no servidor Vim, utilizando a plataforma Dokku como camada de gerenciamento de aplicações baseadas em contêineres. - -## Tabela de Aplicações - -| Aplicação | Domínio | Porta do Container | Porta Exposta | Protocolo | Banco de Dados | Status | -|-----------|---------|:------------------:|--------------:|----------:|----------------|:------:| -| **GoHorse Backend** | `dokku.rede5.com.br` | 5000 | 5000 | HTTP | postgres-main | ✅ Rodando | -| **GoHorse Frontend** | `dokku.rede5.com.br` | 3000 | 3000 | HTTP | - | ✅ Rodando | -| **GoHorse Backoffice** | `gohorse-backoffice.dokku.rede5.com.br` | 3001 | 3001 | HTTP | postgres-main | ✅ Rodando | -| **GoHorse Seeder** | `gohorse-seeder.dokku.rede5.com.br` | 3001 | 3001 | HTTP | postgres-main | ✅ Rodando | -| **GoHorse Jobs** | `gohorsejobs.dokku.rede5.com.br` | 8521 | 8521 | HTTP | postgres-main | ✅ Rodando | -| **Sextando API** | `api-dev.sextando.com.br` | 8080 | 8080 | HTTPS | postgres-main | ✅ Rodando | -| **Sextando Frontend** | `dev.sextando.com.br` | 3000 | 3000 | HTTPS | - | ✅ Rodando | -| **Agno Orquestrador** | `agno.rede5.com.br` | 5000 | 5000 | HTTPS | agno-db | ✅ Rodando | - -## Tabela de Bancos de Dados - -| Serviço | Versão | Tamanho (aprox) | Links de Apps | Porta Interna | Volume | -|---------|:------:|:---------------:|---------------|:-------------:|-------| -| **postgres-main** | 17 | - | gohorse-backend, gohorsejobs, sextando | 5432 | /var/lib/dokku/services/postgres/postgres-main/data | -| **agno-db** | 18.1 | - | agno-orquestrador | 5432 | /var/lib/dokku/services/postgres/agno-db/data | - -## Tabela de Containers Docker (Internos) - -| Container | Imagem | Status | Porta | Notas | -|-----------|--------|:------:|------|-------| -| gohorse-backend.web.1 | dokku/gohorse-backend:latest | ✅ Up | 8521/tcp | Backend principal | -| gohorse-frontend.web.1 | dokku/gohorse-frontend:latest | ✅ Up | 3000/tcp | Frontend GoHorse | -| gohorsejobs-frontend-1 | node:20-alpine | ✅ Up | 3000/tcp | Frontend Jobs | -| gohorsejobs.web.1 | dokku/gohorsejobs:latest | ✅ Up | 8521/tcp | Jobs processor | -| gohorsejobs.web.1.upcoming-1812 | 3ef1415c2699 | ✅ Up | 8521/tcp | Container anterior | -| gohorse-backoffice.web.1.upcoming-27801 | dokku/gohorse-backoffice:latest | ✅ Up | 3001/tcp | Backoffice admin | -| gohorse-seeder.web.1 | dokku/gohorse-seeder:latest | ✅ Up | 3001/tcp | Seeder (healthy) | -| sextando.web.1 | dokku/sextando:latest | ✅ Up | 8080/tcp | API Sextando | -| sextando-frontend.web.1 | b208b5d37fc5 | ✅ Up | 3000/tcp | Frontend Sextando | -| agno-orquestrador.web.1 | dokku/agno-orquestrador:latest | ✅ Up | 5000/tcp | Orquestrador Agno | -| dokku.postgres.postgres-main | postgres:17 | ✅ Up | 5432/tcp | Banco principal | -| dokku.postgres.agno-db | postgres:18.1 | ✅ Up | 5432/tcp | Banco Agno | - -### Containers Parados (Exited) - -| Container | Imagem | Status | Motivo | -|-----------|--------|:------:|--------| -| gohorse-backend.web.1.upcoming-16753 | dokku/gohorse-backend:latest | ❌ Exited (143) | Substituído por nova versão | -| gohorse-frontend-dev | node:20-alpine | ❌ Exited (255) | Ambiente de desenvolvimento | -| epic_poitras | node:20-alpine | ❌ Created | Container não iniciado | -| gohorse-backend | golang:1.24 | ❌ Exited (2) | Container antigo | -| gohorse-seeder | a9cd9bac76cf | ❌ Exited (137) | Container antigo | -| gohorse-backoffice | a9cd9bac76cf | ❌ Exited (255) | Container antigo | - -## Redes Docker - -| Rede | Driver | Escopo | Connected Containers | -|------|--------|:------:|----------------------| -| bridge | bridge | local | - | -| gohorsejobs_default | bridge | local | gohorsejobs, postgres-main | -| host | host | local | - | -| none | null | local | - | - -## Volumes Docker - -| Volume | Driver | Utilização | -|--------|:------:|------------| -| cache-sextando-frontend | local | Cache do frontend Sextando | -| go-modules | local | Módulos Go compartilhados | - -## Portas do Sistema - -| Porta | Serviço | Descrição | -|:-----:|---------|-----------| -| 22 | SSH | Acesso SSH ao servidor | -| 80 | Nginx | HTTP (Redirect para 443) | -| 443 | Nginx | HTTPS (Terminação TLS) | -| 2375/2376 | Docker | API Docker (se habilitado) | -| 3000-32767 | Dokku | Range dinâmico para apps | - -## Domínios Configurados - -| Domínio | App Associado | SSL/TLS | -|---------|---------------|:--------:| -| dokku.rede5.com.br | GoHorse Backend/Frontend | ❌ HTTP | -| gohorse-backoffice.dokku.rede5.com.br | GoHorse Backoffice | ❌ HTTP | -| gohorse-seeder.dokku.rede5.com.br | GoHorse Seeder | ❌ HTTP | -| gohorsejobs.dokku.rede5.com.br | GoHorse Jobs | ❌ HTTP | -| api-dev.sextando.com.br | Sextando API | ✅ HTTPS | -| dev.sextando.com.br | Sextando Frontend | ✅ HTTPS | -| agno.rede5.com.br | Agno Orquestrador | ✅ HTTPS | - -## Variáveis de Ambiente Principais - -### postgres-main -- `DATABASE_URL`: `postgres://postgres:cd467ce208950f3adc07d40480022ede@dokku-postgres-postgres-main:5432/postgres_main` - -### agno-db -- `DATABASE_URL`: `postgres://postgres:d6597def2da1a230a8a7a03e8c8186b8@dokku-postgres-agno-db:5432/agno_db` - -## Services Systemd Relacionados - -| Serviço | Status | Descrição | -|---------|:------:|-----------| -| docker.service | ✅ active | Docker Engine | -| dokku-event-listener.service | ✅ active | Listener de eventos Dokku | -| nginx.service | ✅ active | Proxy reverso Nginx | - -## Métricas de Recursos (Aproximadas) - -Com base nos containers ativos, a infraestrutura utiliza aproximadamente: - -- **CPU**: 2-4 cores em uso -- **Memória**: ~4-6GB RAM -- **Armazenamento**: Depende do tamanho dos volumes PostgreSQL - -## Histórico de Issues Conhecidas - -### Containers Exited - -Os containers marcados como "Exited" são versões anteriores que não foram limpas automaticamente. Recomenda-se: - -1. **Identificar containers órfãos**: `docker ps -a --filter "status=exited"` -2. **Limpar containers antigos**: `docker container prune` -3. **Verificar se há volumes órfãos**: `docker volume ls` - -### Status SSL - -Vários domínios estão configurados apenas em HTTP, sem SSL. Para produção, recomenda-se configurar certificados TLS. O Dokku suporta Let's Encrypt via plugin ou configuração manual do Nginx. - -### Portas Duplicadas - -Alguns apps (gohorse-backend e gohorsejobs) estão usando portas internas conflitantes (8521). Verificar se há intenção de manter ambos ou se há erro de configuração. +# Inventário de Serviços Vim + +> Última atualização: 2026-02-14 + +## Visão Geral + +Este documento apresenta o inventário completo de serviços hospedados no servidor Vim (38.19.201.52), utilizando a plataforma Dokku como camada de gerenciamento de aplicações baseadas em contêineres. + +## Tabela de Aplicações + +| Aplicação | Domínio | Porta | Proxy | Banco de Dados | SSL | Status | +|-----------|---------|:-----:|:-----:|----------------|:---:|:------:| +| **gohorse-backend** | dokku.rede5.com.br | 8521 | Desabilitado | PostgreSQL externo (Absam) | - | Rodando | +| **gohorse-frontend** | dokku.rede5.com.br | 3000 | Nginx | - | - | Rodando | +| **gohorse-backoffice** | gohorse-backoffice.dokku.rede5.com.br | 3001 | Nginx | postgres-main | - | Rodando | +| **gohorse-seeder** | gohorse-seeder.dokku.rede5.com.br | 3001 | Nginx | postgres-main | - | Rodando | +| **gohorsejobs** | gohorsejobs.dokku.rede5.com.br | 8521 | Nginx | postgres-main | - | Rodando | +| **sextando** | api-dev.sextando.com.br | 8080 | Nginx | postgres-main | HTTPS | Rodando | +| **sextando-frontend** | dev.sextando.com.br | 3000 | Nginx | - | HTTPS | Rodando | +| **agno-orquestrador** | agno.rede5.com.br | 5000 | Nginx | agno-db | HTTPS | Rodando | + +### Notas sobre Aplicações + +- **gohorse-backend**: Proxy Dokku desabilitado, Docker expõe porta 8521 diretamente. Usa banco PostgreSQL externo (Absam Cloud). JWT_SECRET configurado. +- **gohorsejobs**: Porta 8521 compartilhada com gohorse-backend (containers diferentes). +- **gohorse-frontend**: Possui container docker-compose dev rodando em paralelo ao Dokku. + +## Tabela de Bancos de Dados + +| Serviço | Versao | Apps Vinculados | Porta | Volume | +|---------|:------:|-----------------|:-----:|--------| +| **postgres-main** | 17 | gohorsejobs, sextando, gohorse-backoffice, gohorse-seeder | 5432 | /var/lib/dokku/services/postgres/postgres-main/data | +| **agno-db** | 18.1 | agno-orquestrador | 5432 | /var/lib/dokku/services/postgres/agno-db/data | + +**Nota**: gohorse-backend usa banco PostgreSQL externo (Absam Cloud), nao o postgres-main local. + +## Containers Docker Ativos + +| Container | Imagem | Porta | Notas | +|-----------|--------|:-----:|-------| +| gohorse-backend.web.1 | dokku/gohorse-backend:latest | 8521/tcp | API Go, deploy 2026-02-14 | +| gohorse-frontend.web.1 | 27aa73f3586b | 3000/tcp | Frontend Next.js | +| gohorse-backoffice.web.1 | dokku/gohorse-backoffice:latest | 3001/tcp | Backoffice NestJS | +| gohorse-seeder.web.1 | dokku/gohorse-seeder:latest | 3001/tcp | Seeder (healthy) | +| gohorsejobs.web.1 | dokku/gohorsejobs:latest | 8521/tcp | Jobs API Go | +| sextando.web.1 | dokku/sextando:latest | 8080/tcp | API Sextando | +| sextando-frontend.web.1 | b208b5d37fc5 | 3000/tcp | Frontend Sextando | +| agno-orquestrador.web.1 | dokku/agno-orquestrador:latest | 5000/tcp | Streamlit + DeepSeek | +| gohorse-frontend-dev | node:20-alpine | 3000 | Docker-compose dev | +| dokku.postgres.postgres-main | postgres:17 | 5432/tcp | Banco principal | +| dokku.postgres.agno-db | postgres:18.1 | 5432/tcp | Banco Agno | + +## Repositorios Git + +| App | Tipo | Remote | URL | +|-----|------|--------|-----| +| gohorse-frontend | Forgejo | origin | pipe.gohorsejobs.com/bohessefm/gohorsejobs.git | +| gohorse-frontend | Dokku | dokku | dokku@localhost:gohorse-frontend | +| gohorse-backend | Dokku | dokku | dokku@localhost:gohorse-backend | +| agno-orquestrador | GitHub | origin | github.com/rede5/agno-orquestrador | + +## Dominios e SSL + +| Dominio | App | SSL | +|---------|-----|:---:| +| dokku.rede5.com.br | gohorse-backend, gohorse-frontend | HTTP | +| gohorse-backoffice.dokku.rede5.com.br | gohorse-backoffice | HTTP | +| gohorse-seeder.dokku.rede5.com.br | gohorse-seeder | HTTP | +| gohorsejobs.dokku.rede5.com.br | gohorsejobs | HTTP | +| api-dev.sextando.com.br | sextando | Let's Encrypt | +| dev.sextando.com.br | sextando-frontend | Let's Encrypt | +| agno.rede5.com.br | agno-orquestrador | Let's Encrypt | + +## Portas do Sistema + +| Porta | Servico | +|:-----:|---------| +| 22 | SSH | +| 80 | Nginx (redirect para 443) | +| 443 | Nginx (HTTPS) | +| 8521 | gohorse-backend (Docker direto) | + +## Services Systemd + +| Servico | Status | +|---------|:------:| +| docker.service | active | +| dokku-event-listener.service | active | +| nginx.service | active | + +## Issues Conhecidas + +1. **Containers orfaos**: Deploys antigos deixam containers stopped. Limpar com docker container prune. +2. **Migration duplicates**: Backend tinha migrations com prefixos duplicados (013-019). Corrigido em 2026-02-14 renumerando para 037-043. +3. **Migration runner PG transaction bug**: O runner de migrations nao tratava transacoes PG abortadas corretamente quando tabelas ja existiam. Corrigido em 2026-02-14. +4. **SSL faltando**: Dominios dokku.rede5.com.br ainda sem HTTPS.