Inventario
Stack
Todas las herramientas que uso, dónde corren y en qué proyecto las uso. Lo retirado sigue en la lista, tachado: también cuenta lo que dejé de usar y por qué.
79 herramientas · 10 capas
Infraestructura
- Raspberry PiEl servidor del homelab, encendido 24/7
- Docker ComposeTodos los servicios en un solo archivo
- PortainerVista rápida de contenedores
- HomepagePanel de entrada al homelab
- CockpitAdministración del sistema desde el navegador
- KopiaBackups cifrados e incrementales
- Backblaze B2La copia fuera de casa
- RenovateActualizaciones por pull request
- GiteaGit privado del homelab
- Gitea Actions runnerCI en la Torre cuando está encendida
- SyncthingSincroniza las notas sin nube
- VaultwardenGestor de contraseñas propio
- Paperless-ngxArchivo de documentos con OCR
- JellyfinServidor multimedia
- CachyOS + HyprlandEl escritorio de trabajo
Red y acceso
- Cloudflare TunnelLo único expuesto a Internet, por rutas concretas
- TailscaleAcceso privado a los paneles
- Nginx Proxy ManagerProxy inverso con certificados
- Pi-holeDNS de casa y bloqueo de anuncios
- UFWCortafuegos del servidor
Datos
- SQLiteLa base de datos por defecto
- SQLite FTS5 + sqlite-vecBúsqueda híbrida para el RAG de documentos
- Supabase (PostgreSQL)Datos y fotos de las inspecciones
- ObsidianNotas y tareas
Modelos
- ClaudeModelos de pago para lo que lo merece
- OllamaModelos locales gratis en la GPU
- Qwen3 14BEl modelo local para datos personales
- bge-m3Embeddings para el RAG
- LiteLLMPasarela única: elige modelo y controla el gasto
- OpenRouterAcceso a otros proveedores
- faster-whisperTranscribe las notas de voz
- edge-ttsVoz de las respuestas
Agentes
- Hermes AgentAsistente personal por Telegram
- MCPHerramientas de solo lectura para los agentes
- LangGraphEl flujo del agente de diagnóstico
- paperless-gptTitula y etiqueta documentos con un modelo local
- Claude CodeEl compañero de programación
Automatización
- n8nFlujos de automatización y webhooks
- HealthchecksAvisa si una tarea no se ejecuta
- systemd timers + cronLas tareas programadas
- Siri ShortcutsPreguntar al homelab desde el reloj
- Telegram Bot APICanal de avisos y confirmaciones
- Power AutomateAutomatizaciones en el trabajo
- Power BIInformes de operaciones
- Instagram Graph APIRespuestas automáticas por palabra clave
Observabilidad
- LangfuseTrazas y costes de cada llamada a un modelo
- NetdataMétricas del servidor en tiempo real
- SentryErrores de la app de inspecciones
- Better StackLogs y disponibilidad de QRFleet
- PostHogAnalítica con consentimiento
Seguridad
- CrowdSecBloquea IPs con mal comportamiento
- WazuhSIEM de casa
- Kali LinuxLa máquina atacante del laboratorio
- MetasploitExplotación en los CTF
- TryHackMeDonde practico ofensiva
Desarrollo
- Next.jsEsta web y QRFleet
- ReactInterfaces
- TypeScriptEl lenguaje de la web
- Tailwind CSSEstilos con tokens propios
- PythonScripts, agentes y APIs
- FastAPILa API de QRFleet
- PlaywrightPruebas de punta a punta
- ZodValidación de datos
- VercelDonde vive esta web
- Git + GitHubCódigo público y privado
- Neovim (LazyVim)El editor
- tmux + ZellijSesiones de terminal
Contenido
- RemotionVídeos hechos con código
- ResendEmails transaccionales
- ShikiResaltado de código en el blog