Aller au contenu

Installer LeveCadre v0.2.9 « gilbert »

LeveCadre est auto-hébergeable : son installation et son exploitation sont sous la responsabilité de l’administrateur de votre instance. Avant de commencer, lisez ce que l’auto-hébergement implique.

Préparer l'hébergement

Utilisez un serveur avec Docker, Docker Compose, curl et OpenSSL. Le déploiement documenté utilise PostgreSQL 18.6, l'application et un service de sauvegarde. Configurez un domaine et un reverse proxy HTTPS.

Télécharger les fichiers d'installation

Créez un dossier d'installation et téléchargez uniquement les fichiers de déploiement depuis le tag v0.2.9 :

mkdir -p ruchepilot/scripts
cd ruchepilot
curl --fail --location --output docker-compose.yml https://framagit.org/colmaris/levecadre/-/raw/v0.2.9/docker-compose/docker-compose.example.yml
curl --fail --location --output .env https://framagit.org/colmaris/levecadre/-/raw/v0.2.9/.env.example
curl --fail --location --output scripts/init-postgres.sql https://framagit.org/colmaris/levecadre/-/raw/v0.2.9/scripts/init-postgres.sql
curl --fail --location --output backup.sh https://framagit.org/colmaris/levecadre/-/raw/v0.2.9/backup.sh

Le script scripts/init-postgres.sql initialise le rôle PostgreSQL de l'application ; backup.sh est utilisé par le service de sauvegarde. Conservez ces deux fichiers aux emplacements indiqués, avec docker-compose.yml et .env. Exécutez les commandes Compose depuis ce dossier.

Ces commandes concernent une nouvelle installation dans un dossier vide. Pour une instance existante, suivez le guide de mise à jour afin de conserver votre configuration et vos secrets.

Configurer les secrets

Générez des valeurs distinctes avec openssl rand -hex 32 et éditez .env :

RUCHEPILOT_TAG=v0.2.9
RUCHEPILOT_SETUP_TOKEN=remplacer_par_un_secret
POSTGRES_PASSWORD=remplacer_par_un_autre_secret
POSTGRES_ADMIN_PASSWORD=remplacer_par_un_troisieme_secret

Exécutez chmod 600 .env. Gardez .env privé. Le mot de passe administrateur PostgreSQL est distinct de celui du rôle applicatif.

Traefik

Téléchargez la configuration Traefik dans le même dossier :

curl --fail --location --output docker-compose.override.yml https://framagit.org/colmaris/levecadre/-/raw/v0.2.9/docker-compose/docker-compose.override.example.yml

Remplacez ruchepilot.example.tld par votre domaine. Le modèle attend le réseau externe traefik, l'entrypoint https et le résolveur le : adaptez-les à votre proxy. Créez le réseau s'il n'existe pas.

Le fichier principal ne publie pas le port applicatif sur l'hôte. Le proxy doit joindre son port interne 8000. PostgreSQL reste sur le réseau interne database.

Retirez une ancienne variable COMPOSE_FILE pour que Compose charge les deux fichiers par défaut. Avec un autre proxy, préparez une surcharge adaptée et conservez HTTPS.

Adresse publique et QR codes

Définissez RUCHEPILOT_PUBLIC_URL=https://votre-domaine dans .env, sans chemin, requête ni fragment. Cette adresse sert aux liens de récupération et aux QR codes des ruches ; vérifiez son accès depuis un téléphone avant d’imprimer les étiquettes. Les modèles Compose du tag transmettent cette variable à l’application.

La météo des ruchers nécessite un accès HTTPS sortant à api.open-meteo.com depuis le conteneur applicatif.

Démarrer et initialiser

docker compose config --quiet
docker compose pull
docker compose up -d
docker compose ps -a

Ouvrez /setup sur votre domaine HTTPS. Utilisez le secret d'initialisation, un identifiant, une adresse courriel et un mot de passe d'au moins 12 caractères confirmé. Créez ensuite les comptes supplémentaires si nécessaire.

Vérifiez /health, une reconnexion, un rucher, une ruche, une tâche, une photo et un export. Lancez une première sauvegarde et copiez-la hors serveur.

Configurer les courriels

Depuis v0.2.1, LeveCadre inclut la récupération de mot de passe par courriel (#20). Consultez Comptes et courriels pour renseigner les adresses des comptes et configurer SMTP.

Proxies de confiance et données locales en v0.2.9

Renseignez FORWARDED_ALLOW_IPS avec l’IP interne de Traefik (fixée dans son Compose), jamais *. Dans un Compose existant, la variable doit être transmise au service applicatif. Ne remplacez pas vos secrets. L’override d’exemple fournit HSTS et Permissions-Policy ; adaptez l’entrypoint et les noms de middleware à votre installation. Sans CDN ou proxy amont, Traefik ne doit faire confiance à aucune adresse externe pour les en-têtes transmis. Consultez le guide de sécurité.

Avant mise à jour, synchronisez ou exportez les travaux hors connexion. Vérifiez ensuite la reprise des brouillons, le bouton d’effacement et les en-têtes HTTPS. Le stockage IndexedDB ne chiffre rien : activez le chiffrement de l’appareil.