docs: remove servidores desativados (apolo, posseidon, zeus)

This commit is contained in:
Tiago Ribeiro 2026-03-07 14:26:43 -03:00
parent 08f4283a39
commit f7d88a2d97
5 changed files with 0 additions and 359 deletions

View file

@ -18,7 +18,6 @@ Servidores standalone gerenciados individualmente.
- [**Redbull**](./vps/redbull/README.md): Servidor de Desenvolvimento (Coolify PaaS). IP: 185.194.141.70 - https://redbull.rede5.com.br
- [**Echo**](./vps/echo/README.md): Servidor VPS Civo. IP: 152.53.120.181
- [**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

View file

@ -1,33 +0,0 @@
# Infraestrutura Apolo VPS
Documentação oficial do servidor **Apolo**, responsável por hospedar o ecossistema de produção/staging de diversas aplicações (SaveInMed, ObraMarket, Farmácia, etc.).
## 🖥️ Acesso Rápido
- [Arquitetura Detalhada](./architecture.md) - Diagrama de conexões e subsistemas.
- [Inventário de Serviços](./services_inventory.md) - Tabela de containers, portas mapeadas e domínios.
- [Guia de Deploy](./deployment_guide.md) - Padrões para publicação de serviços.
## 📊 Especificações do Sistema
| Propriedade | Valor |
|-------------|-------|
| **Hostname** | `apolo.rede5.com.br` |
| **IP Público** | `45.143.7.55` |
| **OS** | AlmaLinux 9.7 (Moss Jungle Cat) |
| **Kernel** | Linux 5.14.0 |
| **CPU** | AMD EPYC (Virtual) |
| **RAM** | 7.5 GB |
| **Disco** | 60 GB (33 GB usado) |
## 🛠️ Stack Tecnológico
- **Container Engine**: Podman (Rootless/Root).
- **Service Manager**: Systemd via **Quadlet**.
- **Reverse Proxy**: Traefik v3.0 (Gerencia HTTP/HTTPS e TCP).
- **Databases**:
- PostgreSQL 17 (Main)
- PostgreSQL 16 (Forgejo)
- Redis 7 (GoHorseJobs & Cache)
- **Registry**: Zot (Container Register Privado).
- **CI/CD**: Forgejo Runner.

View file

@ -1,137 +0,0 @@
# Arquitetura do Sistema Apolo
Diagrama detalhado dos serviços hospedados no servidor Apolo.
```mermaid
flowchart LR
%% Nós Externos
Internet((Internet)) -->|HTTPS/443| T[Traefik Proxy]
Internet -->|SSH/2323| FG[Forgejo Git]
%% Core Infra
subgraph Core ["Infraestrutura Core"]
direction TB
FG[Forgejo]
PGADM[pgAdmin]
ZOT[Zot Registry]
GL[Glances Mon]
runner[Forgejo Runner]
end
%% Databases
subgraph Data ["Camada de Dados"]
PG[(PostgreSQL Main)]
PG_FG[(PostgreSQL Forgejo)]
RD[(Redis GoHorse)]
end
%% SaveInMed Ecosystem
subgraph SaveInMed ["SaveInMed"]
SIM_BE[Backend API]
SIM_BO[Backoffice]
SIM_MK[Marketplace]
SIM_SD[Seeder]
SIM_WEB[Website]
end
%% RodiziosDaqui Ecosystem
subgraph Rodizio ["Rodízios Daqui"]
RD_BE[Backend]
RD_BO[Backoffice]
RD_FE[Frontend]
RD_SD[Seeder]
end
%% ObraMarket Ecosystem
subgraph Obra ["ObraMarket"]
OM_BE[Backend]
OM_BO[Backoffice]
OM_FE[Frontend]
OM_SD[Seeder]
end
%% Outros Apps
subgraph Apps ["Outras Aplicações"]
FARM_BE[Farmácia Backend]
FARM_FE[Farmácia Frontend]
VEST_BE[Vestuário Backend]
VEST_FE[Vestuário Frontend]
Q1_BE[Q1 Agenda BE]
Q1_FE[Q1 Agenda FE]
end
%% Roteamento Traefik
T --> FG
T --> PGADM
T --> ZOT
T --> GL
T --> SIM_BE
T --> SIM_BO
T --> SIM_MK
T --> SIM_SD
T --> SIM_WEB
T --> RD_BE
T --> RD_BO
T --> RD_FE
T --> RD_SD
T --> OM_BE
T --> OM_BO
T --> OM_FE
T --> OM_SD
T --> FARM_BE
T --> FARM_FE
T --> VEST_BE
T --> VEST_FE
T --> Q1_BE
T --> Q1_FE
%% TCP Routing (Bancos expostos)
T -.->|TCP/27537| PG
T -.->|TCP/26380| RD
%% Conexões de Dados
FG --> PG_FG
runner --> FG
SIM_BE --> PG
SIM_BO --> PG
SIM_SD --> PG
RD_BE --> PG
RD_BO --> PG
RD_SD --> PG
OM_BE --> PG
OM_BO --> PG
OM_SD --> PG
FARM_BE --> PG
VEST_BE --> PG
Q1_BE --> PG
%% Legenda de Estilo
linkStyle default stroke-width:1px,fill:none,stroke:gray;
```
## Descrição dos Subsistemas
### 🌐 Traefik Proxy
O Traefik atua como gateway principal. Além de rotear tráfego HTTP/HTTPS (portas 80/443), ele também expõe serviços TCP como banco de dados (27537) e Redis (26380) para acesso externo controlado.
### 🏭 Infraestrutura & CI/CD
- **Forgejo**: Servidor Git self-hosted (codeberg fork). Possui banco de dados próprio (`forgejo-db`).
- **Zot**: Registry de containers para imagens privadas.
- **Glances**: Monitoramento de recursos do servidor.
### 🏥 SaveInMed
Ecossistema completo de saúde, incluindo Backend, Backoffice administrativo, Marketplace e Site institucional.
### 🏗️ ObraMarket e 🍕 RodíziosDaqui
Plataformas que seguem arquitetura similar: Backend API, Backoffice Admin, Frontend Web e Seeder (para popular dados).
### 🛒 Farmácia e Vestuário
Lojas/Apps específicos, compostos por pares de Backend/Frontend.

View file

@ -1,132 +0,0 @@
# Guia de Deploy e Manutenção - Apolo
Este guia descreve o processo completo para implantar, atualizar e manter serviços na VPS Apolo utilizando Podman e Quadlet, seguindo o padrão da infraestrutura.
## 🚀 Adicionando um Novo Serviço
O **Quadlet** permite declarar containers como serviços `systemd`. Siga estes passos para criar um novo.
### 1. Preparação
Escolha onde o arquivo ficará:
- **Global (Root)**: `/etc/containers/systemd/` (Padrão para serviços core/produção).
- **Usuário**: `~/.config/containers/systemd/` (Recomendado para experimentos ou serviços pessoais).
> **Nota:** A maioria dos serviços no Apolo roda como **root** em `/etc/containers/systemd/` para acesso facilitado a portas baixas e volumes globais, mas o modo rootless é suportado.
### 2. Criar o Arquivo `.container`
Crie um arquivo com sufixo `.container`, por exemplo, `meu-app.container`.
```ini
[Unit]
Description=Meu App Exemplo
After=network-online.target
[Container]
# 1. Imagem Docker
Image=docker.io/minha-empresa/meu-app:latest
AutoUpdate=registry
# 2. Variáveis de Ambiente
Environment=PORT=3000
Environment=DB_HOST=postgres-main
# 3. Persistência (opcional)
Volume=/mnt/data/meu-app:/app:Z
# Explicação:
# - /mnt/data/meu-app : Pasta no Host (Servidor)
# - /app : Pasta dentro do Container
# - :Z : Configura permissão SELinux (Essencial no AlmaLinux)
# 4. Rede e Exposição (Traefik)
Network=web_proxy
Label=traefik.enable=true
# Roteamento de Host (URL)
Label=traefik.http.routers.meu-app.rule=Host(`app.rede5.com.br`)
Label=traefik.http.routers.meu-app.entrypoints=websecure
Label=traefik.http.routers.meu-app.tls.certresolver=myresolver
# Porta Interna do Container (Load Balancer)
Label=traefik.http.services.meu-app.loadbalancer.server.port=3000
# Middleware (Ex: Redirect HTTP->HTTPS) - Opcional se entrypoints já for websecure
# Label=traefik.http.middlewares.https-redirect.redirectscheme.scheme=https
[Install]
WantedBy=multi-user.target
```
### 3. Aplicar as Alterações
O systemd precisa ler o novo arquivo e gerar o serviço correspondente.
```bash
# Se criado como Root (Padrão Apolo)
sudo systemctl daemon-reload
sudo systemctl start meu-app
# Se criado como Usuário
systemctl --user daemon-reload
systemctl --user start meu-app
```
---
## 🔄 Atualizando um Serviço
Se a imagem estiver configurada com `AutoUpdate=registry`, o Podman pode atualizar automaticamente. Para fazer manual:
1. **Baixar nova imagem**: `podman pull docker.io/minha-empresa/meu-app:latest`
2. **Reiniciar serviço**: `systemctl restart meu-app`
---
## 🛠️ Troubleshooting
### Verificar Status do Serviço
```bash
systemctl status meu-app
```
### Ver Logs da Aplicação
```bash
# Follow logs em tempo real
journalctl -f -u meu-app
# Ver logs anteriores
journalctl -u meu-app -n 100
```
### O Container não sobe?
1. Verifique erros de sintaxe no arquivo `.container`:
```bash
/usr/libexec/podman/quadlet -dryrun
```
2. Verifique se a porta está em uso.
3. Verifique se a imagem existe e foi baixada.
### O domínio não responde (Erro 404/502)?
1. Verifique se o container está na rede `web_proxy`.
2. Confira se a `port` no Label do Traefik bate com a porta que a aplicação escuta internamente.
3. Veja os logs do Traefik: `journalctl -f -u traefik`
---
## 📂 Estrutura de Diretórios Recomendada
Mantenha os volumes organizados em `/mnt/data/`:
```text
/mnt/data/
├── postgres-general/ # Banco de Dados Principal
├── redis-gohorsejobs/ # Redis Dedicado
├── saveinmed/
│ ├── backend/
│ │ └── .env
│ ├── marketplace/
│ └── ...
├── farmacia/
├── obramarket/
└── [nome-do-projeto]/
```

View file

@ -1,56 +0,0 @@
# Inventário de Serviços Apolo
## Tabela Geral de Serviços
| Serviço | Container | Domínio / URL | Porta Interna | Banco de Dados |
|---------|-----------|---------------|:-------------:|----------------|
| **Traefik** | `traefik` | n/a | 80/443 | - |
| **Forgejo Git** | `forgejo` | `forgejo-gru.rede5.com.br` | 3000 | `forgejo-db` |
| **Forgejo SSH** | `forgejo` | `forgejo-gru.rede5.com.br` | 22 (Ext: 2323) | - |
| **Zot Registry** | `zot` | `zot-gru.rede5.com.br` | 5000 | - |
| **pgAdmin** | `pgadmin` | `pgadmin.rede5.com.br` | 80 | - |
| **Glances** | `glances` | `gms1.rede5.com.br` | 61208 | - |
| **Farmácia BE** | `farmacia-backend` | `api.farmacia.rede5.com.br` | 8080 | Postgres Main |
| **Farmácia FE** | `farmacia-frontend` | `farmacia.rede5.com.br` | 3000 | - |
| **ObraMarket BE** | `obramarket-backend` | `api.obramarket.rede5.com.br` | 8158 | Postgres Main |
| **ObraMarket BO** | `obramarket-backoffice` | `admin.obramarket.rede5.com.br` | 3000 | - |
| **ObraMarket FE** | `obramarket-frontend` | `obramarket.rede5.com.br` | 80 | - |
| **Q1Agenda BE** | `q1agenda-backend-dev` | `api-dev.q1agenda.com.br` | 8000 | Postgres Main |
| **Q1Agenda FE** | `q1agenda-frontend-dev` | `dev.q1agenda.com.br` | 3000 | - |
| **Rodízios BE** | `rodiziosdaqui-backend` | `api.rodiziosdaqui.rede5.com.br` | 8080 | Postgres Main |
| **Rodízios BO** | `rodiziosdaqui-backoffice` | `backoffice.rodiziosdaqui...` | 8082 | - |
| **Rodízios FE** | `rodiziosdaqui-frontend` | `rodiziosdaqui.rede5.com.br` | 3000 | - |
| **SaveInMed BE**| `saveinmed-backend-dev` | `api.saveinmed.com.br` | 8214 | Postgres Main |
| **SaveInMed BO**| `saveinmed-backoffice-dev` | `admin.saveinmed.com.br` | 3000 | - |
| **SaveInMed MK**| `saveinmed-marketplace-dev`| `app.saveinmed.com.br` | 3000 | - |
| **SaveInMed Site**| `saveinmed-website-dev` | `saveinmed.com.br` | 8000 | - |
| **Vestuário BE**| `vestuario-backend` | `api.vestuario.rede5.com.br` | 8000 | Postgres Main |
| **Vestuário FE**| `vestuario-frontend` | `vestuario.rede5.com.br` | 3000 | - |
## Infraestrutura de Dados
### PostgreSQL Main (`postgres-main`)
- **Versão**: 17-alpine
- **Exposição**: Interna (5432) e Externa via Traefik (TCP 27537).
- **Volume**: `/mnt/data/postgres-general`
### PostgreSQL Forgejo (`forgejo-db`)
- **Versão**: 16-alpine
- **Uso**: Exclusivo para o Forgejo.
- **Volume**: `/mnt/data/postgres-forgejo`
### Redis GoHorseJobs (`redis-gohorsejobs`)
- **Config**: Persistência ativada (`appendonly yes`), limite 128MB.
- **Exposição**: Interna (6379) e Externa via Traefik (TCP 26380).
- **Volume**: `/mnt/data/redis-gohorsejobs`
## Portas Públicas Publicadas (Node Ports)
Alguns containers publicam portas diretamente no host (além do Traefik), mas o acesso ideal é via domínio.
- **80/443**: Traefik (Web)
- **2323**: Forgejo SSH
- **12110/12112**: Farmácia
- **12120/12123**: RodíziosDaqui
- **8214**: SaveInMed Backend
- **12111/12113**: Vestuário