Installation & Architecture Système

Configurer l'environnement pour la performance et la sécurité.

Prérequis Hardware

Obsidian indexe des milliers de petits fichiers texte. Pour un Vault > 10k fichiers, l'impact des I/O est critique.

  • Stockage : SSD / NVMe (Impératif pour éviter le lag à l'ouverture).
  • RAM : Faible impact (Electron app), 8GB suffisent largement.

Installation Linux (Ubuntu/Debian)

Si vous utilisez Snap, le sandboxing par défaut empêche Obsidian d'accéder aux fichiers hors de son conteneur (comme un montage Rclone ou un second disque).

bash
# Flag --classic OBLIGATOIRE pour désactiver le sandboxing strict
sudo snap install obsidian --classic

Stratégie de Synchronisation (Sync != Backup)

Recommandé (Dev)

  • Obsidian Git : Versioning complet sur GitHub privé. Historique granulaire.
  • Syncthing : P2P, pas de Cloud central, très rapide en local.

À éviter (Risque de conflit)

  • Google Drive / Dropbox : Gestion primitive des conflits sur les fichiers Markdown ouverts.
  • Si obligatoire : Configurer le dossier en mode "Available Offline" pour éviter le déchargement des fichiers par l'OS.
Pour Linux/VM : Utilisez rclone avec un script wrapper qui lance une synchro pre-run et post-run pour minimiser les race conditions.

Workflow & Concepts

Penser le Vault comme une base de code.

1. Atomicité (Zettelkasten) = Microservices

Traitez vos notes comme des fonctions ou des microservices (SRP - Single Responsibility Principle).

  • 1 Note = 1 Idée. Pas de gros fichiers monolithiques "Fourre-tout".
  • Facilite la réutilisation (Transclusion) et le linking.
  • ID Unique : Utilisez un Timestamp ou un titre unique comme clé primaire.

2. MOC (Map of Content) = API Gateway

Une MOC est une note "Dashboard" qui ne contient pas de savoir, mais qui route vers le savoir.

Exemple : 000_Home_MOC.md

# Dashboard
- [[Dev_Python_MOC]]
- [[SysAdmin_Linux_MOC]]
- [[Project_X_Overview]]

Cela remplace la structure rigide des dossiers par une structure graphe flexible.

3. Transclusion (Embeds)

Comme un import ou un include en code. Vous pouvez afficher le contenu d'une note A dans une note B sans la dupliquer (DRY - Don't Repeat Yourself).

![[Nom de la Note#^block-id]]

Stack Plugins Indispensables

Transformer l'éditeur de texte en IDE.

Dataview

Query Engine

Permet de requêter vos notes comme une base SQL/NoSQL via les métadonnées (Frontmatter YAML).

DQL (Dataview Query Language)
TABLE file.ctime as "Date", status
FROM "Projets/Dev"
WHERE contains(tags, "#bug") AND !completed
SORT file.mtime DESC

Templater

JS Scripting

Beaucoup plus puissant que les templates natifs. Permet d'exécuter du JavaScript arbitraire à la création d'une note.

template_daily.md
# Daily Note - <% tp.date.now("YYYY-MM-DD") %>
// Récupérer le clipboard ou appeler une API
<% tp.web.daily_quote() %>
<% tp.system.clipboard() %>

Obsidian Git

Versioning

Automatise les git add ., git commit et git push. Vital pour avoir un historique de chaque modification et sécuriser le vault sur un repo distant.

Performance & Astuces (Pro)

Garder un Vault propre et rapide.

Stratégie "Lean Vault"

Le piège classique : stocker des PDFs, images HD, scans 3D ou vidéos directement dans le Vault.

  • Problème : Ralentit la synchro (mobile inutilisable) et augmente la taille du repo Git exponentiellement.
  • Solution : Externalisez les assets lourds sur un NAS, S3 ou Cloud dédié.
  • Méthode : Ne gardez que le Markdown et les petites images dans le Vault. Utilisez des liens externes pour le reste.

Thèmes vs CSS Snippets

Les thèmes lourds (ex: AnuPpuccin) surchargent le DOM et causent du lag. Préférez le thème par défaut + Snippets CSS ciblés.

.obsidian/snippets/custom-headers.css
.cm-header-1 {
  color: #a254d3;
  font-size: 1.5em;
}

Standardiser le Frontmatter

Pour que Dataview fonctionne, soyez rigoureux sur le YAML en haut de chaque note.

YAML Standard
---
type: project
status: active # active, archived, idea
tags: [dev, python]
created: 2023-10-27
---