[ AJUDA ] Como faço deploy de uma API+DB em uma VPS?
Olá, estou estudando desenvolvimento a cerca de um ano, ainda não fiz nenhuma atuação profissional. Estou para pegar um projeto que farei tudo nele, e queria saber se pessoal podem me tirar duvidas se posso por exemplo utilziar uma vps como a da hostinger para subir uma api e um banco de dados e se der pra subir precisaria de conteiners/docker? Ou eu precisaria assinar uma plataforma de hospedagem só de banco?
pode usar o dokku pra mim uma das melhores ferramentas pra esse https://dokku.com
Se for para fins comerciais, você deveria pegar alguma mais gerenciado, pois se fizer tudo na VPS, você precisa garantir que está fazendo os backup, e se sua maquina der problema ?
Se for iniciante eu iria de hospedagem compartinhada pois está tudo configurado e eles oferecem banco gerenciado, vai de você.
Se tiver grana e se for o caso para o projeto poderia estar vendo um Digital Ocean, Heroku, AWS, Azure.
[EDIT] Se for projeto pessoal para aprender eu iria de AWS, esquece hospegem compatilhada, abriria um conta e usava o free tier, você aprendendo IAM, EC2, RDS, Route 53 e S3 te garanto vai ser um up e tanto na sua jornada como dev.
Fala mano, acho que esse vídeo pode te ajudar: https://youtu.be/e5CLi7QUmc0?si=eL4gp_EtqSETQlyE
Bom dia, tudo bom? Tenho um projeto que desenvolvi que utilizo uma VPS da hostinger, nele estão POSTGRES e uma API em Spring rodando, roda tranquilo, mas tenho problemas que eles fazem manutenção e desligam os servidores ocasionando em alguns timeouts para usuários do sistema rs. Mas sim, é possivel ter uma VPS rodando com o banco e api no mesmo ambiente, lembrando que VPS é como se fosse uma máquina normal com recursos limitados então saiba bem utilizar eles
Estava com o mesmo problema em relação a banco de dados, resolvi usar a turso.tech que basicamente é um sqlite online e plano gratuito deles é bom
Use a melhor ferramenta Open source coolify e agradeça-me depois 😎
Eu uso a Hostinger para hospedar uma aplicação minha com NestJS + Postgres e funciona muito bem. Já tem mais de 1 ano e nunca tive problemas. O melhor é você pegar a VPS e instalar o colify que transforma sua VPS em uma verdadeira AWS (rs). Pelo colify você consegue subir aplicações diretas do seu Githiub e ele faz todo o gerenciamento. Muito bom.
Hoje mesmo aluguei uma VPS na Hostinger "KVM 2". Minha ideia é colocar alguns projetos meus para uso pessoal, pois já tenho experiência no uso de VPS.
- [AJUDA] Como faço o deploy de uma API+DB em uma VPS?
Resumidamente, uma VPS é uma máquina normal que tem um IP público. Ou seja, é só fazer a mesma coisa que foi feita no seu PC na VPS e rodar o projeto normalmente.
E como faz para acessar? Quando você aluga uma VPS, a empresa fornece o IP da máquina. Sendo assim, basta rodar o projeto e, ao invés de usar o localhost:4098, você vai usar o IP da máquina, por exemplo: http://111.213.54.87:4098. Se o IP for válido e tiver algo rodando nessa porta, com a porta liberada, o projeto vai abrir.
Também tem a questão do domínio e de ativar HTTPS, mas isso é bem simples. Basta usar o Nginx e o Certbot.
Tbm tem que tomar muito cuidado com a questão da segurança, da vps, instalar um bom antivírus, usar um chave para se conectar, firewall, waf para aplicação, log e análise de log para saber se s estão tentando invadir sua aplicação, proteção do banco de dados, configuração correta do contêiner....enfim, parece ser algo muito trabalhoso, mas tem vários tutoriais e vídeos explicando como ter uma configuração minimamente decente...espero ter ajudado
Olá, boa noite
Na minha experiência, tudo depende do quanto quer investir, tamanho do projeto, demanda dos recursos, etc.
Se quer rodar a aplicação e o banco de dados na mesma máquina, não tem problema, o mesmo se aplica a rodar em máquinas separadas. Ter duas maquinas é ter que cuidar de dois ambientes, e isso pode ser complicado.
No começo, utilize uma máquina somente, faça funcionar, não se preocupe com otimização prévia, espere precisar chegar nesse ponto pra dai otimizar.
Sobre docker, pense que ele é seu aliado, se você ver sobre Docker Compose, vai ver que ele é uma forma de rodar varios container de uma vez só, e em um arquivo compose.yaml
você coloca a definição do seu banco de dados e aplicação juntos. Eu 100% recomendo tirar um tempo e aprender docker, vai te ajudar muito no futuro.