TL;DR
He construido un homelab self-hosted en Fedora Server con Podman/Podman-Compose, Nginx reverse proxy y Tailscale para acceso remoto seguro (HTTPS con certificados Tailscale), y Authentik como proveedor de identidad (SSO). Sobre esa base desplegué suites de uso real (familia/pareja) y productividad: Nextcloud/Collabora, Forgejo + runners + registry, Firefly III + Metabase, y una app propia (Finance ETL Console). Además, integré agentes LLM en Forgejo (plan/exec/review/patch) para automatizar PRs con control humano y guardrails.
Role & Scope
Rol: Platform / DevOps (owner)
Periodo: 2023–present
Scope: arquitectura de plataforma, SSO/seguridad, contenedores y despliegue, operación diaria, CI/CD y automatización de workflows.
AI-assisted disclaimer (honesto):
- Yo defino objetivos, alcance, riesgos y criterios de aceptación.
- La IA implementa cambios a partir de specs bien definidos.
- Yo valido end-to-end, reviso diffs críticos y verifico logs/comportamiento.
- Control de calidad vía PRs, revisiones y rollback si hace falta.
Profile relevance
- Primary: DevOps / Platform (infra, CI/CD, automation)
- Secondary: Data (ETL + dashboards de finanzas)
Context
Quería una infraestructura propia (privacidad + control) con acceso remoto seguro, SSO y permisos multiusuario, y apps self-hosted con enfoque producto (documentación, reproducibilidad y roadmap). Además, buscaba automatizar el desarrollo con CI/CD y agentes integrados en el workflow.
Deep dives
Deep dive — Platform infra (runtime + proxy + acceso)
Lo implementado
- Fedora Server + Podman/Compose como runtime.
- Reverse proxy Nginx con TLS (Tailscale certs).
- Rutas por subpath, DNS local con Pi-hole.
- Estructura
infra/+data/separando stacks y persistencia.
Tradeoffs / decisiones
- Subpaths vs subdominios (menos fricción inicial, más complejidad en algunas apps).
- Autostart parcial (pendiente systemd/quadlets).
Deep dive — Identity & access (SSO)
- Authentik como IdP central.
- OIDC/SAML/Forward Auth según la app.
- Objetivo: reducir fricción y asegurar trazabilidad por usuario/grupo.
Deep dive — AI agents in CI (Dev workflow)
Go to standalone case study: AI agents in CI →
Cómo funciona
- Bots en Forgejo (
sabaris-ai-bot,sabaris-review-bot). - Comandos en issues:
run/plan,run/exec,run/review,run/patch. - Runners dedicados: implementador vs revisor (principio de mínimo privilegio).
Resultados y límites
- Iteraciones más rápidas con control humano final.
- Gap actual: bug en contador de iteraciones → riesgo de coste.
Deep dive — Finance ETL Console (producto propio)
Go to standalone case study: Finance ETL Console →
Aplicación web para automatizar importaciones en Firefly:
- UI Jinja2/HTMX + API FastAPI.
- OIDC con Authentik.
- Dedupe local + dedupe contra Firefly API.
- Parsers por banco (CSV/PDF).
Deep dive — Service suite (alto nivel)
- Office: Nextcloud + Collabora, Joplin (SSO pendiente).
- DevTools: Forgejo + runners + registry, code-server.
- Finance: Firefly III + Metabase + Finance ETL Console.
Outcomes & Impact
- Plataforma self-hosted operativa con SSO multiusuario.
- Workflows de desarrollo automatizados con guardrails.
- App de finanzas desplegada y en uso.
Roadmap (honesto)
- P0: backups MVP + restore test documentado, cerrar puertos directos y pasar todo por Nginx, estándar de redes Podman.
- P1: autostart systemd/quadlets, unificación de secrets/vars, hardening de runners, guardrails de coste para agentes.
Learnings
- SSO cambia el juego en adopción multiusuario.
- Agents + PRs encajan perfecto en workflows humanos.
- Publicar infra es un proyecto en sí (sanitizado, documentación, reproducibilidad).
Media / Evidence
- Diagramas: arquitectura, infra flow, agentes, mapa de servicios, ETL flow.
- Links de contexto:
- https://tailscale.com/
- https://podman.io/
- https://goauthentik.io/