infracloud/vps/nc1/nc1.md
2026-01-10 10:21:12 -06:00

5.9 KiB

NC1 VPS - Documentação de Infraestrutura

Informações do Sistema

Propriedade Valor
Hostname v2202508247812376908
IP Público 185.194.141.70
Sistema Operacional AlmaLinux 10.1 (Heliotrope)
Kernel Linux 5.x x86_64
CPU AMD EPYC-Rome Processor
Memória RAM 7.5 GB
Disco 254 GB (31 GB usado, ~13%)

Arquitetura de Containers

flowchart LR
    T[Traefik]
    PG[(PostgreSQL)]
    RD[(Redis)]
    FG[Forgejo]
    VW[Vaultwarden]
    
    subgraph Core
        CIG[Identity Gateway]
        CPP[Platform Projects]
        CDB[Core Dashboard]
    end
    
    subgraph SaveInMed
        SIMB[Backend]
        SIMM[Marketplace]
    end
    
    subgraph Invent["Invent Finance"]
        INVBE[Backend]
        INVFE[Frontend]
    end
    
    subgraph Q1["Q1 Total/Food/Store"]
        Q1BE[Total Backend]
        Q1DB[Total Dashboard]
        Q1FOOD[Food Backend]
        Q1VEST[Vestuario Backend]
    end
    
    subgraph Q1Agenda ["Q1 Agenda"]
        Q1ABE[Backend]
        Q1AFE[Frontend]
    end
    
    subgraph Sextando
        SXBE[Backend]
        SXFE[Frontend]
    end
    
    T --> VW
    T --> FG
    T --> CIG
    T --> CPP
    T --> CDB
    T --> SIMB
    T --> SIMM
    T --> INVBE
    T --> INVFE
    T --> Q1BE
    T --> Q1DB
    T --> Q1FOOD
    T --> Q1VEST
    T --> Q1ABE
    T --> Q1AFE
    T --> SXBE
    T --> SXFE
    
    CIG --> PG
    CPP --> PG
    INVBE --> PG
    Q1BE --> PG
    Q1FOOD --> PG
    Q1VEST --> PG
    Q1ABE --> PG
    SXBE --> PG
    SIMB --> PG
    SIMB --> RD

Nota: O cluster Redis é utilizado principalmente pelo SaveInMed Backend e outros serviços que requerem cache. Todos compartilham a mesma instância do PostgreSQL.


Mapeamento de Domínios (HML/Dev)

Serviço URL / Domínio Porta Interna
Core Identity ig-dev.rede5.com.br 4000
Core Platform platform-projects-core-dev.rede5.com.br 8080
SaveInMed Backend api-dev.saveinmed.com.br 8214
SaveInMed Market marketplace-dev.saveinmed.com.br 5173
Invent Backend invent-api-dev.rede5.com.br 4763
Invent Frontend invent-dev.rede5.com.br 3785
Q1 Total Backend api-dev.q1-total.com.br 8000
Q1 Total Dash dashboard-dev.q1-total.com.br 5173
Q1 Food Backend api-dev.q1food.com 8003
Q1 Store/Vest api-dev.q1store.me 8002
Q1 Agenda Backend api-dev.q1agenda.com.br 8000*
Q1 Agenda Frontend dev.q1agenda.com.br 3000
Sextando API api-dev.sextando.com.br 8080
Sextando Web dev.sextando.com.br 3001
Vaultwarden vault.rede5.com.br 80

Containers Podman (Rodando)

Container Descrição
traefik Reverse proxy e load balancer
postgres-main Banco de dados PostgreSQL principal
redis-saveinmed Cache Redis para SaveInMed
forgejo Git server self-hosted
vaultwarden Gerenciador de senhas
core-identity-gateway-dev Core Identity Gateway (HML)
core-platform-projects-core-dev Core Platform Projects (HML)
core-dashboard-dev Core Dashboard (HML)
saveinmed-backend-dev SaveInMed Backend (HML)
saveinmed-marketplace-dev SaveInMed Marketplace (HML)
invent-finance-backend-dev Invent Finance Backend (HML)
invent-finance-frontend-dev Invent Finance Frontend (HML)
sextando-backend-dev Sextando Backend (HML)
sextando-frontend-dev Sextando Frontend (HML)
vestuario-backend-dev Q1 Store/Vestuário (HML)
food-backend-dev Q1 Food Backend (HML)
q1-total-backend-dev Q1 Total Backend (HML)
q1-total-dashboard-dev Q1 Total Dashboard (HML)
q1agenda-backend-dev Q1 Agenda Backend (HML)
q1agenda-frontend-dev Q1 Agenda Frontend (HML)
pgadmin Administração PostgreSQL
glances Monitoramento de sistema

Quadlet Files (Systemd Units)

Localização:

  • Root: /etc/containers/systemd/
  • User: ~/.config/containers/systemd/

Fluxo de Rede

flowchart LR
    Internet((Internet)) -->|443/80| T[Traefik]
    
    T -->|8080| VW[Vaultwarden]
    T -->|3000| FG[Forgejo]
    T -->|8214| SIMB[SaveInMed]
    T -->|8002| Q1[Q1 Services]
    
    PG[(PostgreSQL)]
    RD[(Redis)]
    
    SIMB --> PG
    SIMB --> RD
    Q1 --> PG

Guia - Adicionar Novo Serviço (Quadlet)

Para adicionar um novo serviço nesta VPS, utilizamos o Quadlet (Systemd Generator para Podman). Isso garante que os containers iniciem automaticamente no boot e sejam gerenciados como serviços do sistema.

1. Criar arquivo .container

Crie um arquivo em /etc/containers/systemd/ (para root) ou ~/.config/containers/systemd/ (para seu usuário). O nome do arquivo deve ser seuservico.container.

Exemplo: novo-app-dev.container

[Unit]
Description=Meu Novo App Dev
After=network-online.target

[Container]
Image=docker.io/minha-imagem:latest
# Se precisar declarar variáveis de ambiente
Environment=PORT=8080
# Conectar à rede do proxy
Network=web_proxy

# Labels para o Traefik (Expõe o serviço na web)
Label=traefik.enable=true
Label=traefik.http.routers.meu-app-dev.rule=Host(`meu-app-dev.rede5.com.br`)
Label=traefik.http.routers.meu-app-dev.entrypoints=websecure
Label=traefik.http.routers.meu-app-dev.tls.certresolver=myresolver
Label=traefik.http.services.meu-app-dev.loadbalancer.server.port=8080

[Install]
WantedBy=multi-user.target

2. Ativar o serviço

Após criar o arquivo, recarregue o daemon do systemd para gerar o arquivo de serviço, e então inicie:

# Se o arquivo estiver em /etc/containers/systemd/ (Root)
sudo systemctl daemon-reload
sudo systemctl start novo-app-dev

# Se estiver na home do usuário (Rootless)
systemctl --user daemon-reload
systemctl --user start novo-app-dev