Initial vault setup
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user