Guide complet pour installer et mettre à jour Road To sur votre propre infrastructure avec Docker et docker-compose.selfhost.yml.
Ce guide décrit l'installation de Road To en auto-hébergement (self-hosted) avec Docker, du téléchargement de l'image jusqu'à la mise à jour d'une instance existante. Pour les tarifs et les licences, consultez la page Tarifs.
app)Récupérez l'image Docker officielle de Road To, publiée sur Docker Hub sous baptman87/road-to-next (multi-arch amd64/arm64) :
docker pull baptman87/road-to-next
La stack self-hosted référence cette image par défaut via la variable ROADTO_IMAGE dans docker-compose.selfhost.yml :
services:
app:
image: ${ROADTO_IMAGE:-baptman87/road-to-next:latest}
docker-compose.selfhost.yml et .env.example du dépôt Road To.cp .env.example .env
docker compose -f docker-compose.selfhost.yml up -d
La stack lance trois services : app (Road To), postgres (PostgreSQL 17) et redis (Redis 7). Le service app attend que postgres et redis soient en bonne santé (healthcheck) avant de démarrer.
.envLe fichier .env (basé sur .env.example) configure l'application et la base de données. Variables principales :
| Variable | Description |
|---|---|
POSTGRES_PASSWORD | Mot de passe PostgreSQL — requis, sans valeur par défaut |
POSTGRES_USER / POSTGRES_DB | Utilisateur et base PostgreSQL (défaut : roadto) |
BETTER_AUTH_URL | URL publique de l'instance (ex. https://roadto.mondomaine.fr) |
BETTER_AUTH_SECRET | Secret de session — générer avec openssl rand -base64 32 |
APP_PORT | Port exposé sur l'hôte (défaut 3000) |
RESEND_API_KEY / EMAIL_FROM | Envoi des emails transactionnels (requis) |
GEMINI_API_KEY / AI_CHAT_HMAC_SECRET | Assistant IA et génération de templates (optionnel) |
GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET, GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET | Connexion OAuth (optionnel) |
DATABASE_URL, DATABASE_URL_UNPOOLED et REDIS_URL sont construites automatiquement par docker-compose.selfhost.yml à partir des services postgres et redis — ne les définissez pas manuellement en mode compose.
Aucune étape manuelle n'est requise pour la base de données : l'image applique automatiquement les migrations Prisma au démarrage du conteneur app (entrypoint prisma migrate deploy), une fois postgres prêt.
Une fois la stack démarrée, l'application est accessible sur http://localhost:${APP_PORT:-3000} (ou sur l'URL configurée via BETTER_AUTH_URL derrière votre reverse proxy). Créez votre premier compte et votre organisation depuis l'écran d'inscription.
Pour mettre à jour une instance existante vers la dernière version de l'image :
docker compose -f docker-compose.selfhost.yml pull
docker compose -f docker-compose.selfhost.yml up -d
Les migrations Prisma sont réappliquées automatiquement au redémarrage du conteneur app, sans intervention manuelle.