Centro de Ayuda

NextJS + PostgreSQL + Prisma

Next.js es el framework de React para producción: renderizado del lado del servidor, generación estática, rutas de API y optimización de imágenes, sin tener que configurar nada.

Este Stack lo integra con PostgreSQL a través de Prisma, un ORM que genera un cliente tipado a partir de tu esquema, de modo que las consultas se validan al compilar y no en producción.

Servicios que incluye

Además de tu aplicación, el Stack levanta PostgreSQL, un nginx que recibe el tráfico del puerto 80, un servicio de backups automáticos y el administrador de archivos web.

Estructura del proyecto

text
.
├── app
│   ├── prisma
│   │   └── schema.prisma
│   ├── src
│   │   └── ...
│   ├── next-env.d.ts
│   ├── next.config.js
│   ├── package.json
│   └── tsconfig.json
├── backup
│   └── backup-runner.sh
├── nginx
│   └── default.conf
├── .env.example
├── app.Dockerfile
└── compose.yaml

Puesta en marcha

Instalá el Stack y levantalo:

bash
docker-deploy-stack --stack javascript/nextjs-postgres-prisma
cd /root/stack/javascript/nextjs-postgres-prisma
docker compose up -d

Después reemplazá la aplicación de ejemplo por la tuya, desde Git, por SFTP o desde el administrador de archivos web, siguiendo como-despliego-una-aplicacion-en-un-stack.md. Tu código va en la carpeta app/.

Cada vez que actualices el código, aplicá los cambios:

bash
docker compose up -d --build

Configuración

Los valores editables están en el archivo .env del Stack:

Variable Por defecto Para qué sirve
APP_PORT 80 Puerto público del Stack.
APP_ENV development Entorno de la aplicación.
DB_NAME nextjs Nombre de la base de datos.
DB_USER nextjs Usuario de la base de datos.
BACKUP_ENABLED 1 Backups automáticos: 1 activados, 0 desactivados.
BACKUP_INTERVAL_SECONDS 86400 Cada cuántos segundos se hace un backup.
BACKUP_RETENTION_DAYS 7 Cuántos días se conservan los backups.
POSTGRES_VERSION 16-alpine Versión de la imagen correspondiente.

Después de cambiarlo, aplicá los cambios con docker compose up -d.

Comandos útiles

bash
docker compose ps          # ver los contenedores que están corriendo
docker compose logs -f     # ver los logs en vivo
docker compose restart     # reiniciar los servicios
docker compose down        # detener y eliminar los contenedores