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.