Déploiement de Rebase sur Hetzner Cloud
Hetzner Cloud est largement reconnu pour offrir d’incroyables ratios performance/prix et constitue un choix de premier ordre pour les projets nécessitant une stricte souveraineté des données européennes et une conformité au RGPD (avec des centres de données à Nuremberg, Falkenstein et Helsinki).
Le déploiement de Rebase sur Hetzner est plus facile via Docker Compose sur une instance cloud Ubuntu standard.
1. Provisionner un serveur
Section intitulée « 1. Provisionner un serveur »- Connectez-vous à votre console Hetzner Cloud.
- Cliquez sur Ajouter un serveur.
- Choisissez votre emplacement préféré (par exemple, Falkenstein ou Nuremberg).
- Choisissez une image : Sélectionnez Ubuntu 24.04 ou App -> Docker CE (cela pré-installe Docker pour vous).
- Choisissez un type : Un
CPX21(3 cœurs, 4 Go de RAM) ouCX32(4 cœurs, 8 Go de RAM) offre une excellente base de calcul pour l’exécution de Rebase + Postgres. - Ajoutez votre clé SSH et cliquez sur Créer.
2. SSH et configuration
Section intitulée « 2. SSH et configuration »Une fois votre serveur provisionné, récupérez l’adresse IP publique.
ssh root@<your-server-ip>Si vous n’avez pas choisi l’image Docker, installez Docker et Docker Compose explicitement :
apt update && apt install docker.io docker-compose-v2 -y3. Cloner et configurer Rebase
Section intitulée « 3. Cloner et configurer Rebase »Clonez votre projet Rebase directement sur l’instance du serveur.
git clone https://github.com/your-username/your-rebase-repo.git /opt/rebasecd /opt/rebaseRebase fournit un docker-compose.yml prêt à l’emploi. Vous devrez définir vos variables d’environnement de production. Créez un fichier .env.production :
nano .env.productionAjoutez vos secrets :
DATABASE_URL=postgresql://rebase:your_secure_db_password@postgres:5432/rebaseJWT_SECRET=generate_a_very_long_secure_random_string_hereNODE_ENV=productionAssurez-vous de mettre à jour docker-compose.yml si vous souhaitez extraire le mot de passe Postgres d’une variable d’environnement.
4. Exécuter la pile
Section intitulée « 4. Exécuter la pile »Mettez la pile en ligne en utilisant le mode détaché :
docker compose --env-file .env.production up -d --buildDocker construira votre backend Node.js à partir du Dockerfile local et démarrera le conteneur Postgres. Une fois terminé, votre application fonctionnera sur http://localhost:3001 (interne au serveur).
5. Exposer via Caddy ou Nginx
Section intitulée « 5. Exposer via Caddy ou Nginx »Vous ne devriez jamais exposer le port 3001 directement à Internet sans SSL. Nous recommandons de placer Caddy devant votre instance Rebase pour provisionner automatiquement les certificats Let’s Encrypt.
Installer 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 caddyModifiez votre Caddyfile :
nano /etc/caddy/CaddyfileAjoutez ce qui suit (remplacez par votre domaine, dont l’enregistrement A doit pointer vers cette IP Hetzner) :
admin.yourdomain.com { reverse_proxy localhost:3001}Redémarrez Caddy :
systemctl restart caddyEt voilà ! Votre plateforme Rebase est hébergée en toute sécurité entièrement au sein de l’UE.