- Python 52.2%
- HTML 34.6%
- Shell 13.2%
|
|
||
|---|---|---|
| backend | ||
| deploy | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
ILCA_SERVER — Pampero backend
FastAPI + PostgreSQL/PostGIS + Caddy. Recebe pontos de cada barco em tempo real, serve mapa público Leaflet e export GPX.
Em produção: https://pampero.pop.coop/ (mapa) · /api/fleet · /api/track/{sail}.gpx
Stack
- Python 3.12 · FastAPI · Uvicorn · psycopg3 (SQL direto, sem ORM)
- PostgreSQL 16/17 + PostGIS 3.4/3.5
- Caddy para TLS (ACME LE, TLS-ALPN-01)
- systemd unit
Endpoints
| Método | Rota | Propósito |
|---|---|---|
| POST | /api/track |
batch de pontos de um barco |
| GET | /api/fleet |
snapshot ao vivo (último ponto + trilha 5 min de cada barco) |
| GET | /api/track/{sail_number} |
track completo JSON |
| GET | /api/track/{sail_number}.gpx |
GPX com extensões pampero: |
| GET | / ou /map |
mapa Leaflet público |
Dev local
docker run -d --name pg -p 127.0.0.1:55432:5432 \
-e POSTGRES_USER=pampero -e POSTGRES_PASSWORD=pampero -e POSTGRES_DB=pampero \
postgis/postgis:16-3.4
cd backend
python3.12 -m venv .venv && .venv/bin/pip install -r requirements.txt
PAMPERO_DSN='postgresql://pampero:pampero@127.0.0.1:55432/pampero' \
.venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000
Deploy
deploy/provision.sh foi pensado pra uma LXC Debian fresca; a prod atual
roda co-hospedado na ha1 (HAProxy edge) — veja o Caddyfile em
deploy/Caddyfile (SNI-routed pela HAProxy do cluster pop-edge-v3).
Licença
CHARRUA v1.2 — Copyleft Humanitário para Autonomia, Resistência,
Reciprocidade, Uso Aberto (https://gitlab.fing.edu.uy/charrua/licencia).
Honra ao povo Charrúa. Este software não pode ser usado para
vigilância massiva, armas autônomas, supressão de direitos humanos,
discriminação algorítmica ou treinamento de IA proprietária (Seção 5).
Ver LICENSE para o texto completo.