Desplegar un proyecto Next.js en una VPS de Hostinger puede parecer un desafío, pero con esta guía detallada lo lograrás de forma rápida y eficiente. Ya sea que tu dominio esté configurado en Hostinger o apuntando a la IP de tu VPS desde un proveedor externo, aquí te mostrare cómo hacerlo paso a paso.
Nota: Usa el código de referencia 1EDUARDO804 para obtener un 20% de descuento en Hostinger.
##1. Configuración Inicial de tu VPS en Hostinger
Sigue estos pasos para configurar tu VPS:
- Compra tu VPS en Hostinger y selecciona Ubuntu como sistema operativo.
- Crea una contraseña segura para tu VPS y guarda tanto el nombre de host como tu clave SSH. Copia tu clave SSH localmente con:
pbcopy < ~/.ssh/id_rsa.pub
- Copia la IP de tu VPS para conectarte en los siguientes pasos.
##2. Conexión SSH y Actualización del Servidor
Conéctate a tu VPS usando SSH y asegúrate de actualizar el sistema para mantenerlo seguro y eficiente:
ssh usuario@123.123.123.123
sudo apt update && sudo apt upgrade
Verifica si git está instalado:
git --version
Si no lo está, instálalo con:
sudo apt install git
##3. Clonación de tu Proyecto Next.js
Clona tu proyecto desde GitHub (recuerda que necesitarás un token de acceso personal):
git clone https://github.com/tu_usuario/tu_proyecto.git
cd tu_proyecto
##4. Instalación de NVM y Node.js
Usa NVM (Node Version Manager) para instalar la versión LTS de Node.js:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
nvm install --lts
##5. Instalación de Paquetes y Ejecución del Proyecto
Dentro del directorio de tu proyecto, instala las dependencias:
npm install
Ejecuta el proyecto en modo desarrollo o producción:
npm run dev # Modo desarrollo
npm run build && npm start # Modo producción
##6. Configuración de PM2 para Producción
PM2 garantiza que tu aplicación permanezca activa incluso después de un reinicio del servidor:
npm install -g pm2
pm2 start npm -- start
pm2 list # Verifica que tu aplicación esté en ejecución
##7. Instalación y Configuración de Nginx
Nginx funciona como un proxy inverso para dirigir las solicitudes HTTP a tu aplicación Next.js:
sudo apt install nginx
Crea un archivo de configuración para tu dominio en /etc/nginx/sites-available/tudominio:
sudo nano /etc/nginx/sites-available/tudominio
Agrega la siguiente configuración:
server {
listen 80;
listen [::]:80;
server_name tudominio.com www.tudominio.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Crea un enlace simbólico y reinicia Nginx:
sudo ln -s /etc/nginx/sites-available/tudominio /etc/nginx/sites-enabled/
sudo nginx -t # Verifica la configuración
sudo service nginx restart
##8. Instalación de Certificados SSL con Certbot
Protege tu sitio con Certbot:
Instala snapd si no lo tienes:
sudo apt install snapd
Instala Certbot:
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Genera los certificados SSL:
sudo certbot --nginx -d tudominio.com -d www.tudominio.com
Ingresa un correo electrónico para recibir notificaciones sobre la renovación del certificado.
##9. Actualización del Proyecto
Cuando necesites actualizar tu proyecto:
pm2 stop npm
git pull origin main # O la rama que uses
npm install
npm run build
pm2 start npm -- start
Recuerda puedes usar el código de referencia 1EDUARDO804 para obtener un 20% de descuento en Hostinger.
¡Felicidades, tu proyecto Next.js ya está desplegado en tu VPS de Hostinger!