feat: add comprehensive error handling and logging for vault settings save operations with permission error detection and detailed error messages in UI toast notifications
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
# Dépannage ObsiGate
|
||||
|
||||
## Problème : Interface gèle lors de la sauvegarde des paramètres de fichiers cachés
|
||||
|
||||
### Symptômes
|
||||
- L'interface se fige quand vous cliquez sur "Sauvegarder" dans la section "Fichiers cachés"
|
||||
- Le fichier `vault_settings.json` n'est pas créé dans `/DOCKER_CONFIG/ObsiGate/data`
|
||||
- Aucun message d'erreur n'apparaît (ou message générique)
|
||||
|
||||
### Cause
|
||||
Le conteneur Docker n'a pas les permissions nécessaires pour écrire dans le répertoire `/app/data` (monté depuis `/DOCKER_CONFIG/ObsiGate/data` sur l'hôte).
|
||||
|
||||
### Solution
|
||||
|
||||
#### 1. Vérifier que le répertoire existe sur l'hôte
|
||||
|
||||
```bash
|
||||
# Créer le répertoire s'il n'existe pas
|
||||
sudo mkdir -p /DOCKER_CONFIG/ObsiGate/data
|
||||
|
||||
# Vérifier qu'il existe
|
||||
ls -la /DOCKER_CONFIG/ObsiGate/
|
||||
```
|
||||
|
||||
#### 2. Corriger les permissions
|
||||
|
||||
Le conteneur s'exécute avec l'utilisateur `1000:1000` (voir `docker-compose.yml`). Le répertoire doit être accessible en écriture par cet utilisateur.
|
||||
|
||||
```bash
|
||||
# Option A: Donner la propriété à l'utilisateur 1000
|
||||
sudo chown -R 1000:1000 /DOCKER_CONFIG/ObsiGate/data
|
||||
|
||||
# Option B: Rendre le répertoire accessible en écriture pour tous (moins sécurisé)
|
||||
sudo chmod -R 777 /DOCKER_CONFIG/ObsiGate/data
|
||||
```
|
||||
|
||||
#### 3. Redémarrer le conteneur
|
||||
|
||||
```bash
|
||||
cd /path/to/ObsiGate
|
||||
docker-compose restart
|
||||
```
|
||||
|
||||
#### 4. Vérifier les logs
|
||||
|
||||
Après le redémarrage, les logs backend afficheront des informations détaillées sur la sauvegarde :
|
||||
|
||||
```bash
|
||||
docker-compose logs -f obsigate
|
||||
```
|
||||
|
||||
Recherchez des lignes comme :
|
||||
- `Attempting to save settings to /app/data/vault_settings.json`
|
||||
- `Successfully saved settings for X vaults`
|
||||
- Ou des erreurs : `Permission denied writing to...`
|
||||
|
||||
#### 5. Tester la sauvegarde
|
||||
|
||||
1. Ouvrez l'interface ObsiGate
|
||||
2. Allez dans Configuration → Fichiers cachés
|
||||
3. Modifiez un paramètre (cochez/décochez "Afficher tous les fichiers cachés")
|
||||
4. Cliquez sur "💾 Sauvegarder"
|
||||
5. Vous devriez voir un message de succès : "✓ Paramètres sauvegardés"
|
||||
6. Si erreur, le message affichera maintenant le détail : "Erreur: Permission denied: Cannot write to settings file..."
|
||||
|
||||
#### 6. Vérifier que le fichier a été créé
|
||||
|
||||
```bash
|
||||
ls -la /DOCKER_CONFIG/ObsiGate/data/vault_settings.json
|
||||
cat /DOCKER_CONFIG/ObsiGate/data/vault_settings.json
|
||||
```
|
||||
|
||||
Le fichier devrait contenir un JSON avec vos paramètres :
|
||||
```json
|
||||
{
|
||||
"Workout": {
|
||||
"includeHidden": true,
|
||||
"hiddenWhitelist": []
|
||||
},
|
||||
"Bruno": {
|
||||
"includeHidden": false,
|
||||
"hiddenWhitelist": [".obsidian"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Vérification des permissions actuelles
|
||||
|
||||
```bash
|
||||
# Voir les permissions du répertoire
|
||||
ls -la /DOCKER_CONFIG/ObsiGate/
|
||||
|
||||
# Voir l'utilisateur qui exécute le conteneur
|
||||
docker-compose exec obsigate id
|
||||
|
||||
# Devrait afficher : uid=1000 gid=1000
|
||||
```
|
||||
|
||||
### Alternative : Changer l'utilisateur du conteneur
|
||||
|
||||
Si vous ne pouvez pas modifier les permissions de `/DOCKER_CONFIG/ObsiGate/data`, vous pouvez changer l'utilisateur du conteneur dans `docker-compose.yml` :
|
||||
|
||||
```yaml
|
||||
services:
|
||||
obsigate:
|
||||
# Remplacer user: "1000:1000" par l'UID/GID du propriétaire du répertoire
|
||||
user: "0:0" # root (non recommandé pour la sécurité)
|
||||
# OU
|
||||
user: "$(id -u):$(id -g)" # Votre utilisateur actuel
|
||||
```
|
||||
|
||||
Puis redémarrez :
|
||||
```bash
|
||||
docker-compose down
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## Autres problèmes courants
|
||||
|
||||
### Les fichiers cachés ne s'affichent pas après sauvegarde
|
||||
|
||||
**Cause** : Les paramètres sont sauvegardés mais l'index n'a pas été reconstruit.
|
||||
|
||||
**Solution** : Après avoir cliqué sur "Sauvegarder", cliquez sur "🔄 Réindexer" pour reconstruire l'index avec les nouveaux paramètres.
|
||||
|
||||
### L'interface se fige lors de la réindexation
|
||||
|
||||
**Cause** : Vous essayez d'indexer un très gros répertoire caché (ex: `.git`, `.node_modules`).
|
||||
|
||||
**Solution** :
|
||||
1. N'activez pas "Afficher tous les fichiers cachés" pour les vaults contenant de gros répertoires cachés
|
||||
2. Utilisez plutôt la liste blanche pour ajouter uniquement les dossiers cachés spécifiques dont vous avez besoin (ex: `.obsidian`)
|
||||
3. La réindexation sélective (uniquement les vaults modifiés) devrait être plus rapide
|
||||
|
||||
### Message "Permission denied" dans les logs
|
||||
|
||||
Voir la section principale ci-dessus pour corriger les permissions.
|
||||
Reference in New Issue
Block a user