Arquitectura del ecosistema (overview técnico)
Resumen
Monorepo apps/kalista/ despliega microservicios FastAPI (Folks, Kalista, Desk), Go (Splora), Astro (landpage) e integración Gaming en Railway, con Neon Postgres y Cloudflare para DNS/proxy/Pages.
Servicios
| Servicio | Stack | URL | Rol |
|---|---|---|---|
| Folks | FastAPI/Python 3.12 | app.folks.zolski.net | IdP, JWT ES256, OAuth |
| Kalista | FastAPI/Python | app.kalista.zolski.net | Ingest, crypto, sync Drive |
| Desk | FastAPI/Python | app.desk.zolski.net | Soporte, wiki, staff |
| Splora | Go 1.26 + chi | app/api.splora.zolski.net | Observabilidad, Push API |
| Gaming | FastAPI | gaming/minecraft.through.zolski.net | Hub + tienda MC |
| Landpage | Astro 5 | zolski.net | SSG público |
Infraestructura
- Neon Postgres: DB serverless compartida (Folks users, Desk, Splora tokens).
- Railway: compute para backends (Dockerfile en Splora/Gaming).
- Cloudflare: DNS, Workers proxy, Pages para landpage.
- Cookies SSO:
Domain=.zolski.netune subdominios.
Monorepo
apps/kalista/
├── apps/folks|kalista|desk|splora/
├── integrations/gaming.through/
├── landpage/
└── packages/zolski-ui/
Git root en apps/kalista/; branch main, deploy directo.
Comunicación entre servicios
- Auth: cada app valida JWT ES256 con clave pública Folks — sin llamada HTTP por request.
- Kalista ↔ Folks: mismo Neon,
folks_users+ tokens OAuth cifrados. - Splora Push: Bearer
spl_...independiente de sesión web. - Desk staff: gates
require_staff/ tier admin.