docs: remove servidores desativados (apolo, posseidon, zeus)
This commit is contained in:
parent
08f4283a39
commit
f7d88a2d97
5 changed files with 0 additions and 359 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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]/
|
||||
```
|
||||
|
|
@ -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
|
||||
Loading…
Reference in a new issue