O que vem instalado no servidor MERN?
- Um projeto React criado com o Vite, em /home/app/uygulama/istemci
- Express 5 e Mongoose 9 em sunucu/server.js, com uma rota /api/saglik que escreve mesmo no MongoDB
- Node.js 26 (repositório NodeSource) e PM2
- MongoDB 8.0 à escuta apenas em 127.0.0.1, protegido por utilizador e palavra-passe
- Caddy, que obtém o seu próprio certificado HTTPS para um endereço sslip.io, por isso o domínio é opcional
- Um ficheiro de swap de 2 GB e uma firewall com apenas as portas 22, 80 e 443 abertas
Que tamanho é necessário para o MERN?
Não há um valor oficial de RAM para MERN. As compilações de Node.js, MongoDB e React partilham a mesma memória neste servidor, e a cache do MongoDB é de 512 MB com 2 GB e de 1,5 GB com 4 GB. Como regra geral, 2 GB é um bom ponto de partida para uma demonstração ou um projeto pequeno, e 4 GB para um projeto com utilizadores reais. O tamanho mais pequeno é de 2 GB de RAM, 1 CPU e um disco de 20 GB. A RAM e o CPU podem subir ou descer, o disco só cresce, e os dados e o endereço IP mantêm-se.
| Utilização | Tamanho | Preço | Escolher |
|---|---|---|---|
| Inicial | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/mês | |
| Médio | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/mês | |
| Potente | 8 GB RAM · 4 vCore · 120 GB NVMe | $13.62/mês |
Para quem é?
- Quem quer um front-end React e uma API Express num só servidor
- Programadores que publicam no seu próprio servidor uma aplicação React criada com ferramentas de IA
- Pequenas equipas que lançam uma demonstração, uma primeira versão ou uma ferramenta interna
O que acontece depois de encomendar?
- Defina o tamanho e conclua o pagamento.
- O servidor arranca e a stack MERN instala-se sozinha. Nos nossos testes com servidores reais, demorou cerca de 4 minutos.
- Abra o Endereço do site no separador Resumo. A página de exemplo diz MongoDB: OK.
- Ligue-se por SSH e escreva su - app. Coloque o projeto em ~/uygulama, com o React em istemci e o Express em sunucu.
- Compile a partir da pasta istemci: npm run build -- --outDir ../sunucu/public --emptyOutDir
- Execute pm2 restart uygulama e verifique a alteração no Endereço do site.
Em todos os servidores
- Cópias de segurança diárias incluídas no preço
- Tráfego ilimitado
- Acesso root completo
- Aumentar ou reduzir a RAM e o CPU mais tarde, e fazer crescer o disco
- Localização: Istanbul · IST-1.
Bom saber
- Ao encomendar, aceita os termos da Server Side Public License (SSPL) do MongoDB.
- O Caddy encaminha os pedidos para 127.0.0.1:3000. Fique à escuta nessa porta no seu próprio ficheiro de servidor e leia o endereço da base de dados em MONGO_ADRES, em sunucu/.env.
- As variáveis que começam por VITE_ são escritas no código durante a compilação e ficam visíveis no navegador. Não coloque segredos nelas e volte a compilar quando um valor mudar.
- Se o ficheiro de entrada não for server.js, redefina o processo: pm2 delete uygulama, pm2 start FILE --name uygulama, pm2 save.
- Existe um único nó MongoDB. Para transações ou change streams com o Mongoose, configure um replica set.
- Manter o Node.js, o MongoDB e os pacotes npm atualizados é da sua responsabilidade.
MERN: perguntas e respostas
Como publico o meu projeto com stack MERN?
Mude com su - app e coloque o código Express em ~/uygulama/sunucu e o código React em ~/uygulama/istemci. Execute npm install em ambas, compile a partir de istemci com npm run build -- --outDir ../sunucu/public --emptyOutDir e execute depois pm2 restart uygulama.
De quanta RAM precisa uma stack MERN?
Uma stack MERN não tem um valor oficial de RAM. Como regra geral, 2 GB é um bom ponto de partida para uma demonstração ou um projeto pequeno, e 4 GB para um projeto com utilizadores reais.
Preciso de configurar o CORS?
Não com esta estrutura. O React é compilado, o Express serve o resultado e a API está no mesmo endereço, por isso o front-end chama diretamente os caminhos que começam por /api. Se alojar o front-end noutro lado, configure o CORS no Express por sua conta.
O React Router dá um 404 quando atualizo uma página?
Não. O server.js de exemplo devolve o index.html para qualquer caminho desconhecido e o React Router trata do resto. Se escrever o seu próprio ficheiro de servidor, mantenha este comportamento e defina as rotas da API antes dele.
Posso ligar-me ao MongoDB a partir do exterior?
Neste servidor MERN, o MongoDB só escuta no interior do servidor. Para usar o Compass, abra um túnel SSH com ssh -L 27017:127.0.0.1:27017 root@IP.
A minha aplicação volta depois de um reinício?
Sim. O PM2 corre no serviço pm2-app, que restaura a lista de processos guardada no arranque. Depois de alterar os processos, guarde a lista com pm2 save.