Guía 3 - Clonar proyecto privado de Github Y Correr el proyecto en un VPS

1. Configuración de Clave SSH

ssh-keygen -t ed25519 -C "tu-correo@ejemplo.com"

Este comando genera un par de claves SSH (pública y privada) usando el algoritmo Ed25519, que es más seguro y eficiente que RSA.

Nota: Presiona Enter para aceptar la ubicación predeterminada (~/.ssh/id_ed25519). Puedes dejar la passphrase vacía para mayor comodidad, aunque reduce la seguridad.

Para ver y copiar tu clave pública:

cat ~/.ssh/id_ed25519.pub

Agrega esta clave en GitHub en Settings → SSH and GPG Keys → New SSH key.

2. Estructura de Carpetas para Proyectos

sudo mkdir -p /var/www/ERP-Sistemas/EMPRESA1

Crea una estructura organizada para cada cliente/empresa:

/var/www/ └── ERP-Sistemas/ ├── EMPRESA1/ ├── EMPRESA2/ └── EMPRESA3/

Mejor práctica: Usar /var/www/ es convencional para proyectos web. El uso de sudo es necesario porque /var/www/ suele tener permisos root.

3. Clonar Repositorio Backend

cd /var/www/ERP-Sistemas/EMPRESA1
git clone git@github.com:SISTEMAS/ERP_Backend.git .

El punto al final del comando git clone clona el repositorio directamente en el directorio actual en lugar de crear una subcarpeta.

4. Clonar Frontend (Opcional)

git clone git@github.com:SISTEMA/ERP_Frontend.git .

Estructura resultante:

/var/www/ERP-Sistemas/EMPRESA1/ ├── (archivos del backend) └── (archivos del frontend)

5. Configuración del Archivo .env

nano .env

Ejemplo de contenido para un backend típico:

DB_HOST=localhost
DB_USER=usuario_db
DB_PASSWORD=contraseña_segura
DB_NAME=nombre_bd
JWT_SECRET=mi_secreto_jwt
PORT=3000
NODE_ENV=production

Importante: Nunca subas el archivo .env a GitHub. Asegúrate de agregarlo a tu .gitignore.

6. Instalación de Dependencias

FIJARSE QUE SEA LA VERSION DE NPM QUE NECESITA
npm install

Este comando:

  • Lee el package.json
  • Descarga todas las dependencias listadas
  • Las instala en la carpeta node_modules

7. Gestión de Procesos con PM2

Instalación de PM2

npm install -g pm2

PM2 es un administrador de procesos para Node.js que permite:

  • Mantener aplicaciones activas permanentemente
  • Balanceo de carga
  • Monitorización de recursos
  • Registro de logs

Iniciar la Aplicación con PM2

pm2 start npm --name "nombre-del-proyecto" -- start

Desglose del comando:

  • --name: Asigna un nombre identificable al proceso
  • -- start: Ejecuta el script "start" definido en package.json

Configurar Inicio Automático

pm2 save
pm2 startup

Esto crea un servicio systemd que reiniciará tus aplicaciones al reiniciar el servidor.

Nota: Ejecuta el comando que pm2 startup te muestre (varía según el sistema operativo).

Comandos Esenciales de PM2

Comando Descripción
pm2 list Muestra todos los procesos gestionados por PM2
pm2 monit Interfaz interactiva para monitorear CPU y memoria
pm2 logs Muestra los logs en tiempo real
pm2 restart nombre Reinicia un proceso específico
pm2 delete nombre Elimina un proceso de la lista de PM2

Actualizar Variables de Entorno

pm2 restart nombre-del-proyecto --update-env

Es necesario cuando modificas el archivo .env para que los cambios surtan efecto.

Consejo: Usa pm2 logs nombre-del-proyecto --lines 200 para ver los últimos 200 líneas del log cuando soluciones problemas.

Guía 3 - Clonar proyecto privado de Github Y Correr el proyecto en un VPS Guía 3 -  Clonar proyecto privado de Github Y Correr el proyecto en un VPS Reviewed by codeAb on 19:21 Rating: 5

No hay comentarios:

Con la tecnología de Blogger.