“Instala AlmaLinux y n8n en tu laptop: guía paso a paso para crear tu propio servidor accesible desde cualquier lugar”
📑 Índice
- Introducción: ¿Por qué usar AlmaLinux y n8n en tu laptop?
- Requisitos previos
- Instalación de AlmaLinux en la laptop
- Configuración inicial del sistema
- Instalación de Docker y Docker Compose
- Configuración de n8n con Postgres
- Configuración de Nginx como proxy inverso
- Ajustes de SELinux y firewall
- Configuración de Cloudflare Tunnel y dominio (ejemplo: n8nwebsite.com)
- Apertura de puertos en el módem Telmex
- Evitar suspensión de la laptop y mantener Ethernet activo
- Scripts de verificación y recuperación automática
- Plan de mantenimiento semanal
- Conclusión
1. Introducción
Convertir tu laptop en un servidor con AlmaLinux y n8n te permite crear y ejecutar flujos de automatización accesibles desde cualquier parte del mundo. Con esta guía paso a paso, podrás replicar la configuración que hicimos y tener tu propio servidor confiable, seguro y siempre disponible.
2. Requisitos previos
- Laptop con al menos 8 GB de RAM y 50 GB de espacio libre.
- Conexión a internet estable (Ethernet recomendado).
- Un dominio (ejemplo: n8nwebsite.com). Oferta de dominio web aqui
- Acceso al módem Telmex para abrir puertos.
3. Instalación de AlmaLinux
- Descarga la ISO desde AlmaLinux.org.
- Graba la ISO en un USB con Rufus o similar.
- Arranca la laptop desde el USB y sigue el instalador.
- Selecciona particionado automático y crea usuario administrador.
4. Configuración inicial del sistema
bash
sudo dnf update -y
sudo dnf install epel-release -y
sudo dnf install nano git curl wget htop -y
5. Instalación de Docker y Docker Compose
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io -y
sudo systemctl enable --now docker
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
6. Configuración de n8n con Postgres
En /home/usuario/n8n/docker-compose.yml:
version: "3.1"
services:
n8n:
image: n8nio/n8n:2.0.0
restart: always
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=db
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n_db
- DB_POSTGRESDB_USER=n8n_user
- DB_POSTGRESDB_PASSWORD=seguro123
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=clave_segura
volumes:
- ./data:/home/node/.n8n
db:
image: postgres:15
restart: always
environment:
- POSTGRES_USER=n8n_user
- POSTGRES_PASSWORD=seguro123
- POSTGRES_DB=n8n_db
volumes:
- ./db:/var/lib/postgresql/data
Levanta los contenedores:
docker compose up -d
7. Configuración de Nginx como proxy inverso
Archivo /etc/nginx/conf.d/n8n.conf:
server {
listen 80;
server_name n8nwebsite.com;
location / {
proxy_pass http://127.0.0.1:5678/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Verifica y recarga:
sudo nginx -t
sudo systemctl reload nginx
8. Ajustes de SELinux y firewall
sudo setsebool -P httpd_can_network_connect 1
sudo dnf install ufw -y
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
9. Configuración de Cloudflare Tunnel y dominio
- Instala Cloudflared:bash
sudo wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb sudo dnf install ./cloudflared-linux-amd64.deb -y - Autentica con tu cuenta Cloudflare:bash
cloudflared tunnel login - Crea túnel:bash
cloudflared tunnel create n8nwebsite - Configura
/etc/cloudflared/config.yml:yamltunnel: n8nwebsite credentials-file: /etc/cloudflared/n8nwebsite.json ingress: - hostname: n8nwebsite.com service: http://localhost:80 - service: http_status:404 - Inicia servicio:bash
sudo systemctl enable --now cloudflared
10. Apertura de puertos en el módem Telmex
- Accede a
192.168.1.254. - Ve a Configuración avanzada → NAT/Puertos.
- Abre puertos 80 y 443 hacia la IP local de tu laptop.
- Guarda y reinicia el módem.
11. Evitar suspensión y mantener Ethernet activo
En /etc/systemd/logind.conf:
HandleLidSwitch=ignore
HandleLidSwitchDocked=ignore
HandleSuspendKey=ignore
HandleHibernateKey=ignore
Aplica:
sudo systemctl restart systemd-logind
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
12. Scripts de verificación y recuperación automática
check_n8n.sh: verifica servicios y contenedores.
check_and_fix_n8n.sh: reinicia automáticamente si algo falla
🔍 Script de verificación (check_n8n.sh)
#!/bin/bash
# Script de verificación de estado de n8n y servicios relacionados
echo "🔍 Verificando estado de servicios del sistema..."
systemctl is-active --quiet docker && echo "✅ Docker está activo" || echo "❌ Docker está caído"
systemctl is-active --quiet nginx && echo "✅ Nginx está activo" || echo "❌ Nginx está caído"
systemctl is-active --quiet cloudflared && echo "✅ Cloudflared está activo" || echo "❌ Cloudflared está caído"
echo ""
echo "🔍 Verificando contenedores de n8n y Postgres..."
docker ps --filter "name=n8n-n8n-1" --filter "name=n8n-db-1"
echo ""
echo "🔍 Probando acceso local a n8n..."
curl -Is http://127.0.0.1:5678 | head -n 1
echo ""
echo "🔍 Probando acceso vía Nginx..."
curl -Is http://127.0.0.1:80 | head -n 1
echo ""
echo "🔍 Probando acceso externo (Cloudflare Tunnel)..."
curl -Is https://n8nwebsite.com | head -n 1
echo ""
echo "✅ Verificación completa."
🔧 Script combinado de verificación y recuperación (check_and_fix_n8n.sh)
#!/bin/bash
# Script de verificación y recuperación automática de n8n y servicios relacionados
echo "🔍 Verificando servicios del sistema..."
# Docker
if systemctl is-active --quiet docker; then
echo "✅ Docker está activo"
else
echo "❌ Docker está caído, iniciando..."
sudo systemctl start docker
fi
# Nginx
if systemctl is-active --quiet nginx; then
echo "✅ Nginx está activo"
else
echo "❌ No esta activo
13. Plan de mantenimiento semanal
- Lunes: revisar servicios (
systemctl status). - Miércoles: revisar logs (
tail -n 50 /var/log/nginx/error.log). - Viernes: actualizar sistema (
sudo dnf update -y). - Domingo: backup automático con cron (
pg_dump).
14. Conclusión
Con esta guía paso a paso, tu laptop con AlmaLinux se convierte en un servidor confiable para n8n, accesible desde cualquier parte del mundo con tu dominio (ejemplo: n8nwebsite.com). Has configurado Docker, Nginx, SELinux, Cloudflare Tunnel, firewall, apertura de puertos en Telmex y ajustes de energía para que el sistema nunca se suspenda.
Tu servidor ahora está seguro, estable y siempre disponible 🚀.
