Guide Self-Hosted
Tout ce qu'il faut savoir pour héberger Seogard sur votre serveur.
Getting Started
Prérequis : Docker et Docker Compose installés sur votre serveur.
- Cloner le repo
git clone https://github.com/seogard-software/seogard.git && cd seogard - Copier et configurer le fichier d'environnement
cp .env.example .envÉditez
.envet changez obligatoirement :Variable Description MONGO_PASSWORDMot de passe MongoDB — choisissez un mot de passe fort NUXT_JWT_SECRETClé de signature JWT — 64+ caractères aléatoires NUXT_PUBLIC_APP_URLURL publique de votre instance (ex: https://seo.monsite.com) - Lancer
docker compose -f docker-compose.self-hosted.yml up -d - Ouvrir
http://localhost:3000et créer votre compte administrateur
Le premier compte créé sera l'administrateur (owner). L'inscription se ferme ensuite automatiquement — les membres suivants sont ajoutés par invitation.
Un seul fichier .env pour tout (web + crawler). Les connexions MongoDB et Redis sont gérées automatiquement par Docker.
Architecture
port 3000x2Le Web sert le dashboard et l'API. Les Workers crawlent les pages avec Playwright (navigateur headless). Redis distribue les pages aux workers. MongoDB stocke les données.
Dimensionnement
Chaque worker utilise environ 1 GB de RAM. Le reste est partagé entre MongoDB, Redis et le serveur web. La seule chose à configurer : le nombre de workers.
| RAM serveur | Workers | Pages monitorables |
|---|---|---|
| 4 GB | 1 | ~5 000 |
| 8 GB | 3 | ~15 000 |
| 16 GB | 8 | ~50 000 |
| 32 GB | 15 | ~100 000+ |
WORKER_REPLICAS=3 docker compose -f docker-compose.self-hosted.yml up -dAjuster les workers
Modifiez le nombre de workers selon les ressources de votre serveur :
WORKER_REPLICAS=5 docker compose -f docker-compose.self-hosted.yml up -dOu éditez directement docker-compose.self-hosted.yml → replicas: 5
Notifications email
Optionnel — sans configuration email, Seogard fonctionne mais n'envoie pas d'alertes ni de reset de mot de passe.
- Créez un compte gratuit sur resend.com (100 emails/jour)
- Vérifiez votre domaine dans le dashboard Resend
- Ajoutez dans votre
.env: - Redémarrez :
docker compose -f docker-compose.self-hosted.yml restart web worker
Connexion OAuth
Optionnel — sans OAuth, les utilisateurs se connectent par email + mot de passe.
Ajoutez les clés dans votre .env pour activer chaque provider :
- Créez un OAuth Client sur Google Cloud Console
- Redirect URI :
https://seogard.io/api/auth/oauth/google/callback GOOGLE_CLIENT_ID=...etGOOGLE_CLIENT_SECRET=...
Microsoft
- Créez une app sur Azure Portal → App registrations
- Redirect URI :
https://seogard.io/api/auth/oauth/microsoft/callback MICROSOFT_CLIENT_ID=...etMICROSOFT_CLIENT_SECRET=...
GitHub
- Créez une OAuth App sur GitHub Developer Settings
- Callback URL :
https://seogard.io/api/auth/oauth/github/callback GITHUB_CLIENT_ID=...etGITHUB_CLIENT_SECRET=...
Whitelisting du crawler
Si vos sites sont protégés par un WAF (Cloudflare, Akamai, etc.), vous devez whitelister l'IP de votre serveur.
Voir le guide de whitelistingMise à jour
cd seogardgit pulldocker compose -f docker-compose.self-hosted.yml up --build -dLes données MongoDB sont persistées dans un volume Docker. Aucune perte de données lors d'une mise à jour.
Licence
Seogard est distribué sous Business Source License 1.1 (BSL). Vous pouvez l'utiliser gratuitement pour un usage interne (monitoring de vos propres sites). L'utilisation comme service commercial concurrent est interdite.
Chaque version passe automatiquement en Apache 2.0 après 3 ans.
Lire la licence complèteSauvegarde
# Sauvegarderdocker exec seogard-mongo-1 mongodump --archive > backup-$(date +%Y%m%d).archive# Restaurerdocker exec -i seogard-mongo-1 mongorestore --archive < backup.archive