AWS para principiantes: entendiendo los servicios principales
¿Qué es AWS?
Amazon Web Services (AWS) es la plataforma de computación en la nube de Amazon. En lugar de comprar un...
Ajustar PHP-FPM para mejor rendimiento
Qué es PHP-FPM
PHP-FPM (FastCGI Process Manager) es la forma moderna de ejecutar PHP en un servidor. En lugar de ser...
Docker para principiantes: qué es y por qué usarlo
Qué es Docker
Docker es una plataforma de virtualización ligera que permite empaquetar una aplicación y todas sus...
Fail2ban: bloqueo automático de atacantes de fuerza bruta
Fail2ban: bloqueo automático de atacantes de fuerza bruta
Si expones tu servidor a internet, vas a recibir intentos...
IPv6: el fin de la escasez de IPs
Por qué existe IPv6
Cuando se diseñó IPv4 en los años ochenta, nadie imaginó que el mundo entero se conectaría a...
Instalar Node.js en tu VPS Linux con NVM
Instalar Node.js en tu VPS Linux con NVM
Si vas a correr aplicaciones JavaScript en tu VPS, lo primero que necesitas...
Kubernetes: qué es y cuándo tiene sentido usarlo
Qué es Kubernetes en una frase
Kubernetes (abreviado K8s) es un orquestador de contenedores: un sistema que se...
La regla 3-2-1 de respaldos aplicada al hosting
Qué es la regla 3-2-1
La regla 3-2-1 es una guía clásica en administración de sistemas que resume lo mínimo para...
Netdata: dashboard de monitoreo en tiempo real para tu VPS
Netdata: dashboard de monitoreo en tiempo real para tu VPS
Cuando un servidor empieza a ponerse lento, lo último que...
Redis como cache para acelerar aplicaciones web
Qué es Redis
Redis es un almacén de datos en memoria — guarda valores indexados por claves directamente en RAM, lo...
SSH con llaves públicas: acceso seguro sin contraseña
Por qué usar llaves en lugar de contraseña
La autenticación por contraseña es vulnerable a ataques de fuerza bruta —...
Ajustar MySQL/MariaDB con my.cnf para mejor rendimiento
Por qué ajustar MySQL
La configuración por defecto de MySQL/MariaDB está pensada para funcionar en cualquier máquina...
BorgBackup: respaldos con deduplicación y cifrado
Qué es BorgBackup
Borg es una herramienta de respaldo en línea de comandos pensada para servidores. Su diferencial no...
ClamAV: escáner antivirus para tu servidor Linux
ClamAV: escáner antivirus para tu servidor Linux
ClamAV es el antivirus open source más usado en servidores Linux. No...
Correr una aplicación Node.js en producción con PM2
Correr una aplicación Node.js en producción con PM2
Cuando estás desarrollando, lanzas tu app Node con node app.js y...
Deploy con Git: subir cambios directamente desde tu repo
Deploy con Git: subir cambios directamente desde tu repo
Subir archivos por FTP cada vez que cambias algo es lento y...
EC2: lanzar tu primera instancia y conectarte por SSH
¿Qué es una instancia EC2?
Una instancia EC2 es una máquina virtual en la nube de AWS. Eliges el sistema operativo,...
Firewall básico en Linux con UFW
Qué es UFW
UFW (Uncomplicated Firewall) es una capa de abstracción sobre iptables/nftables que hace mucho más...
Instalar Docker en Ubuntu/Debian y primeros comandos
Instalación de Docker en Ubuntu y Debian
Esta guía muestra cómo instalar Docker Engine en un VPS con Ubuntu 22.04 o...
Instalar PostgreSQL en Ubuntu y crear tu primera base de datos
PostgreSQL en un VPS Ubuntu paso a paso
Montar PostgreSQL en un servidor Ubuntu es cuestión de minutos, pero hay...
Pods, Deployments y ReplicaSets explicados
El trío que todo principiante debe entender
Si acabas de entrar a Kubernetes, lo primero que debes dominar son tres...
Uptime Kuma: monitoreo de sitios y servicios con alertas
Uptime Kuma: monitoreo de sitios y servicios con alertas
Los servicios comerciales de monitoreo están bien, pero si...
BGP: cómo internet rutea el tráfico global
Internet no es una sola red
Un error común es imaginar internet como una gran red uniforme. En realidad es una...
Cloudflare R2: almacenamiento tipo S3 sin cargos de salida
Qué es R2
R2 es el servicio de object storage de Cloudflare, el equivalente a Amazon S3, Google Cloud Storage o...
Detectar rootkits con rkhunter y chkrootkit
Detectar rootkits con rkhunter y chkrootkit
Un rootkit es un conjunto de herramientas que un atacante instala después...
Dockerfile: crear tu propia imagen paso a paso
Qué es un Dockerfile
Un Dockerfile es un archivo de texto plano que contiene las instrucciones necesarias para...
Exponer tus apps: Services y Ingress
El problema: los Pods son invisibles
Los Pods en Kubernetes aparecen, mueren y cambian de IP sin avisar. Si un...
Grafana + Prometheus: stack profesional de métricas
Grafana + Prometheus: stack profesional de métricas
Si ya creciste más allá de un solo servidor y necesitás...
Hardening inicial de un VPS recién entregado
Lo que harás en este tutorial
Cuando recibes un VPS nuevo viene con configuración de fábrica — adecuada para empezar...
MongoDB básico: instalación y primeros documentos
De tablas a documentos
MongoDB es la base de datos NoSQL más popular del mundo. En lugar de guardar filas en tablas...
Nginx como proxy inverso para Node.js
Nginx como proxy inverso para Node.js
Node.js puede atender peticiones HTTP por sí solo, pero correrlo directamente...
Restic: backup moderno a múltiples destinos
Qué es Restic
Restic es una herramienta de backup escrita en Go, distribuida como un único binario y pensada para ser...
Cloudflare Tunnel: exponer servicios sin abrir puertos
El problema de abrir puertos
La forma clásica de publicar un servicio en internet es abrir un puerto en tu router o...
ConfigMaps y Secrets: configuración sin hardcodear
La regla de oro: config fuera del código
Una aplicación lista para producción nunca lleva sus valores de...
Deploy automático con webhooks y Git pull
El método más simple que funciona
Antes de adoptar herramientas complejas, vale la pena conocer el enfoque clásico:...
Docker Compose: orquestar múltiples contenedores
Qué es Docker Compose
Casi ninguna aplicación real vive sola: necesitas una base de datos, un caché, quizás un worker...
Entornos de desarrollo, staging y producción: por qué y cómo separarlos
Entornos de desarrollo, staging y producción: por qué y cómo separarlos
Cuando un proyecto crece, trabajar...
Instalar Python 3 y entornos virtuales con venv
Instalar Python 3 y entornos virtuales con venv
Python viene preinstalado en casi cualquier VPS Linux moderno, pero...
Monitorear servicios con Monit
Monitorear servicios con Monit
Hay un problema muy común en servidores de producción: MySQL se cae a las 3 de la...
SQLite: la base de datos embebida sin servidor
Una base de datos dentro de un archivo
SQLite es probablemente la base de datos más usada del mundo y la mayoría de...
WireGuard: VPN moderna y simple
Un nuevo enfoque a las VPN
Durante años, si querías montar una VPN tenías dos opciones dominantes: OpenVPN o IPsec....
Alertas por Telegram cuando tu servidor tiene problemas
Alertas por Telegram cuando tu servidor tiene problemas
El correo electrónico es muy bueno para muchas cosas, pero...
Auditar seguridad con Lynis
Auditar seguridad con Lynis
Lynis es un auditor de seguridad para sistemas Unix y Linux. En lugar de detectar malware...
Backup y restore de PostgreSQL con pg_dump y pg_restore
Respaldos sin drama
Hacer backup de PostgreSQL es sencillo una vez conoces sus herramientas. El problema es que mucha...
Configurar una VPN site-to-site con OpenVPN o WireGuard
Qué es una VPN site-to-site
Una VPN tradicional de usuario final (road warrior) conecta un dispositivo individual a...
Desplegar una app Flask o Django con Gunicorn y Nginx
Desplegar una app Flask o Django con Gunicorn y Nginx
Desplegar una aplicación Python web en producción involucra...
Empezar con minikube o k3s en tu VPS
No necesitas cloud para aprender Kubernetes
Una idea falsa muy extendida es que para probar Kubernetes hay que...
Plan de recuperación ante desastres (DRP) para un servidor web
Qué es un DRP
Un Plan de Recuperación ante Desastres (DRP, por sus siglas en inglés) es un documento operativo que...
Volúmenes y redes en Docker: persistir datos y comunicar contenedores
Los contenedores son efímeros
Todo lo que escribes dentro de un contenedor se guarda en una capa de solo-escritura...
Consultas SQL más rápidas: el poder de los índices
Por qué tu consulta tarda 8 segundos
Tienes una tabla de 500.000 pedidos. Un SELECT filtrando por cliente_id tarda...
Crear un servicio systemd para cualquier aplicación
Crear un servicio systemd para cualquier aplicación
Cuando tienes un proceso que debe correr siempre en tu VPS (una...
Desplegar una aplicación web con Nginx + PHP-FPM en Docker
Escenario real
Vamos a desplegar una aplicación PHP (por ejemplo, un sitio hecho con Laravel, Symfony o código...
Estrategias de deploy: blue-green, canary, rolling
Deployar es más que subir archivos
Cuando tu aplicación ya tiene tráfico real, la pregunta deja de ser "¿cómo subo el...
HTTP/3 y QUIC: el futuro del protocolo web
De HTTP/1 a HTTP/3 en pocos años
Durante casi dos décadas, la web se sirvió sobre HTTP/1.1: texto plano sobre TCP,...
SSH deploy sin contraseña con llaves de despliegue
SSH deploy sin contraseña con llaves de despliegue
Cuando automatizas el despliegue de un sitio, llega un momento...
kubectl: los comandos que usarás a diario
kubectl es tu control remoto del cluster
kubectl (pronunciado "kube-control" o "kube-cuddle") es la herramienta de...
Comandos esenciales de Linux para administrar tu VPS
Por qué conocerlos
Un VPS sin panel de control se administra 100% por línea de comandos. Incluso si tienes cPanel o...
Monitorear CPU, memoria y disco en tiempo real
Por qué monitorear
Un servidor que va lento no siempre da mensajes claros. A veces la respuesta está en que la RAM...
Nginx vs Apache: cuál elegir para tu servidor
Los dos grandes
Apache y Nginx son los dos servidores web más usados del planeta. Ambos sirven páginas HTTP/HTTPS,...
Estrategias de backup para un VPS con rsync y rclone
El problema del backup en VPS
En un hosting con cPanel el backup suele estar resuelto por el panel. En un VPS puro,...
Leer e interpretar los logs del servidor Linux
Por qué los logs importan
Cuando algo falla en un servidor, los logs son el primer lugar donde mirar. Cada servicio...