Implementando Rebase na Hetzner Cloud
A Hetzner Cloud é amplamente reconhecida por oferecer incríveis relações desempenho-preço e é uma das principais escolhas para projetos que exigem estrita soberania de dados europeia e conformidade com o GDPR (com datacenters em Nuremberg, Falkenstein e Helsinque).
Implementar o Rebase na Hetzner é mais fácil via Docker Compose em uma instância de nuvem Ubuntu padrão.
1. Provisionar um Servidor
Seção intitulada “1. Provisionar um Servidor”- Faça login no seu Console Hetzner Cloud.
- Clique em Adicionar Servidor.
- Escolha sua Localização preferida (ex: Falkenstein ou Nuremberg).
- Escolha uma Imagem: Selecione Ubuntu 24.04 ou Aplicativo -> Docker CE (isso pré-instala o Docker para você).
- Escolha um Tipo: Um
CPX21(3 núcleos, 4GB RAM) ouCX32(4 núcleos, 8GB RAM) oferece excelente capacidade computacional de base para executar o Rebase + Postgres. - Adicione sua chave SSH e clique em Criar.
2. SSH e Configuração
Seção intitulada “2. SSH e Configuração”Assim que seu servidor for provisionado, obtenha o endereço IP público.
ssh root@<your-server-ip>Se você não escolheu a imagem Docker, instale o Docker e o Docker Compose explicitamente:
apt update && apt install docker.io docker-compose-v2 -y3. Clonar e Configurar o Rebase
Seção intitulada “3. Clonar e Configurar o Rebase”Clone seu projeto Rebase diretamente na instância do servidor.
git clone https://github.com/your-username/your-rebase-repo.git /opt/rebasecd /opt/rebaseO Rebase fornece um docker-compose.yml pronto para uso. Você precisará definir suas variáveis de ambiente de produção. Crie um arquivo .env.production:
nano .env.productionAdicione seus segredos:
DATABASE_URL=postgresql://rebase:your_secure_db_password@postgres:5432/rebaseJWT_SECRET=generate_a_very_long_secure_random_string_hereNODE_ENV=productionCertifique-se de atualizar docker-compose.yml se quiser puxar a senha do Postgres de uma variável de ambiente.
4. Executar a Pilha
Seção intitulada “4. Executar a Pilha”Coloque a pilha online usando o modo desanexado:
docker compose --env-file .env.production up -d --buildO Docker construirá seu backend Node.js a partir do Dockerfile local e iniciará o contêiner Postgres. Uma vez concluído, seu aplicativo estará em execução em http://localhost:3001 (interno ao servidor).
5. Expor via Caddy ou Nginx
Seção intitulada “5. Expor via Caddy ou Nginx”Você nunca deve expor a porta 3001 diretamente à internet sem SSL. Recomendamos colocar o Caddy na frente da sua instância Rebase para provisionar automaticamente certificados Let’s Encrypt.
Instale o Caddy:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-httpscurl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpgcurl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.listsudo apt update && sudo apt install caddyEdite seu Caddyfile:
nano /etc/caddy/CaddyfileAdicione o seguinte (substitua pelo seu domínio, que deve ter seu registro A apontando para este IP da Hetzner):
admin.yourdomain.com { reverse_proxy localhost:3001}Reinicie o Caddy:
systemctl restart caddyÉ isso! Sua plataforma Rebase está hospedada de forma segura inteiramente dentro da UE.