Pourquoi les agences réévaluent leur stack SaaS en 2026
Trois signaux convergent en 2026. Premier signal : Atlassian a revu ses tarifs à la hausse deux fois en dix-huit mois, et annoncé en mars 2026 la fin du support de Jira Server (déjà effectif depuis février 2024), forçant des milliers d'équipes à migrer vers Jira Cloud ou vers un équivalent open source. Deuxième signal : Slack a intégré ses fonctions IA dans le plan Pro sans en baisser le prix, transformant une hausse de valeur en hausse de facture ressentie. Troisième signal : les offres VPS se sont radicalisées vers le bas — il est aujourd'hui possible de monter un serveur de 8 vCPU / 32 Go RAM pour moins de 80 $/mois, ce qui change le seuil de rentabilité du self-hosted.
Résultat : la question "coût d'un développeur vs coût de l'abonnement" — l'objection classique contre le self-hosted — a une réponse de plus en plus précise. Les templates 1-clic et les images Docker préconfigurées ont réduit le bootstrap à moins d'une heure par outil. La maintenance courante tourne autour de 30 à 60 minutes par mois. Pour une agence de 10 personnes, l'arbitrage est devenu calculable.
Ce que le self-hosted change vraiment pour une agence
- Maîtrise des données : vos projets clients, vos dépôts de code et vos messages internes ne quittent jamais votre infrastructure — argument décisif pour les agences soumises à un NDA strict ou qui traitent des données RGPD sensibles.
- Prévisibilité budgétaire : un VPS à coût fixe ne facture pas au siège ni à l'utilisation — vous savez ce que vous payez le 1er janvier pour les 12 mois suivants.
- Pas de surprise tarifaire : les éditeurs SaaS changent leurs plans et leurs prix ; votre VPS, lui, ne vous enverra pas de mail d'annonce de hausse à 30 jours.
- Personnalisation sans limite : accès root, plugins communautaires, intégrations internes — vous n'attendez pas la roadmap d'un éditeur pour une fonctionnalité critique.
- Mutualisation des ressources : un seul VPS peut héberger plusieurs outils en parallèle, ce qui divise le coût d'infrastructure entre Plane, GitLab, Mattermost et Uptime Kuma.
- Indépendance vis-à-vis des acquisitions et des EOL : Jira Server est mort, Bitbucket Server l'est aussi. Sur votre propre serveur, vous décidez de la durée de vie de chaque outil.
Les 7 outils — SaaS vs self-hosted (10 utilisateurs, 1 an)
Faites défiler le tableau
| Outil | Coût SaaS (10 pers./an) | Self-hosted | Économie | Déploiement |
|---|---|---|---|---|
| Gestion de projet (Jira → Plane) | 948 $ (Jira Standard, ~7,90 $/user/mois) | Inclus dans le VPS partagé | 948 $ | < 30 min (Docker Compose) |
| Code & CI/CD (GitHub → GitLab CE) | 480 $ (GitHub Team, 4 $/user/mois) | Inclus dans le VPS partagé | 480 $ | < 45 min (image officielle) |
| Messagerie (Slack → Mattermost) | 870 $ (Slack Pro, 7,25 $/user/mois, annuel) | Inclus dans le VPS partagé | 870 $ | < 20 min (Docker) |
| Wiki / docs (Notion → Outline) | 1 200 $ (Notion Plus, 10 $/user/mois, annuel) | Inclus dans le VPS partagé | 1 200 $ | < 20 min (Docker) |
| Monitoring erreurs (Sentry → Sentry self-hosted) | 312 $ (Sentry Team, 26 $/mois flat, annuel) | Inclus dans le VPS partagé | 312 $ | < 30 min (Docker Compose officiel) |
| Monitoring infra (Datadog → Uptime Kuma) | 1 800 $ (Datadog Infra Pro, 15 $/host/mois, 10 hosts) | Inclus dans le VPS partagé | 1 800 $ | < 10 min (image Docker) |
| Analytics web (GA4 → Plausible / Umami) | 108 $ (Plausible Cloud Starter, ~9 $/mois) | Inclus dans le VPS partagé | 228 $ | < 15 min (Docker) |
| TOTAL annuel | 5 838 $ / an | 299 DH/mois × 12 + ~400 $ maintenance estimée | Jusqu'à 4 600 $ – 5 000 $ / an net |
Calculer votre TCO réel
La formule à appliquer est simple :
TCO SaaS = Σ abonnements annuels (licences seules, hors dépassements)
TCO self-hosted = Coût VPS annuel + Coût de maintenance (heures × taux) + Coût de migration initiale (amortie sur 2 ans)
Économie nette = TCO SaaS − TCO self-hosted
Prenons le cas d'une agence de 10 personnes avec les 7 outils du tableau :
- TCO SaaS : 5 838 $/an
- VPS dédié 8 vCPU / 32 Go RAM : 299 DH/mois × 12
- Maintenance : 1 heure/mois × 60 $/h = 720 $/an
- Migration initiale amortie (1 jour de dev à 500 $, amortie sur 2 ans) : 250 $/an
L'économie nette dépasse 4 000 $/an dans la plupart des scénarios réalistes. Pour les agences qui refacturent l'infrastructure à leurs clients, la marge devient directement visible sur chaque projet.
Le piège classique est de surestimer le coût de maintenance. Les outils modernes (Plane, GitLab CE, Mattermost, Outline) publient leurs mises à jour via Docker et suivent un cycle mensuel stable. Une heure par mois est une estimation haute pour une équipe habituée à Linux.
Prérequis pour une agence de 10 personnes
La tentation est de commencer sur un VPS entrée de gamme. Mauvaise idée : GitLab CE seul exige 4 Go de RAM minimum (8 Go recommandés). La configuration qui fait tenir l'ensemble sans friction est la suivante :
- VPS recommandé pour commencer (3 à 4 outils) : 4 vCPU / 8 Go RAM / 100 Go SSD — à partir de 99 DH/mois
- VPS recommandé pour la stack complète (7 outils) : 8 vCPU / 32 Go RAM / 200 Go SSD — 299 DH/mois
Détail par outil :
- Plane : 2 Go RAM minimum, 4 Go recommandés — léger, s'installe en premier
- GitLab CE : 4 Go RAM minimum, 8 Go recommandés — consommateur, isole-le sur un VPS dédié si vous avez > 15 développeurs actifs
- Mattermost : 1 Go RAM pour < 50 utilisateurs — très léger
- Outline : 1 Go RAM — négligeable
- Sentry self-hosted : 4 Go RAM minimum — le moteur Kafka/Clickhouse est gourmand
- Uptime Kuma : 256 Mo RAM — quasiment rien
- Plausible / Umami : 1–2 Go RAM selon le volume de trafic tracé
Si votre budget VPS est limité, l'ordre de priorité de migration est : Plane d'abord (le plus grand différentiel de prix), puis Mattermost, puis GitLab.
Migrer les 7 outils sur un VPS ServOrbit
Provisionner le VPS et sécuriser l'accès
Commandez un VPS 8 vCPU / 32 Go RAM depuis votre espace agence ServOrbit. Activez l'authentification par clé SSH, désactivez le login par mot de passe et installez Docker + Docker Compose. Temps estimé : 15 minutes.
Installer Plane (gestion de projet)
Clonez le dépôt officiel Plane, copiez le fichier
.env.example, renseignez votre domaine et lancezdocker compose up -d. Configurez un reverse proxy nginx avec HTTPS (Let's Encrypt). Exportez vos données Jira au format CSV depuis Settings > Import/Export. Consultez notre guide détaillé : installer-plane-vps. Temps : 30 minutes.Installer GitLab CE (code & CI/CD)
Utilisez l'image Docker officielle GitLab CE. Configurez le volume de données sur un disque persistant, définissez
external_urlet le SMTP sortant. Importez vos projets GitHub/Bitbucket via l'outil de migration intégré (Settings > Import project). Réactivez vos runners CI : GitLab fournit ses propres runners que vous déployez sur le même VPS ou un VPS annexe. Temps : 45 minutes + temps de migration dépôts.Installer Mattermost (messagerie)
Docker Compose officiel Mattermost en 3 fichiers (.env, docker-compose.yml, volumes). Configurez le SMTP et créez les canaux équivalents à vos espaces Slack. Utilisez l'outil Slack Data Export (disponible dans les plans payants Slack) puis le script d'import Mattermost pour récupérer l'historique des 90 derniers jours. Consultez notre guide : heberger-mattermost. Temps : 20 minutes.
Installer Outline (wiki / documentation)
Outline nécessite une instance Postgres et un bucket S3 compatible (ou MinIO self-hosted) pour les pièces jointes. L'image Docker officielle monte les deux en Compose. Exportez votre espace Notion au format Markdown depuis Settings > Export content, puis utilisez le module d'import Outline. Temps : 20 minutes + temps de réorganisation du wiki.
Installer Sentry self-hosted (monitoring erreurs)
Sentry publie un dépôt
getsentry/self-hostedavec un scriptinstall.shautomatisé. Il monte Kafka, Redis, Postgres et Clickhouse — prévoyez 4 Go de RAM réservés. Migrez vos DSN existants (clés d'API) en mettant à jour la variableSENTRY_DSNdans chacune de vos applications. Temps : 30 minutes.Installer Uptime Kuma (monitoring disponibilité)
Une seule commande Docker. Configurez les mêmes moniteurs que votre ancien tableau Datadog (URLs, ports TCP, ping). Uptime Kuma supporte les notifications Slack, email et webhook — connectez-le à votre nouveau Mattermost. Consultez notre guide : superviser-vps-uptime-kuma. Temps : 10 minutes.
Installer Plausible ou Umami (analytics web)
Remplacez le snippet Google Analytics / Plausible Cloud par la version self-hosted. Plausible fournit un Compose officiel (Postgres + Clickhouse) ; Umami est plus léger (Postgres seul). Consultez notre comparatif pour choisir : plausible-vs-umami. Redirigez votre domaine de tracking et mettez à jour le snippet dans votre CMS. Temps : 15 minutes.
Ce qu'il vaut mieux garder en SaaS — et pourquoi
Le self-hosted n'est pas la réponse universelle. Certains outils restent plus pertinents en SaaS selon votre contexte :
- SSO d'entreprise (Okta, Azure AD) : si votre agence doit s'intégrer au SSO d'un client grand compte, les plans SaaS de Jira ou GitHub proposent des connecteurs SAML/OIDC testés et maintenus. Les équivalents self-hosted existent (GitLab et Plane supportent OIDC) mais la mise en œuvre demande une expertise IdP.
- Conformité HIPAA / SOC 2 : si vous traitez des données de santé américaines, Jira Cloud Entreprise et GitHub Enterprise proposent des BAA signés. Self-hosted vous donne le contrôle mais vous confie aussi la responsabilité de la conformité.
- Outils de facturation et de signature : les pipelines de paiement (Stripe, DocuSign) sont des zones de risque où la maintenance d'une instance self-hosted coûte plus qu'elle ne rapporte.
- Outils de visioconférence (Zoom, Meet) : Jitsi self-hosted fonctionne mais la qualité audio/vidéo à 10 participants simultanés exige une bande passante et un CPU dédiés — la répartition coût/bénéfice est moins favorable.
Dépannage — les erreurs classiques de la migration
1. Sous-dimensionner le VPS pour GitLab. GitLab CE avec Gitaly (stockage des dépôts) consomme 4 Go de RAM au repos. Si vous le faites cohabiter avec Sentry sur un VPS 8 Go, vous flirtez avec le swap au premier gros push. Solution : allouez un VPS dédié pour GitLab, ou migrateurs d'abord les dépôts légers.
2. Oublier les sauvegardes avant la migration. Exportez intégralement vos données SaaS *avant* de résilier les abonnements. Jira bloque l'export si votre abonnement est expiré. GitHub Archive Program ne couvre que les projets publics. Bonne pratique : gardez l'abonnement SaaS actif 30 jours après la migration.
3. Négliger le reverse proxy. Sans nginx ou Caddy devant vos containers, chaque service écoute sur un port différent (3000, 8065, 9000…). Configurez un reverse proxy dès le départ avec des sous-domaines dédiés (plane.votre-agence.com, git.votre-agence.com) et des certificats HTTPS automatiques.
4. Ne pas tester les sauvegardes automatiques. Chaque outil Docker doit avoir une sauvegarde quotidienne du volume Postgres vers un stockage distant (S3, bucket ServOrbit). Testez la restauration dans les 48 heures suivant la mise en production — pas au moment d'une crise.
5. Migrer tous les outils en même temps. La fatigue de migration est réelle. Migrez un outil, attendez deux semaines que l'équipe s'adapte, puis passez au suivant. L'ordre recommandé : Plane → Mattermost → Outline → Uptime Kuma → GitLab → Sentry → Analytics.
Scénarios par taille d'agence
Faites défiler le tableau
| Taille équipe | Stack | VPS ServOrbit | Économie annuelle |
|---|---|---|---|
| 5 personnes | Plane + Mattermost + Uptime Kuma + Plausible | 4 vCPU / 8 Go RAM — 99 DH/mois | 1 800 – 2 400 $/an |
| 10 personnes | Stack complète (7 outils) | 8 vCPU / 32 Go RAM — 299 DH/mois | 4 000 – 5 000 $/an |
| 25 personnes | Stack complète + GitLab dédié + Sentry dédié | 2 × VPS 8 vCPU / 32 Go RAM | 10 000 – 14 000 $/an |