Central de Ajuda

NextJS + PostgreSQL + Prisma

Next.js é o framework do React para produção: renderização do lado do servidor, geração estática, rotas de API e otimização de imagens, sem precisar configurar nada.

Este Stack o integra com PostgreSQL através de Prisma, um ORM que gera um cliente tipado a partir do seu esquema, de modo que as consultas são validadas na compilação e não em produção.

Serviços incluídos

Além da sua aplicação, o Stack levanta o PostgreSQL, um nginx que recebe o tráfego na porta 80, um serviço de backups automáticos e o gerenciador de arquivos web.

Estrutura do projeto

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

Primeiros passos

Instale o Stack e inicie-o:

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

Depois substitua o aplicativo de exemplo pelo seu, via Git, por SFTP ou pelo gerenciador de arquivos web, seguindo como-despliego-una-aplicacion-en-un-stack.md. Seu código vai na pasta app/.

Cada vez que atualizar o código, aplique as mudanças:

bash
docker compose up -d --build

Configuração

Os valores editáveis estão no arquivo .env do Stack:

Variável Padrão Para que serve
APP_PORT 80 Porta pública do Stack.
APP_ENV development Ambiente da aplicação.
DB_NAME nextjs Nome do banco de dados.
DB_USER nextjs Usuário do banco de dados.
BACKUP_ENABLED 1 Backups automáticos: 1 ativados, 0 desativados.
BACKUP_INTERVAL_SECONDS 86400 Intervalo, em segundos, entre backups.
BACKUP_RETENTION_DAYS 7 Quantos dias os backups são mantidos.
POSTGRES_VERSION 16-alpine Versão da imagem correspondente.

Depois de alterar, aplique as mudanças com docker compose up -d.

Comandos úteis

bash
docker compose ps          # ver os contêineres que estão em execução
docker compose logs -f     # ver os logs em tempo real
docker compose restart     # reiniciar os serviços
docker compose down        # parar e remover os contêineres
Guia g.0292 · Versão de origem 1 · pt-BR