Pourquoi le changement de tarification Loom force les agences à agir
Le rôle Creator Lite permettait d'ajouter des membres à un espace de travail Loom sans les facturer en tant que créateurs payants. Un designer ou un chef de projet qui enregistre une courte démo client une fois par semaine tenait dans ce rôle sans coût supplémentaire. Atlassian, qui a racheté Loom, a retiré ce rôle pour tous les nouveaux comptes créés après février 2026, et les comptes existants basculent vers la facturation Atlassian au fil de leur migration.
Concrètement, pour une petite équipe avec 10 créateurs payants et 20 utilisateurs Creator Lite : la facture mensuelle passe de 180 $ à 540 $ le mois de la migration. Des témoignages d'utilisateurs individuels signalent des factures passées de 18 $ à 220 $ par mois du jour au lendemain. Le plan Business est facturé 18 $ par utilisateur par mois, sans exception.
Pour une agence qui facture ses clients sur des projets à périmètre fixe, cette variabilité de coût n'est pas acceptable. La capture d'écran async est un outil de communication interne et client — elle doit avoir un coût prévisible, ou être auto-hébergée.
Pourquoi Cap convient à une agence
- Coût fixe : vous payez le VPS, pas un abonnement par siège qui gonfle à chaque recrutement.
- Données hébergées sur votre infrastructure : les captures de maquettes, de démos et de code ne quittent jamais votre serveur.
- Licence AGPL-3.0 : le code est auditable, la roadmap est publique et le projet est actif (plus de 23 000 étoiles sur GitHub au 5 octobre 2026).
- Partage par lien : vos clients reçoivent une URL signée, comme avec Loom, sans créer de compte.
- Domaine personnalisé : vous exposez Cap sous
cap.votre-domaine.com, pas sous un domaine tiers. - Stockage configurable : MinIO embarqué pour démarrer, ou un bucket S3/Cloudflare R2 externe pour la production.
- Interface sobre, sans surcouche IA payante imposée : l'outil fait ce qu'il promet, rien de plus.
- Déploiement en une commande :
docker compose up -ddepuis le dépôt officiel.
Prérequis VPS pour déployer Cap
Cap est composé de quatre services Docker : l'application web (cap-web), une base de données MySQL 8.0 (ps-mysql), un serveur média pour le transcodage (cap-media-server) et MinIO pour le stockage objet compatible S3. L'ensemble consomme environ 1 Go de RAM à vide ; en conditions de production avec plusieurs enregistrements simultanés, prévoyez 2 vCPU et 4 Go de RAM comme base de travail. Comptez 20 Go de disque SSD/NVMe pour les binaires et les vidéos initiales, puis ajoutez ou externalisez le stockage selon le volume.
Autres prérequis :
- Docker Engine 24+ et Docker Compose v2 installés sur le VPS.
- Un sous-domaine dédié (par exemple cap.votre-domaine.com) pointé sur l'IP du VPS.
- Un reverse proxy gérant HTTPS (Caddy ou Nginx avec Certbot).
- Ports 3000 (app), 3456 (serveur média), 3902/3903 (MinIO) accessibles depuis le reverse proxy, mais non exposés publiquement en direct.
Déployer Cap sur votre VPS
Cloner le dépôt officiel
Sur votre VPS, clonez le dépôt CapSoftware et accédez au répertoire racine :
git clone https://github.com/CapSoftware/Cap.git cd CapLe dépôt contient un fichier
docker-compose.template.yml. Copiez-le sous le nomdocker-compose.ymlpour ne pas écraser vos modifications lors d'ungit pullultérieur :cp docker-compose.template.yml docker-compose.ymlConfigurer les variables d'environnement
Créez un fichier
.envà la racine à partir du template fourni, puis éditez les valeurs critiques :cp .env.example .envVariables à définir obligatoirement avant toute exposition publique :
# URL publique de l'application NEXTAUTH_URL=https://cap.votre-domaine.com WEB_URL=https://cap.votre-domaine.com # Secrets — régénérez ces valeurs, ne laissez JAMAIS les défauts NEXTAUTH_SECRET=<chaine-aleatoire-32-chars> DATABASE_ENCRYPTION_KEY=<chaine-aleatoire-32-chars> # Base de données MySQL DATABASE_URL=mysql://root:votre-mot-de-passe@ps-mysql:3306/planetscale # Stockage MinIO embarqué (à remplacer par S3 externe en production) CAP_AWS_ACCESS_KEY=minioadmin CAP_AWS_SECRET_KEY=minioadmin CAP_AWS_BUCKET=cap-media CAP_AWS_REGION=us-east-1 S3_PUBLIC_ENDPOINT=https://cap.votre-domaine.com/s3 S3_INTERNAL_ENDPOINT=http://minio:9000 # Serveur média MEDIA_SERVER_URL=http://cap-media-server:3456 MEDIA_SERVER_WEBHOOK_SECRET=<chaine-aleatoire-32-chars>Si vous ne configurez pas de serveur SMTP, les liens de connexion apparaissent dans les logs du conteneur
cap-web:docker compose logs cap-web. C'est suffisant pour les premiers tests.Démarrer la stack
Lancez les quatre services en arrière-plan :
docker compose up -dVérifiez que tous les conteneurs sont en état
running:docker compose psL'application web écoute sur le port
3000, le serveur média sur3456, MinIO sur3902(API) et3903(console). Consultez les logs si un service reste enrestarting:docker compose logs cap-web --tail 50Configurer le reverse proxy HTTPS avec Caddy
Caddy est la solution la plus directe : il gère les certificats Let's Encrypt automatiquement. Créez un fichier
/etc/caddy/Caddyfileou ajoutez un bloc à votre configuration existante :cap.votre-domaine.com { reverse_proxy localhost:3000 }Rechargez Caddy :
systemctl reload caddySi vous utilisez Nginx, créez un vhost avec
proxy_pass http://127.0.0.1:3000;et obtenez un certificat viacertbot --nginx -d cap.votre-domaine.com.Premier login et création du compte administrateur
Ouvrez
https://cap.votre-domaine.comdans votre navigateur. Cap vous invite à créer un compte en saisissant votre adresse e-mail. Si vous n'avez pas configuré de serveur SMTP, récupérez le lien de connexion dans les logs :docker compose logs cap-web 2>&1 | grep -i 'signin\|magic\|link'Copiez l'URL affichée et collez-la dans votre navigateur pour vous connecter. Le premier compte créé devient administrateur de l'instance.
Configurer un stockage S3 externe (recommandé en production)
MinIO embarqué convient pour les tests, mais pour la production préférez un bucket S3 externe (AWS S3, Cloudflare R2 ou Backblaze B2). Dans les paramètres de l'instance Cap (section Storage), renseignez :
- Access Key et Secret Key de votre fournisseur
- Bucket name et Region
- Public URL du bucket (pour les liens de partage)Mettez à jour les variables
CAP_AWS_*dans votre.env, puis redémarrez le service :docker compose up -d cap-webInviter l'équipe et tester un enregistrement
Depuis le tableau de bord Cap, invitez vos collaborateurs par e-mail. Chaque membre installe l'application de bureau Cap (macOS, Windows) ou utilise l'extension navigateur, et pointe vers l'URL de votre instance dans les paramètres (champ « Custom server »). Faites un enregistrement test et vérifiez que la vidéo apparaît bien dans le tableau de bord et que le lien de partage est accessible depuis un navigateur externe.
Durcissement post-déploiement
Avant d'inviter des clients à visualiser des vidéos, vérifiez ces quatre points :
1. Secrets par défaut remplacés — NEXTAUTH_SECRET, DATABASE_ENCRYPTION_KEY et MEDIA_SERVER_WEBHOOK_SECRET ne doivent jamais être ceux du dépôt. Un openssl rand -hex 32 génère une valeur solide.
2. MinIO non exposé publiquement — les ports 3902 et 3903 de MinIO ne doivent être accessibles que depuis le reverse proxy ou via un réseau Docker interne. Ajoutez 127.0.0.1:3902:9000 dans docker-compose.yml pour lier le port à l'hôte local uniquement.
3. Mises à jour automatisées désactivées par défaut — Cap ne se met pas à jour seul. Planifiez un docker compose pull && docker compose up -d mensuel, précédé d'un snapshot du volume MySQL.
4. Sauvegardes de la base MySQL — un mysqldump quotidien suffit pour les métadonnées (les vidéos elles-mêmes sont dans MinIO ou S3). Exemple avec cron : 0 2 * * * docker exec ps-mysql mysqldump -u root -pvotre-mdp planetscale > /backups/cap-$(date +%F).sql.
Configuration post-déploiement : domaine, stockage et équipe
Une fois Cap opérationnel, trois ajustements rendent l'instance prête pour une utilisation agence :
Domaine personnalisé : si vous avez utilisé un sous-domaine temporaire lors du déploiement, mettez à jour NEXTAUTH_URL et WEB_URL dans .env, redémarrez cap-web et mettez à jour l'entrée DNS. Les liens de partage existants restent valides tant que vous redirigez l'ancien sous-domaine.
Espace de travail : Cap organise les enregistrements par espaces (Spaces). Créez un espace par client ou par projet pour garder les vidéos séparées. Les invités peuvent visualiser sans compte si le lien est public.
Quota de stockage : si vous stockez les vidéos sur MinIO local, surveillez l'espace disque du VPS avec df -h. Un enregistrement Cap pèse entre 10 et 50 Mo selon la durée et la résolution. Envisagez un volume additionnel ou la migration vers S3 externe dès que le volume dépasse quelques dizaines de Go.
Dépannage : erreurs fréquentes
Error: connect ECONNREFUSED 127.0.0.1:3306 — le conteneur MySQL n'est pas encore démarré ou son mot de passe dans DATABASE_URL ne correspond pas à celui défini dans le service ps-mysql. Vérifiez avec docker compose logs ps-mysql et assurez-vous que les variables MYSQL_ROOT_PASSWORD dans docker-compose.yml et DATABASE_URL dans .env sont cohérentes.
L'URL de connexion n'arrive pas par e-mail — sans SMTP configuré, le lien apparaît uniquement dans les logs du conteneur cap-web. Exécutez docker compose logs cap-web 2>&1 | grep http pour le retrouver.
La vidéo se charge indéfiniment après l'enregistrement — le serveur média (cap-media-server) n'est pas joignable depuis cap-web. Vérifiez que MEDIA_SERVER_URL=http://cap-media-server:3456 est bien défini et que les deux services sont sur le même réseau Docker (docker compose ps doit montrer les deux en running).
Le lien de partage renvoie une erreur 404 — S3_PUBLIC_ENDPOINT pointe peut-être vers une URL incorrecte ou MinIO n'est pas accessible de l'extérieur. Si vous utilisez MinIO local, exposez-le derrière le reverse proxy sous un chemin dédié (par exemple /s3/) ou migrez vers un bucket S3 externe.
Le client ne peut pas pointer l'appli de bureau vers votre instance — vérifiez que le champ « Custom server » dans les préférences de l'appli Cap Desktop accepte exactement l'URL publique sans slash final : https://cap.votre-domaine.com.
Cap dans votre stack agence self-hosted
Cap s'intègre naturellement dans une stack où la capture async remplace les réunions de retour client. Associé à Penpot pour le design collaboratif et à Chatwoot pour le support client, il couvre les trois canaux de communication asynchrone d'une agence sans abonnement SaaS variable.
Si votre infrastructure s'appuie déjà sur des outils Atlassian migrés vers des alternatives self-hosted — Jira remplacé par Plane, Confluence par Outline — la migration de Loom vers Cap suit la même logique : coût fixe, données maîtrisées, mises à jour à votre rythme.
Cap reste un projet jeune, avec une communauté en croissance rapide. Pour un usage en production dès aujourd'hui, la combinaison Docker Compose + MinIO ou S3 externe est stable. L'application de bureau macOS est la plus aboutie ; la version Windows est fonctionnelle. L'extension navigateur couvre les cas d'usage de capture d'onglet sans installation lourde.