[{"data":1,"prerenderedAt":184},["ShallowReactive",2],{"seo-verification":3,"blog-self-host-atuin-vps-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-self-host-atuin-vps-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":116,"ctaBody":117,"ctaButton":118,"ctaUrl":119,"relatedPosts":120},444,"self-host-atuin-vps",{"fr":10,"en":12,"ar":13,"es":14},"self-host-atuin-on-a-vps-to-sync-your-shell-history","atuin-على-vps-مزامنة-سجل-الأوامر-مشفر","sincronizar-historial-terminal-con-atuin-en-vps","Synchroniser son historique shell avec Atuin sur VPS","Hébergez vous-même le serveur Atuin sur un VPS et retrouvez n'importe quelle commande tapée sur vos machines en moins d'une seconde, chiffrée côté client.",7,0,false,"2026-10-15T00:00:00+00:00","2026-10-16T01:57:35+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},2,"Automatisation","automatisation","bg-brand-action\u002F10 text-brand-action",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-atuin-vps-poster.svg","Atuin remplace le fichier `.zsh_history` par une base SQLite locale et synchronise cet historique entre vos machines via un serveur que vous hébergez vous-même. Toutes les commandes sont chiffrées avant d'être envoyées : le serveur ne voit jamais leur contenu. Résultat : un historique consultable en une fraction de seconde, partagé entre laptops, serveurs et VM, sans confier vos données à un tiers.",[34,38,49,52,74,77,81,84,113],{"type":35,"title":36,"body":37},"h2","Pourquoi synchroniser son historique shell","Travailler sur plusieurs machines devrait être transparent. En pratique, la commande `kubectl rollout undo deployment\u002Fapi` tapée sur le laptop n'est jamais dans le terminal du serveur de CI, et le `docker compose exec` d'il y a trois semaines est introuvable dans `~\u002F.zsh_history` parce que la rotation a écrasé les entrées anciennes.\n\nAtuin résout les deux problèmes à la racine : il stocke chaque commande dans SQLite avec son contexte (heure, durée, code de sortie, répertoire), et il synchronise cette base entre vos machines via un serveur que vous contrôlez. La recherche s'exécute localement — aucune latence réseau au moment de rappeler une commande — et la synchronisation se fait en arrière-plan. L'interface de recherche (`Ctrl+R`) devient un index exhaustif de tout ce que vous avez tapé, sur n'importe quel poste, depuis le premier jour.",{"type":39,"title":40,"items":41},"ul","Bénéfices concrets d'Atuin auto-hébergé",[42,43,44,45,46,47,48],"Retrouvez n'importe quelle commande tapée sur n'importe quelle machine en moins d'une seconde via `Ctrl+R`.","Chiffrement côté client (AES-256) : le serveur ne voit jamais le contenu de votre historique.","Contexte riche par entrée : code de sortie, durée d'exécution, répertoire courant, hostname.","Aucune donnée envoyée à un tiers — vous hébergez, vous maîtrisez.","Binaire Rust sans dépendances lourdes : tourne sur le VPS Start à partir de 99 DH\u002Fmois.","Supports zsh, bash, fish, nushell et PowerShell — un seul serveur pour toute votre flotte.","Statistiques d'usage intégrées (`atuin stats`) : vos commandes les plus fréquentes, vos pics d'activité.",{"type":35,"title":50,"body":51},"Prérequis","**VPS** : le serveur Atuin est un binaire Rust compilé avec une base SQLite embarquée. Il consomme moins de 50 Mo de RAM au repos, ce qui le rend compatible avec le VPS Start. Comptez 512 Mo de RAM disponibles pour l'ensemble (système + processus Atuin), 5 Go de stockage SSD pour la base d'historique à long terme. Un noyau Linux récent (Debian 12 ou Ubuntu 22.04+) convient parfaitement.\n\n**Docker et Docker Compose** doivent être installés sur le VPS — c'est le mode de déploiement recommandé par le projet. Si votre VPS est neuf, installez Docker via le \u003Ca href=\"https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Finstall\u002F\">script officiel\u003C\u002Fa> ou le template Docker du Marketplace ServOrbit.\n\n**Un nom de domaine** pointant vers le VPS est recommandé (`atuin.votre-domaine.com`, enregistrement A) pour pouvoir générer un certificat TLS automatique. Le certificat est indispensable : le client Atuin refuse de synchroniser en clair par défaut.",{"type":53,"title":54,"steps":55},"steps","Installer le serveur Atuin sur le VPS",[56,59,62,65,68,71],{"title":57,"body":58},"Se connecter au VPS et créer un répertoire de travail","Connectez-vous en SSH à votre VPS :\n\n```bash\nssh root@\u003Cip-du-vps>\n```\n\nCréez un répertoire dédié :\n\n```bash\nmkdir -p \u002Fopt\u002Fatuin && cd \u002Fopt\u002Fatuin\n```",{"title":60,"body":61},"Rédiger le fichier docker-compose.yml","Créez le fichier de composition :\n\n```bash\ncat > docker-compose.yml \u003C\u003C 'EOF'\nservices:\n  atuin:\n    image: ghcr.io\u002Fatuinsh\u002Fatuin:v18.23.0\n    command: server start\n    volumes:\n      - .\u002Fconfig:\u002Fconfig\n    ports:\n      - \"8888:8888\"\n    environment:\n      ATUIN_HOST: \"0.0.0.0\"\n      ATUIN_PORT: \"8888\"\n      ATUIN_OPEN_REGISTRATION: \"true\"\n      ATUIN_DB_URI: \"sqlite:\u002F\u002F\u002Fconfig\u002Fhistory.db\"\n    restart: unless-stopped\nEOF\n```\n\nCette configuration utilise SQLite (embarqué, aucune dépendance externe) et ouvre les inscriptions pour que vous puissiez créer votre compte à la première connexion.",{"title":63,"body":64},"Créer le répertoire de configuration et démarrer le conteneur","Atuin a besoin d'un répertoire de config accessible en écriture :\n\n```bash\nmkdir -p config && chown 1000:1000 config\n```\n\nDémarrez le serveur :\n\n```bash\ndocker compose up -d\n```\n\nVérifiez que le conteneur est bien lancé :\n\n```bash\ndocker compose ps\n# NAME      STATUS          PORTS\n# atuin     Up 2 minutes    0.0.0.0:8888->8888\u002Ftcp\n```",{"title":66,"body":67},"Ouvrir le port 8888 dans le pare-feu UFW","Le port 8888 doit être accessible depuis vos machines clientes. Sur Ubuntu\u002FDebian avec UFW :\n\n```bash\nsudo ufw allow 8888\u002Ftcp\nsudo ufw status\n```\n\n⚠️ Si vous oubliez cette étape, le client atuin affichera `Connection refused` ou `Failed to sync history` au moment de la synchronisation — c'est l'erreur la plus fréquente dans les déploiements self-hosted.",{"title":69,"body":70},"Mettre un reverse proxy HTTPS devant le serveur","Le client Atuin exige HTTPS par défaut. Placez Caddy devant le serveur :\n\n```bash\napt-get install -y caddy\n```\n\nCréez `\u002Fetc\u002Fcaddy\u002FCaddyfile` :\n\n```bash\natuin.votre-domaine.com {\n    reverse_proxy localhost:8888\n}\n```\n\nRedémarrez Caddy (il obtient le certificat Let's Encrypt automatiquement) :\n\n```bash\nsystemctl restart caddy\n```\n\nVérifiez que le serveur répond :\n\n```bash\ncurl https:\u002F\u002Fatuin.votre-domaine.com\n# {\"msg\":\"Atuin server v18.23.0\"}\n```",{"title":72,"body":73},"Fermer les inscriptions une fois votre compte créé","Une fois vos comptes créés (voir étape suivante), désactivez les inscriptions publiques pour éviter tout compte indésirable. Éditez `docker-compose.yml` :\n\n```bash\nATUIN_OPEN_REGISTRATION: \"false\"\n```\n\nRedémarrez le conteneur :\n\n```bash\ndocker compose up -d\n```\n\nAlternativement, créez un fichier `\u002Fopt\u002Fatuin\u002Fconfig\u002Fserver.toml` pour une configuration plus fine :\n\n```bash\n[server]\nhost = \"0.0.0.0\"\nport = 8888\nopen_registration = false\n\n[server.db]\ndb_uri = \"sqlite:\u002F\u002F\u002Fconfig\u002Fhistory.db\"\n```",{"type":35,"title":75,"body":76},"Installer et configurer le client Atuin","Sur chacune de vos machines (laptop, serveur de dev, etc.), installez Atuin avec le script officiel :\n\n```bash\ncurl --proto '=https' --tlsv1.2 -LsSf https:\u002F\u002Fsetup.atuin.sh | sh\n```\n\nLe script installe le binaire dans `~\u002F.atuin\u002Fbin` et détecte votre shell.\n\n**Intégration au shell** — ajoutez la ligne correspondante à votre fichier de configuration :\n\n```bash\n# Pour zsh (~\u002F.zshrc)\neval \"$(atuin init zsh)\"\n\n# Pour bash (~\u002F.bashrc)\neval \"$(atuin init bash)\"\n\n# Pour fish (~\u002F.config\u002Ffish\u002Fconfig.fish)\natuin init fish | source\n```\n\nRechargez votre shell : `source ~\u002F.zshrc` (ou équivalent).\n\n**Enregistrer un compte sur votre serveur** :\n\n```bash\natuin register \\\n  --server https:\u002F\u002Fatuin.votre-domaine.com \\\n  -u votre-username \\\n  -e votre@email.com \\\n  -p votre-mot-de-passe\n```\n\nAtuin génère une **clé de chiffrement locale** — elle s'affiche à l'écran. Notez-la immédiatement : elle est indispensable pour connecter d'autres machines et ne peut pas être régénérée.\n\n**Première synchronisation** :\n\n```bash\natuin sync\n# Syncing history...\n# History synced!\n```\n\n**Se connecter depuis une deuxième machine** :\n\n```bash\natuin login \\\n  --server https:\u002F\u002Fatuin.votre-domaine.com \\\n  -u votre-username \\\n  -p votre-mot-de-passe \\\n  -k \"\u003Cvotre-clé-de-chiffrement>\"\n\natuin sync\n```",{"type":78,"title":79,"body":80},"tip","Sécurisation : pare-feu, inscriptions et reverse proxy","Trois réglages à vérifier après le premier déploiement :\n\n**1. `open_registration: false`** dès que vos comptes sont créés. Laissé à `true`, n'importe qui connaissant l'URL peut créer un compte et utiliser votre stockage.\n\n**2. Ne jamais exposer le port 8888 directement** — le trafic doit toujours transiter par le reverse proxy HTTPS. Restreignez UFW :\n\n```bash\n# Bloquer l'accès direct au port 8888 depuis l'extérieur\nsudo ufw delete allow 8888\u002Ftcp\n# Autoriser uniquement le reverse proxy local à le joindre (Caddy tourne en local)\n```\n\n**3. Sauvegardez la base SQLite** régulièrement :\n\n```bash\ndocker compose exec atuin sh -c \"sqlite3 \u002Fconfig\u002Fhistory.db \".backup \u002Fconfig\u002Fhistory.backup.db\"\"\n```\n\nLa base grossit lentement — quelques dizaines de Mo même après plusieurs années d'usage intensif.",{"type":35,"title":82,"body":83},"Dépannage — erreurs courantes","Quelques erreurs rencontrées lors d'un déploiement self-hosted et leur résolution.\n\n**`Connection refused` au premier `atuin sync`**\nLe port 8888 n'est pas ouvert dans UFW, ou le conteneur n'est pas démarré. Vérifiez avec :\n```bash\nsudo ufw status | grep 8888\ndocker compose ps\n```\n\n**`SSL certificate problem: unable to get local issuer certificate`**\nLe certificat TLS n'a pas encore été émis par Caddy. Attendez 30 à 60 secondes après le redémarrage de Caddy et relancez `atuin sync`. Vérifiez que le DNS de `atuin.votre-domaine.com` pointe bien vers l'IP du VPS.\n\n**`Invalid credentials` à `atuin login`**\nLa clé de chiffrement est incorrecte ou tronquée. Récupérez-la depuis la machine d'origine :\n```bash\natuin key\n```\nCollez la valeur complète (longue chaîne base64) après `-k`.\n\n**`open_registration is disabled`**\nVous avez fermé les inscriptions avant de créer tous vos comptes. Remettez temporairement `ATUIN_OPEN_REGISTRATION: \"true\"` dans `docker-compose.yml`, redémarrez, créez le compte, puis repassez à `false`.\n\n**L'historique ne se synchronise pas après `atuin sync`**\nVérifiez que le serveur est bien la cible configurée côté client :\n```bash\ncat ~\u002F.config\u002Fatuin\u002Fconfig.toml | grep sync_address\n# sync_address = \"https:\u002F\u002Fatuin.votre-domaine.com\"\n```\nSi la clé est absente, ajoutez-la manuellement dans `~\u002F.config\u002Fatuin\u002Fconfig.toml`.",{"type":85,"title":86,"headers":87,"rows":93},"comparison","Atuin vs les alternatives : quelle solution choisir",[88,89,90,91,92],"Outil","Chiffrement E2E","Sync multi-machines","Self-hosted","Recherche avancée",[94,100,105,108],[95,96,97,98,99],"**Atuin**","Oui (AES-256, clé locale)","Oui (serveur optionnel)","Oui (Docker, SQLite)","Oui (contexte, code de sortie, durée)",[101,102,102,103,104],"McFly","Non","N\u002FA (local uniquement)","Oui (réseau de neurones, répertoire courant)",[106,102,102,103,107],"Histdb","Partielle (SQLite local, plugin zsh)",[109,102,110,111,112],"zsh_history natif","Non (rsync manuel possible)","N\u002FA","Minimale (grep, fzf en option)",{"type":35,"title":114,"body":115},"Atuin, un outil qui grandit avec vous","Atuin v18.23.0 est la solution la plus complète pour un développeur qui travaille sur plusieurs machines et tient à la confidentialité de ses données. La configuration initiale prend moins de 30 minutes sur un VPS Start, et le résultat est un historique exhaustif, chiffré, consultable instantanément depuis n'importe quel terminal.\n\nUne fois le serveur en place, vous pouvez aller plus loin : configurer la synchronisation automatique (`atuin daemon`), utiliser les statistiques hebdomadaires (`atuin stats`), ou explorer l'interface de recherche avancée avec filtrage par code de sortie ou par hostname. La commande que vous cherchez est toujours là — peu importe la machine sur laquelle vous l'avez tapée.","Déployez Atuin sur un VPS ServOrbit","Un VPS Start suffit pour faire tourner le serveur Atuin en continu. Accès root, IPv4 dédiée, SSD NVMe — tout ce qu'il faut pour un historique shell privé et disponible.","Déployer Atuin sur VPS","\u002Fsolutions\u002Fdeveloppeurs",[121,144,167],{"id":122,"slug":123,"slugs":124,"title":128,"excerpt":129,"readTime":130,"views":131,"isPinned":19,"publishedAt":132,"updatedAt":133,"category":134,"categories":139,"featuredImage":29,"bgImage":30,"posterImage":141,"relatedSolution":142},41,"deployer-avec-coolify",{"fr":123,"en":125,"ar":126,"es":127},"deploy-your-applications-with-coolify-on-a-vps","نشر-تطبيقاتك-باستخدام-coolify-على-vps","desplegar-aplicaciones-con-coolify-en-un-vps","Déployer vos applications avec Coolify sur un VPS","Déployer Coolify sur un VPS : installation, configuration HTTPS, connexion Git, première application, bases de données, sauvegardes et dépannage.",9,1,"2026-05-10T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":135,"name":136,"slug":137,"color":138,"icon":137},3,"Déploiement","deploiement","bg-success\u002F10 text-success",[140],{"id":135,"name":136,"slug":137,"color":138,"icon":137},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-coolify-poster.svg",{"categorySlug":137,"appSlug":143},"coolify",{"id":145,"slug":146,"slugs":147,"title":151,"excerpt":152,"readTime":153,"views":131,"isPinned":19,"publishedAt":154,"updatedAt":133,"category":155,"categories":161,"featuredImage":29,"bgImage":30,"posterImage":163,"relatedSolution":164},108,"securiser-vps-crowdsec",{"fr":146,"en":148,"ar":149,"es":150},"securing-your-vps-with-crowdsec","تأمين-خادمك-الافتراضي-vps-باستخدام-crowdsec","proteger-vps-con-crowdsec","Sécuriser votre VPS avec CrowdSec","Déployez CrowdSec sur votre VPS pour bloquer les attaques grâce à une détection comportementale et une blocklist communautaire mutualisée.",4,"2026-03-04T00:00:00+00:00",{"id":156,"name":157,"slug":158,"color":159,"icon":160},8,"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[162],{"id":156,"name":157,"slug":158,"color":159,"icon":160},"\u002Fblog\u002Fcovers\u002Fsecuriser-vps-crowdsec-poster.svg",{"categorySlug":165,"appSlug":166},"cybersecurity","crowdsec",{"id":168,"slug":169,"slugs":170,"title":174,"excerpt":175,"readTime":135,"views":18,"isPinned":19,"publishedAt":176,"updatedAt":133,"category":177,"categories":178,"featuredImage":29,"bgImage":30,"posterImage":180,"relatedSolution":181},110,"vpn-wireguard-vps",{"fr":169,"en":171,"ar":172,"es":173},"setting-up-a-wireguard-vpn-on-your-vps","إعداد-شبكة-vpn-باستخدام-wireguard-على-خادمك-vps","montar-una-vpn-wireguard-en-vps","Mettre en place un VPN WireGuard sur votre VPS","Déployez un VPN WireGuard sur votre VPS Cloud : tunnel chiffré, configuration Docker et clients en quelques minutes. Guide pas à pas.","2026-03-02T00:00:00+00:00",{"id":156,"name":157,"slug":158,"color":159,"icon":160},[179],{"id":156,"name":157,"slug":158,"color":159,"icon":160},"\u002Fblog\u002Fcovers\u002Fvpn-wireguard-vps-poster.svg",{"categorySlug":182,"appSlug":183},"reseau","wireguard-server",1792123513404]