Despliegue de Rebase en Hetzner Cloud
Hetzner Cloud es ampliamente reconocido por ofrecer una increíble relación rendimiento-precio y es una opción principal para proyectos que requieren estricta soberanía de datos europea y cumplimiento del GDPR (con centros de datos en Núremberg, Falkenstein y Helsinki).
Desplegar Rebase en Hetzner es más fácil a través de Docker Compose en una instancia de nube estándar de Ubuntu.
1. Aprovisionar un Servidor
Sección titulada «1. Aprovisionar un Servidor»- Inicie sesión en su Consola de Hetzner Cloud.
- Haga clic en Añadir Servidor.
- Elija su Ubicación preferida (p. ej., Falkenstein o Núremberg).
- Elija una Imagen: Seleccione Ubuntu 24.04 o App -> Docker CE (esto preinstala Docker por usted).
- Elija un Tipo: Un
CPX21(3 núcleos, 4GB de RAM) oCX32(4 núcleos, 8GB de RAM) proporciona una excelente base de cómputo para ejecutar Rebase + Postgres. - Añada su clave SSH y pulse Crear.
2. SSH y Configuración
Sección titulada «2. SSH y Configuración»Una vez aprovisionado su servidor, obtenga la dirección IP pública.
ssh root@<your-server-ip>Si no eligió la imagen de Docker, instale Docker y Docker Compose explícitamente:
apt update && apt install docker.io docker-compose-v2 -y3. Clonar y Configurar Rebase
Sección titulada «3. Clonar y Configurar Rebase»Clone su proyecto Rebase directamente en la instancia del servidor.
git clone https://github.com/your-username/your-rebase-repo.git /opt/rebasecd /opt/rebaseRebase proporciona un docker-compose.yml listo para usar. Necesitará definir sus variables de entorno de producción. Cree un archivo .env.production:
nano .env.productionAñada sus secretos:
DATABASE_URL=postgresql://rebase:your_secure_db_password@postgres:5432/rebaseJWT_SECRET=generate_a_very_long_secure_random_string_hereNODE_ENV=productionAsegúrese de actualizar docker-compose.yml si desea obtener la contraseña de Postgres de una variable de entorno.
4. Ejecutar la Pila
Sección titulada «4. Ejecutar la Pila»Ponga la pila en línea usando el modo separado:
docker compose --env-file .env.production up -d --buildDocker construirá su backend de Node.js desde el Dockerfile local y pondrá en marcha el contenedor de Postgres. Una vez completado, su aplicación estará funcionando en http://localhost:3001 (interno al servidor).
5. Exponer a través de Caddy o Nginx
Sección titulada «5. Exponer a través de Caddy o Nginx»Nunca debe exponer el puerto 3001 directamente a internet sin SSL. Recomendamos colocar Caddy delante de su instancia de Rebase para aprovisionar automáticamente certificados Let’s Encrypt.
Instalar 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 su Caddyfile:
nano /etc/caddy/CaddyfileAñada lo siguiente (reemplace con su dominio, que debería tener su registro A apuntando a esta IP de Hetzner):
admin.yourdomain.com { reverse_proxy localhost:3001}Reiniciar Caddy:
systemctl restart caddy¡Eso es todo! Su plataforma Rebase está alojada de forma segura completamente dentro de la UE.