Deploy inicial: API FastAPI + infra Podman/Caddy + docs

- App FastAPI (main.py, app/): rotas /health e /dados_retorno, middleware anti-scanner, logging configurado
- Config via configs.json (Pydantic); segredos fora do codigo e do git (.gitignore)
- Dockerfile (oracledb thin, HEALTHCHECK) + requirements.txt + .dockerignore
- Deploy Podman/Quadlet + Caddy em deploy/
- Docs: CLAUDE.md + docs/ (arquitetura, deploy, known-issues)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Ricardo Leite 2026-07-28 16:37:13 -03:00
commit 15c89c9038
22 changed files with 1397 additions and 0 deletions

View file

@ -0,0 +1,29 @@
# Quadlet do Podman -> o systemd (usuario) converte isto em api-scardua.service
# Instalar em: ~/.config/containers/systemd/api-scardua.container
# Aplicar com: systemctl --user daemon-reload && systemctl --user start api-scardua
[Unit]
Description=API Scardua
[Container]
# AJUSTE <owner> para o teu usuario/org no Forgejo
Image=git.flstecnologia.tech/<owner>/api-scardua:latest
AutoUpdate=registry
ContainerName=api-scardua
# Somente a rede do proxy (Caddy alcanca por "api-scardua:8000").
# NAO entra na db-net: esta API usa Oracle EXTERNO, nao o Postgres da VPS.
Network=fls.network
# configs.json montado read-only. :Z reetiqueta o arquivo pro rootless/SELinux.
# Coloque o arquivo real em ~/.config/api-scardua/configs.json no servidor.
Volume=%h/.config/api-scardua/configs.json:/app/configs.json:ro,Z
# Healthcheck vem embutido na imagem (HEALTHCHECK no Dockerfile) -> o
# podman auto-update usa pra decidir rollback.
[Service]
Restart=always
[Install]
WantedBy=default.target