Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
---
title: Atuin
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, file-transfer-and-sync, shell, history, rust]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=file-transfer-and-sync]
---
# Atuin 🐢
> Historique de shell synchronisé, chiffré, full-text searchable (Rust).
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://atuin.sh |
| **GitHub** | https://github.com/atuinsh/atuin |
| **License** | MIT |
| **Langage** | Rust |
| **Étoiles** | 24000+ |
| **Dernière MAJ** | 2025 |
| **Catégorie** | [[cat-file-transfer-and-sync]] |
## Description
Atuin remplace le traditionnel `~/.bash_history` par une base **SQLite** locale, liée à un serveur central optionnel qui synchronise l'historique entre toutes les machines d'un même utilisateur. La fonction première est de retrouver une commande exécutée il y a six mois grâce à une recherche fuzzy ultra-rapide (`Ctrl+R`) avec filtres par répertoire, hôte, durée d'exécution, code de retour.
Chaque entrée est stockée avec son **contexte complet** : timestamp UTC, répertoire de travail, hostname, durée, exit code, commande. Atuin supporte **bash, zsh, fish, nushell** et conserve la compatibilité avec l'historique natif (import initial automatique). Les alias `atuin search`, `atuin stats`, `atuin list` permettent d'explorer ses habitudes de travail et de dégager des statistiques utiles.
Le serveur de sync officiel est **atuin.sh** (gratuit, clé d'API) mais il est aussi possible d'auto-héberger son instance via le binaire `atuin server` (PostgreSQL requis). Le chiffrement bout-en-bout est systématique : le serveur ne voit que du **chiffrement e2e** des commandes sensibles.
## Installation
### Docker Compose (serveur)
```yaml
services:
atuin:
image: ghcr.io/atuinsh/atuin:latest
container_name: atuin
command: server start
environment:
- ATUIN_HOST=0.0.0.0
- ATUIN_PORT=8888
- ATUIN_OPEN_REGISTRATION=false
- ATUIN_DB_URI=postgres://atuin:***@db:5432/atuin
depends_on:
- db
ports:
- "8888:8888"
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
- POSTGRES_USER=atuin
- POSTGRES_PASSWORD=changeme
- POSTGRES_DB=atuin
volumes:
- ./pgdata:/var/lib/postgresql/data
restart: unless-stopped
```
### Client (Linux / macOS)
```bash
curl --proto '=https' --tlsv1.2 -sSf https://setup.atuin.sh | sh
atuin register -u https://atuin.example.com -e moi@example.com -n $USER
atuin import auto
atuin login -u https://atuin.example.com
```
## Configuration
1. Ajouter le hook à son shell (Bash, Zsh, Fish) :
```bash
eval "$(atuin init bash)" # ou zsh/fish
```
2. Pour Zsh, ajouter aussi `bindkey '^R' atuin-search` dans `.zshrc`.
3. Configurer le serveur de sync dans `~/.config/atuin/config.toml` :
```toml
sync_address = "https://atuin.example.com"
```
4. Exclure des secrets automatiquement via les filtres : `atuin search --before "1 month ago"`.
5. Sync manuelle : `atuin sync`.
## Alternatives
- **Open source** : [[app-syncthing]] (fichiers), fzf + history (basique), McFly (ML sur l'historique), zsh-autosuggestions (suggestions), broot (navigation).
- **Propriétaire** : Fig, Warp (commercial shell), fish_history (sans sync).
## Sécurité
- Chiffrement bout-en-bout des entrées sync (clé dérivée du mot de passe utilisateur).
- Serveur ne peut pas lire le contenu des commandes.
- Tokens d'API personnels (revocables).
- Open registration désactivable en self-host.
- Stockage local SQLite : vérifier les permissions du fichier (`chmod 600`).
## Ressources
- Documentation : https://docs.atuin.sh
- Démo : https://atuin.sh/demo
- Code : https://github.com/atuinsh/atuin
- Discord : https://discord.gg/FQ8DaM7
## Pages Liées
- [[cat-file-transfer-and-sync]] — Catégorie parente
- [[app-syncthing]] — Sync P2P fichiers
- [[recettes-docker-compose]] — Modèles de stacks