Instalación
Instalación de la API de SMEISA
Sección titulada «Instalación de la API de SMEISA»1. Clona el repositorio
Sección titulada «1. Clona el repositorio»git clone https://github.com/smeisa/smeisa-api.gitcd smeisa-api2. Instala las dependencias
Sección titulada «2. Instala las dependencias»npm install3. Crea el archivo .env
Sección titulada «3. Crea el archivo .env»Copia y pega el siguiente contenido en un archivo llamado .env en la raíz del proyecto:
# Base de datos (PostgreSQL)DB_TYPE=postgresDB_HOST=localhostDB_PORT=5432DB_USERNAME=postgresDB_PASSWORD=tu_contraseñaDB_DATABASE=api_db
# JWTJWT_SECRET=Tu_Clave_Secreta_32_Chars_Minimo!JWT_EXPIRES_IN=1d
# AppPORT=3000NODE_ENV=developmentImportante: seguridad de JWT_SECRET
Sección titulada «Importante: seguridad de JWT_SECRET»⚠️ ATENCIÓN: La variable
JWT_SECRETdebe 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:
openssl rand -hex 324. (Opcional) Levanta PostgreSQL con Docker
Sección titulada «4. (Opcional) Levanta PostgreSQL con Docker»Si no tienes una base de datos local configurada, puedes usar Docker:
docker-compose up -dEsto 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»npm run start:devEsto iniciará el servidor en http://localhost:3000.
6. Accede a la documentación Swagger
Sección titulada «6. Accede a la documentación Swagger»Una vez que la aplicación esté corriendo, puedes abrir:
http://localhost:3000/docsAquí verás todos los endpoints de la API con posibilidad de probarlos directamente.
Comandos útiles
Sección titulada «Comandos útiles»-
Modo desarrollo:
Ventana de terminal npm run start:dev -
Modo producción:
Ventana de terminal npm run buildnpm run start:prod -
Tests:
Ventana de terminal npm run test # Unit testsnpm run test:e2e # End-to-end testsnpm run test:cov # Cobertura de tests -
Lint y formateo:
Ventana de terminal npm run lintnpm run format
Despliegue en producción
Sección titulada «Despliegue en producción»-
Construir la app:
Ventana de terminal npm run build -
Usar PM2 como proceso manager:
Ventana de terminal npm install -g pm2pm2 start dist/main.js --name "smeisa-api"