Préparer un serveur chez Hetzner
Ce guide prépare un serveur Hetzner Cloud pour Bring Your Own Server, avec son pare-feu et son stockage de sauvegarde. Skysize installe tout le reste sur le serveur.
Chaque étape comporte deux onglets : cliquez dans Console, ou collez depuis Ligne de commande. Votre choix s'applique à toute la page.
Les commandes utilisent l'outil en ligne de commande hcloud de Hetzner sur votre propre ordinateur. Pour le configurer, créez un jeton d'API avec un accès en lecture et en écriture sous Security → API tokens dans la Hetzner Console, puis exécutez hcloud context create skysize et collez le jeton. Il vous faut aussi une clé SSH dans ~/.ssh/id_ed25519.pub.
1. Choisir vos valeurs
Choisissez l'emplacement le plus proche de vos utilisateurs, et le forfait adapté à votre usage.
| Usage | TYPE | vCPU | RAM | Disque |
|---|---|---|---|---|
| Une branche de production et une de staging | cpx32 (partagé) | 4 | 8 GB | 160 GB |
ccx13 (dédié) | 2 | 8 GB | 80 GB | |
| Production avec des branches de staging et de développement | cpx42 (partagé) | 8 | 16 GB | 320 GB |
ccx23 (dédié) | 4 | 16 GB | 160 GB |
Préférez des vCPU dédiés en production : les vCPU partagés peuvent varier selon la charge des autres clients. Évitez les forfaits CAX : ils sont ARM, et l'installateur refuse de s'y exécuter.
- Console
- Ligne de commande
Dans la Hetzner Console, ouvrez votre projet. Utilisez le même emplacement à chaque étape.
LOCATION=nbg1
NAME=skysize-odoo
TYPE=cpx32
MY_IP=$(curl -4 -s https://ifconfig.me)/32
2. Créer le pare-feu
Un nouveau serveur Hetzner n'a pas de pare-feu, tous ses ports sont donc ouverts. Celui-ci n'autorise que le nécessaire :
| Direction | Protocole | Port | Source | Pourquoi |
|---|---|---|---|---|
| Entrant | TCP | 22 | Votre adresse IP | Votre accès au serveur |
| Entrant | TCP | 80 | Any IPv4 and IPv6 | Certificats et redirections |
| Entrant | TCP | 443 | Any IPv4 and IPv6 | Vos sites Odoo |
N'ajoutez aucune règle sortante, afin que tout le trafic sortant reste autorisé : le serveur en a besoin. Skysize n'a besoin d'aucun port entrant qui lui soit propre. Laissez PostgreSQL (5432) fermé sauf si vous utilisez l'accès à la base de données en lecture seule.
Si votre propre IP change, mettez à jour la règle du port 22 dans la console.
- Console
- Ligne de commande
- Ouvrez Firewalls → Create Firewall, et nommez-le
skysize-odoo. - Ajoutez les trois règles entrantes ci-dessus, et supprimez toutes celles qui sont proposées en plus.
- Cliquez sur Create Firewall. Vous l'appliquez au serveur à l'étape suivante.
hcloud firewall create --name "$NAME"
hcloud firewall add-rule "$NAME" --direction in --protocol tcp --port 22 --source-ips "$MY_IP"
hcloud firewall add-rule "$NAME" --direction in --protocol tcp --port 80 \
--source-ips 0.0.0.0/0 --source-ips ::/0
hcloud firewall add-rule "$NAME" --direction in --protocol tcp --port 443 \
--source-ips 0.0.0.0/0 --source-ips ::/0
3. Créer le serveur
Utilisez Ubuntu 24.04, et conservez l'IPv4 publique exigée par Skysize. L'IP reste la même tant que le serveur existe. Notez-la : vos enregistrements DNS pointeront vers elle.
- Console
- Ligne de commande
Cliquez sur Create Server, et définissez :
| Paramètre | Valeur |
|---|---|
| Location | Le vôtre |
| Image | Ubuntu 24.04 |
| Type | Le forfait de l'étape 1 |
| Networking | Laissez Public IPv4 activé |
| SSH keys | Ajoutez la vôtre |
| Firewalls | skysize-odoo |
| Name | skysize-odoo |
Cliquez ensuite sur Create & Buy now.
hcloud ssh-key create --name "$NAME" --public-key-from-file ~/.ssh/id_ed25519.pub
hcloud server create --name "$NAME" --type "$TYPE" --image ubuntu-24.04 \
--location "$LOCATION" --ssh-key "$NAME" --firewall "$NAME"
hcloud server ip "$NAME"
4. Se connecter au serveur
ssh root@YOUR_SERVER_IP
C'est ici que vous collez la commande d'installation de Skysize.
5. Créer le stockage de sauvegarde
Skysize n'effectue aucune sauvegarde tant qu'un projet n'a pas de cible de sauvegarde. Dans la Hetzner Console :
- Ouvrez Object Storage et créez un bucket privé, idéalement à un autre emplacement que votre serveur.
- Ouvrez Security → S3 credentials et générez une clé. Copiez le secret tout de suite : il n'est affiché qu'une seule fois.
6. Définir la cible de sauvegarde
Une fois votre projet créé, ouvrez ses Paramètres → Cible de sauvegarde, cliquez sur Ajouter une cible et renseignez :
| Champ | Valeur |
|---|---|
| Type | Compatible S3 (Wasabi, R2, MinIO...) |
| Bucket | Le nom de votre bucket |
| Endpoint | https://fsn1.your-objectstorage.com, avec l'emplacement de votre bucket |
| Région | L'emplacement de votre bucket, par exemple fsn1 |
| Préfixe | Le nom du projet |
| ID de clé d'accès et Clé d'accès secrète | La clé de l'étape 5 |
Cliquez sur Tester pour la vérifier depuis votre serveur.
Envoyer des emails depuis Odoo
Hetzner bloque par défaut les ports 25 et 465 sortants sur les serveurs cloud. Utilisez un relais SMTP sur le port 587. Voir Configurer l'email sortant.
Connecter le serveur à Skysize
Votre serveur est prêt. Suivez Configurer votre propre serveur, à partir de l'étape d'enregistrement du serveur. En bref : enregistrez-le dans le tableau de bord, connectez-vous-y en SSH et collez la commande d'installation. Le statut passe à En ligne moins d'une minute après la fin de l'installateur.
Une fois votre premier projet lancé, ajoutez votre domaine.
En cas de problème
Le tableau de bord indique que les ports 80 et 443 ne sont pas joignables. Vérifiez les règles de pare-feu ci-dessus, et que l'IP publique indiquée dans les paramètres du serveur est bien celle que vous avez notée. Cliquez ensuite sur Vérifier à nouveau.
Le serveur reste Hors ligne. Le serveur se connecte en sortie à Skysize, aucune règle entrante ne résout donc ce problème. Exécutez ces commandes sur le serveur :
sudo systemctl status skysize-agent
sudo journalctl -u skysize-agent -n 50
nc -zv cp.skysize.io 50051
Si l'installateur ne s'est pas terminé, ou si le jeton d'enrôlement a déjà été utilisé, utilisez Régénérer le jeton d'enrôlement sur la page du serveur et relancez la commande d'installation.
Le problème persiste ? Ouvrez Assistance dans le tableau de bord et joignez la sortie de ces commandes.