Central de Ajuda

React + Express + MongoDB

O clássico stack MERN: React para a interface, Express sobre Node.js para a API e MongoDB como banco de dados de documentos.

É a combinação indicada quando o modelo de dados é flexível ou muda com frequência, porque o MongoDB não impõe um esquema fixo e guarda documentos semelhantes aos objetos que você já usa em JavaScript.

Serviços incluídos

Além da sua aplicação, a Stack levanta o MongoDB, 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
.
├── backend
│   ├── config
│   │   ├── config.js
│   │   ├── config.json
│   │   └── messages.js
│   ├── db
│   │   └── index.js
│   ├── logs
│   │   └── .gitkeep
│   ├── models
│   │   └── ...
│   ├── routes
│   │   └── index.js
│   ├── utils
│   │   └── ...
│   ├── Dockerfile
│   ├── package-lock.json
│   ├── package.json
│   └── server.js
├── backup
│   └── backup-runner.sh
├── frontend
│   ├── public
│   │   ├── favicon.ico
│   │   ├── index.html
│   │   ├── logo192.png
│   │   ├── logo512.png
│   │   ├── manifest.json
│   │   └── robots.txt
│   ├── src
│   │   ├── ...
│   │   ├── App.js
│   │   ├── App.scss
│   │   ├── App.test.js
│   │   ├── custom.scss
│   │   ├── index.css
│   │   ├── index.js
│   │   ├── logo.svg
│   │   └── serviceWorker.js
│   ├── Dockerfile
│   ├── package-lock.json
│   └── package.json
├── nginx
│   └── default.conf
├── .env.example
└── compose.yaml

Inicialização

Instale a Stack e inicie-a:

bash
docker-deploy-stack --stack javascript/react-express-mongodb
cd /root/stack/javascript/react-express-mongodb
docker compose up -d

Depois substitua a aplicação de exemplo pela sua, 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/.

Sempre 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 da Stack:

Variable Por defecto Para qué sirve
APP_ENV development Ambiente da aplicação.
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.
MONGO_VERSION 4.2.0 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 ao vivo
docker compose restart     # reiniciar os serviços
docker compose down        # parar e remover os contêineres
Guia g.0295 · Versão de origem 1 · pt-BR