Ask HN: Consejos para empezar con mi propio servidor
Entorno para empezar
- Muchos sugieren empezar barato y desechable: un VPS de 5–10 $/mes o una VM local, y esperar romper/reinstalar varias veces.
- Otros recomiendan una máquina en casa (portátil viejo, mini PC, Raspberry Pi, NAS) para tener acceso físico y practicar a fondo redes.
- Algunos proponen primero replicar servicios que ya ejecutas en Windows en una VM de Linux para reducir las incógnitas.
- Hay una opinión minoritaria de que el bare-metal/colocation “real” es más educativo, pero exige más trabajo.
Dónde alojar: VPS vs servidor en casa
- Opciones populares de VPS mencionadas: DigitalOcean, Vultr, Hetzner (elogiado por su buena relación calidad-precio), Linode, OVH, BuyVM, Scaleway, ofertas de lowendbox.
- Nube: se sugieren instancias AWS EC2/Lightsail y Azure burstable; algunos advierten sobre sorpresas con IO y la facturación.
- Oracle Cloud “always free” recibe tanto elogios (gran máquina gratis) como fuertes críticas (bloqueos aleatorios, preocupaciones sobre datos/2FA, archivado de instancias inactivas).
- Alojar en casa se ve como barato y empoderador; los críticos advierten sobre seguridad, límites del ISP y disponibilidad; sus defensores dicen que es la mejor forma de aprender de verdad.
- Se sugieren DNS dinámico y túneles de Cloudflare para exponer servicios en casa.
SO, herramientas y automatización
- Para principiantes: Ubuntu Server o Debian son los más recomendados por la documentación y la comunidad; Debian se ve como “incontrovertido”.
- Otros sugieren Arch, Gentoo, Slackware, NixOS, Alpine, FreeBSD o Illumos para entender más a fondo, pero como segundos pasos.
- Usa hipervisores locales (VirtualBox, Orbstack, UTM) para levantar varias VM de prueba.
- Gran énfasis en automatización y reproducibilidad: scripts de shell, Ansible, Terraform, cloud-init, contenedores de Proxmox; “notas ejecutables”.
- Docker y plataformas de más alto nivel (CapRover, Yunohost) se proponen para ejecutar apps rápidamente y luego inspeccionar cómo funcionan por dentro.
Seguridad y fiabilidad
- Prácticas básicas: firewall (UFW/iptables o el firewall del proveedor), solo claves SSH, deshabilitar el acceso root, quizá mover SSH fuera del puerto 22, usar contraseñas fuertes en el resto.
- Herramientas como fail2ban o CrowdSec para bloquear ataques de fuerza bruta; VPNs (por ejemplo, Tailscale) para reducir los puertos abiertos.
- Usa snapshots/copias de seguridad (Proxmox, snapshots del proveedor, rsync, discos externos) y aprende a restaurar con frecuencia.
- Mantente en distribuciones LTS; considera los benchmarks CIS y herramientas básicas de monitorización/rendimiento a medida que avances.
Proyectos y enfoque de aprendizaje
- Empieza con un servicio a la vez: un sitio web sencillo (nginx/Apache, Let’s Encrypt), luego una pila de aplicación (por ejemplo, Django + gunicorn + nginx), y después bases de datos, DNS, correo, copias de seguridad y monitorización.
- Toma notas meticulosas (o documentación al estilo Obsidian/Zettelkasten); usa el historial de shell cuando olvides algo.
- Filosofía: no persigas la pila “perfecta”; construye algo pequeño, mantenlo durante meses, corrige los problemas de forma permanente y luego itera.