Ya seas un entusiasta de los videojuegos, un bibliófilo o un usuario cotidiano centrado en la productividad, encontrarás un puñado de servicios auto-alojados que se adaptan a tus necesidades. Si te gusta programar, hay toneladas de aplicaciones que pueden ayudar a compilar proyectos complejos, automatizar flujos de trabajo y servir sitios web cuidadosamente diseñados a los clientes. Dicho esto, aquí está mi lista curada de las mejores aplicaciones auto-alojadas que todo programador necesita probar.
7. IT-Tools
Un conjunto subestimado de utilidades
Fiel a su nombre, IT-Tools incluye 86 utilidades dentro de una solución conveniente y auto-alojada, y es un contenedor que siempre ejecuto en mi servidor doméstico. Esto se debe a que la mayoría de estas herramientas de calidad de vida hacen mi vida de programación mucho más fácil. Por ejemplo, tienes convertidores de sintaxis que pueden transformar tu código JSON/YAML/TOML/XML a diferentes formatos sin incurrir en errores de indentación en el proceso. Luego tienes el generador de Crontab y la calculadora de Chmod, que son bastante útiles si quieres hojas de trucos para su sintaxis difícil de recordar.
Para los entusiastas de Docker, tienes el convertidor de Docker Run a Docker Compose, y es bastante útil cuando trabajas con tantos servicios en contenedores como yo. El editor HTML WYSIWYG es igual de útil para los desarrolladores web que quieren una forma rápida de generar sintaxis HTML desde texto plano. ¡Y hay muchas otras utilidades orientadas a desarrolladores en IT-Tools que puedes integrar en tu estación de trabajo!
6. Vaultwarden
Para tus contraseñas y claves API
Los gestores de contraseñas son imprescindibles para cada usuario, pero son especialmente útiles cuando eres programador. Esto se debe a que terminarás dependiendo de claves API, códigos de autenticación y tokens secretos de vez en cuando. Considerando que muchos tokens API solo se pueden ver en el momento de la creación, un gestor de contraseñas proporciona una forma confiable de almacenar todos tus códigos secretos.
Personalmente, Vaultwarden es mi gestor de contraseñas favorito del grupo porque ofrece la mayoría de las características de Bitwarden sin la naturaleza que consume recursos de este último. Aunque puede requerir un poco de esfuerzo desplegar Vaultwarden, su bajo consumo de memoria lo hace perfecto incluso para los servidores domésticos más básicos.
5. Gitea
Tu repositorio Git auto-alojado
Como alguien que usa GitHub para almacenar todo, desde mis archivos de proyecto hasta configuraciones de laboratorio doméstico y notas de Obsidian, admito que es una plataforma sólida como roca para programadores. Sin embargo, hay momentos en que podrías querer almacenar tus archivos de proyecto en un servidor completamente auto-alojado. Tal vez quieras mantener tus proyectos personales lejos de los ojos curiosos de las empresas. O tal vez quieres control total sobre los archivos de código de tu equipo mientras reduces la amenaza de violaciones de datos.
Ahí es donde Gitea resulta útil, ya que esta herramienta ingeniosa te permite alojar tus archivos de proyecto en un servidor privado. Además de soportar repositorios plantilla, clonación de archivos, solicitudes de extracción, historial de revisiones y otras funciones esenciales de GitHub, Gitea también te permite configurar privilegios de acceso y configurar códigos MFA para asegurar que usuarios no autorizados no puedan acceder a tus archivos de proyecto meticulosamente codificados.
4. Nginx
O Caddy, si quieres HTTPS automático
Desde alojar tus sitios web hasta ayudarte a acceder a tu batallón de contenedores a través de dominios personalizados, los servicios de proxy inverso son una bendición para todo entusiasta de la programación. Si no te importa arar a través de páginas y páginas de documentación, encontrarás que Nginx es una adición sólida a tu suite auto-alojada.
Pero para las personas que no quieren lidiar con certificados Let’s Encrypt y redirecciones SSL, Caddy es una alternativa sólida como roca a Nginx, ya que puede obtener automáticamente certificaciones TLS para tus dominios antes de enrutar todo el tráfico sobre el protocolo HTTPS seguro.
3. Ansible y Terraform
Automatización para tus VMs
Crear máquinas virtuales y equiparlas con paquetes útiles puede comenzar a volverse tedioso después de un tiempo, especialmente cuando tus proyectos involucran ejecutar un puñado de huéspedes virtuales. Afortunadamente, el dúo Ansible y Terraform puede aliviar tus problemas de gestión de VM.
Puedes comenzar la suite de automatización creando un archivo .tf con las especificaciones de tu máquina virtual y usándolo con una instancia de Terraform auto-alojada para crear las VMs. Después de eso, puedes aprovechar los Playbooks de Ansible para armar tu huésped virtual con los paquetes necesarios. Claro, puede tomar un tiempo crear los archivos .tf y .yaml, pero ahorrarás bastante tiempo al configurar los entornos virtualizados para tus proyectos de codificación.
2. n8n
Automatización para todo lo demás
Si estás dispuesto a sumergirte más profundo en la madriguera de automatización, recomiendo revisar n8n. Con cientos de integraciones para las aplicaciones más populares en el espacio de computación, n8n puede ayudarte a automatizar cada aspecto de tu vida de programación.
Por ejemplo, podrías crear un flujo de trabajo de n8n que haga ping a tus canales de Telegram y Slack cada vez que haya una solicitud de extracción en tu servidor Gitea. O podrías aprovechar su destreza de automatización para vincular las diferentes bases de datos en tu sitio web. Y si te gusta la IA, n8n puede ayudarte a crear todo, desde un agente conversacional impulsado por LLM hasta un flujo completo de análisis y evaluación de bases de datos.
1. Code Server y JupyterLab
La combinación de IDE
Ejecutar un IDE en tu sistema local está bien y todo eso, pero ¿qué pasaría si quisieras editar archivos de código desde tu smartphone, tablet, SBC u otros dispositivos lentos en tu hogar? Bueno, podrías desplegar un contenedor Code Server dentro de tu estación de trabajo y usar su interfaz web para trabajar en tus proyectos de programación desde cualquier dispositivo.
Si eres tan aficionado a VS Code como yo, puedes fusionar su directorio de extensiones con el de tu contenedor Code Server, permitiéndote así acceder al conjunto masivo de plugins del primero desde tu IDE auto-alojado. De manera similar, puedes configurar una instancia auto-alojada de JupyterNotebook (o mejor aún, JupyterLabs) como un servidor centralizado de toma de notas para tu código de Python.
¿Qué herramienta auto-alojada juras usar para tus proyectos de codificación?
Aún así, hay bastantes otros servicios en el panorama auto-alojado. Técnicamente, Docker, Podman, Containerd y otras herramientas de contenedorización también son auto-alojadas, y también lo son los entornos de virtualización como Proxmox, XCP-ng y Harvester. Si eres un desarrollador web, un servidor LAMP puede ayudarte a alojar tus propios sitios web. O puedes ir por la ruta Flask al probar tu sitio web.