Saltearse al contenido

Instalación

Ventana de terminal
git clone https://github.com/smeisa/smeisa-api.git
cd smeisa-api
Ventana de terminal
npm install

Copia y pega el siguiente contenido en un archivo llamado .env en la raíz del proyecto:

# Base de datos (PostgreSQL)
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=tu_contraseña
DB_DATABASE=api_db
# JWT
JWT_SECRET=Tu_Clave_Secreta_32_Chars_Minimo!
JWT_EXPIRES_IN=1d
# App
PORT=3000
NODE_ENV=development

⚠️ ATENCIÓN: La variable JWT_SECRET debe tener al menos 32 caracteres.

Si se define una clave de longitud menor, la aplicación lanzará un error y no podrá iniciarse. Esto garantiza un nivel mínimo de seguridad para la generación de tokens JWT.

✅ Recomendación: Usa una cadena aleatoria y robusta, por ejemplo:

Ventana de terminal
openssl rand -hex 32

Si no tienes una base de datos local configurada, puedes usar Docker:

Ventana de terminal
docker-compose up -d

Esto levantará un contenedor de PostgreSQL con las variables del .env.


5. Ejecuta la aplicación en modo desarrollo

Sección titulada «5. Ejecuta la aplicación en modo desarrollo»
Ventana de terminal
npm run start:dev

Esto iniciará el servidor en http://localhost:3000.


Una vez que la aplicación esté corriendo, puedes abrir:

http://localhost:3000/docs

Aquí verás todos los endpoints de la API con posibilidad de probarlos directamente.


  • Modo desarrollo:

    Ventana de terminal
    npm run start:dev
  • Modo producción:

    Ventana de terminal
    npm run build
    npm run start:prod
  • Tests:

    Ventana de terminal
    npm run test # Unit tests
    npm run test:e2e # End-to-end tests
    npm run test:cov # Cobertura de tests
  • Lint y formateo:

    Ventana de terminal
    npm run lint
    npm run format

  1. Construir la app:

    Ventana de terminal
    npm run build
  2. Usar PM2 como proceso manager:

    Ventana de terminal
    npm install -g pm2
    pm2 start dist/main.js --name "smeisa-api"