Sommaire
  1. Principes fondamentaux
  2. Architecture de l'environnement
  3. Les deux remotes Git — rôles et étanchéité
  4. Perméabilité maîtrisée — formation et connaissances
  5. Stratégie de stockage et synchronisation
  6. Base de connaissances centralisée — Obsidian
  7. Portfolio public — déploiement multi-postes
  8. Sécurité et conformité ISO 27001
  9. Référence .gitignore Python
01

Principes fondamentaux

Principe 1
Un outil, un rôle
Git versionne le code et son historique. Le drive cloud sauvegarde les documents. Jamais l'un à la place de l'autre.
Principe 2
Étanchéité pro / perso
Le code professionnel ne doit jamais atteindre un dépôt public. La séparation est architecturale, pas seulement organisationnelle.
Principe 3
Open source par défaut
Chaque choix d'outil priorise une solution libre : Git, Obsidian, FreeFileSync, Robocopy, nginx, Python. La transparence est une valeur.
🌿
Stack open source : Git, Obsidian (vault local Markdown), FreeFileSync, Robocopy (inclus Windows), nginx — tous libres et gratuits. Préférer l'open source réduit la dépendance aux éditeurs, favorise la transparence et facilite le partage de bonnes pratiques avec la communauté.

Outils de cet environnement

Git
Git
Versioning & historique
GitHub
GitHub
Remote public / perso
GitLab
GitLab CE
Remote entreprise
Obsidian
Obsidian
Base de connaissances
OneDrive
OneDrive
Sauvegarde cloud
FreeFileSync
FreeFileSync
Sync planifiée (GUI)
Robocopy
Robocopy
Sync CLI (Windows)
nginx
nginx
Prévisualisation locale
Python
Python
Scripts & projets
Windows
Windows 11
OS postes de travail
02

Architecture de l'environnement

Vue d'ensemble des machines, dépôts et drives impliqués, et de leurs relations.

┌──────────────────────────────────────────────────────────────────────┐
│                        POSTES DE TRAVAIL                             │
├──────────────────────────────┬───────────────────────────────────────┤
  💼 Portable PRO                🏠 Portable PERSO                    
  Dev\  Knowledge\  Ptools\     GitHub + Drive perso (always on)    
  ⚠ VPN requis → GitLab         Formation · portfolio · knowledge   
  Drive pro : always on         Pas d'accès au GitLab entreprise    
├──────────────────────────────┴───────────────────────────────────────┤
│               VMs Proxmox  +  Serveur IA                             │
  🖥 VM Dev / Test    git clone depuis GitHub (ou GitLab + VPN)       
  🖥 VM IA            Obsidian Git · lecture du vault knowledge        
  ⚡ Serveur IA       scripts Python · accès GitHub                   
├──────────────────────────────────────────────────────────────────────┤
│                         REMOTES GIT                                  │
  ☁  GitHub  (public / privé)   portfolio · formation · knowledge      
  🔒 GitLab entreprise            projets pro uniquement · VPN requis   
├──────────────────────────────────────────────────────────────────────┤
│                       STOCKAGE / SYNC                                │
  ☁  Drive perso   FreeFileSync / Robocopy → sources sans .git        
  ☁  Drive pro     documents entreprise · poste pro uniquement        
└──────────────────────────────────────────────────────────────────────┘
03

Les deux remotes Git — rôles et étanchéité

GitHub GitHub — dépôt public / perso
  • Portfolio public (site web personnel)
  • Projets Python de formation et d'apprentissage
  • Vault Obsidian (repo privé)
  • Accessible depuis tous les postes sans VPN
  • Déploiement automatique via GitHub Pages
🌿
Dépôts publics et privés illimités (plan gratuit). Les dépôts publics contribuent à la visibilité open source.
GitLab GitLab CE — dépôt interne entreprise
  • Projets professionnels uniquement
  • Accessible uniquement via VPN entreprise
  • Depuis le poste professionnel exclusivement
  • Instance auto-hébergée — données internes
  • GitLab Community Edition est open source
⚠️
ISO 27001 — A.8.1 : le code professionnel ne doit jamais être poussé vers un dépôt public. Cette contrainte est architecturale : le poste perso n'a physiquement pas accès au GitLab entreprise.

Matrice d'accès aux remotes

Poste / machine GitHub GitHub GitLab GitLab entreprise
💼 Portable PRO✓ (VPN)
🏠 Portable PERSO
🖥 VMs Proxmox
⚡ Serveur IA
04

Perméabilité maîtrisée — formation et connaissances

Certains contenus restent strictement cloisonnés (code pro). D'autres gagnent à être accessibles partout — c'est leur valeur. La distinction est technique, pas seulement organisationnelle.

Ressource 💼 PRO 🏠 PERSO 🖥 VMs ⚡ Serveur IA Canal d'accès
Code professionnel GitLab + VPN
Projets Python — formation GitHub → git clone
Base de connaissances GitHub privé + Obsidian Git
Portfolio (site web) GitHub → déploiement web
Outils portables (Ptools) Drive perso (FreeFileSync)
Documents entreprise Drive entreprise (pro only)
Principe de perméabilité maîtrisée : les projets de formation et la base de connaissances sont intentionnellement accessibles depuis tous les contextes via Git + GitHub. Cette perméabilité est technique et traçable — pas par copie manuelle, ce qui garantit un historique cohérent sur toutes les machines.
05

OneDrive Stratégie de stockage et synchronisation

Drive perso
  • Sauvegarde des sources sans .git
  • Vault Obsidian complet (Knowledge\)
  • Outils portables (Ptools\)
  • Mode PRO : free up space
  • Mode PERSO : always on device
Drive entreprise
  • Documents professionnels uniquement
  • Always on device sur le poste pro
  • Inaccessible depuis le poste perso
  • Ne contient pas de code source
⚠️
ISO 27001 — A.8.3 : activer BitLocker + PIN sur le poste pro. Données entreprise sur appareil mobile = risque en cas de vol.

FreeFileSync FreeFileSync — synchronisation planifiée (GUI)

FreeFileSync (open source, interface graphique) — synchronise Dev\, Knowledge\, Ptools\ vers le Drive perso. Exclure les dossiers .git via la règle *\.*\ pour ne pas copier l'historique Git. Interface visuelle, profils sauvegardables, mode miroir ou bidirectionnel. Idéal pour une utilisation sans ligne de commande.

Robocopy Robocopy — synchronisation scriptable (CLI)

Robocopy (inclus dans Windows, CLI) — alternative scriptable via PowerShell et le Planificateur de tâches Windows. Gère les reprises sur erreur et les fichiers verrouillés. Exemple :
PowerShell — backup planifié avec Robocopy
robocopy C:\Dev      D:\Backup\Dev      /MIR /XD .git .venv __pycache__ dist
robocopy C:\Knowledge D:\Backup\Knowledge /MIR
robocopy C:\Ptools   D:\Backup\Ptools   /MIR /XD .git
Ne pas utiliser la synchronisation temps réel du drive cloud directement sur un répertoire Git actif. Le verrouillage de index.lock par le client de sync peut corrompre les dépôts. Toujours préférer FreeFileSync ou Robocopy en mode planifié.
Règle d'or : le Drive est une sauvegarde de fichiers. Git est la sauvegarde du code et de son historique. Un projet sans remote Git n'est pas sauvegardé — FreeFileSync exclut les .git et n'historise pas les commits.
06

Obsidian Base de connaissances centralisée — Obsidian

Obsidian stocke les notes en Markdown local — des fichiers texte versionnables avec Git. C'est le seul outil PKM à la fois open source, souverain sur les données et nativement compatible Git.

🌿
Stack 100 % open source et souverain : les notes restent des fichiers Markdown sur le disque. Aucune donnée hébergée chez un tiers par défaut. Le plugin Obsidian Git synchronise le vault via un repo GitHub privé — accès depuis tous les postes et VMs sans abonnement.

Architecture du vault multi-postes

1
Repo GitHub privé knowledge-vault

Créer un repo GitHub privé dédié. Initialiser git dans le dossier Knowledge local, commiter et pousser. Ce repo est la source de vérité unique du vault.

2
Plugin Obsidian Git — configuration

Pull automatique au démarrage · Push automatique toutes les 10 min · Message : vault: auto-sync {{date}}. Le plugin gère les conflits Git standard.

3
Déploiement sur chaque machine

PRO : vault dans Knowledge\, sync Git + backup FreeFileSync. PERSO, VMs, Serveur IA : git clone du repo privé, plugin Obsidian Git actif. Le vault est disponible et synchronisé partout en quelques minutes.

4
Gestion des conflits

Toujours faire un pull avant d'écrire si plusieurs postes ont été utilisés en parallèle. Les conflits sur des notes Markdown sont rares et simples à résoudre dans n'importe quel éditeur texte.

07

GitHub Portfolio public — déploiement multi-postes

Le portfolio est modifiable depuis les deux portables. Sa chaîne de déploiement doit être robuste et sans ambiguïté sur la source de vérité.

GitHub est la source de vérité. Le répertoire local sur chaque poste est un clone de travail. Avant toute modification : git pull. Après chaque session : git push.
Un seul remote actif. Jamais deux remotes distincts pour le même projet. Un repo = une URL de référence.

nginx Chaîne de déploiement avec nginx

1
Développement local

Édition dans le répertoire de travail (clone local sur le poste actif). Même workflow sur le portable PRO et le portable PERSO.

2
Prévisualisation locale — nginx (open source)

Serveur nginx portable synchronisé via le Drive perso → http://localhost:8080. Sur le portable PERSO sans nginx : ouvrir index.html dans le navigateur suffit pour du HTML/CSS statique.

3
Commit et push vers GitHub

Message de commit descriptif. Le push déclenche automatiquement le déploiement via GitHub Pages.

4
Mise en production automatique

GitHub publie le site sans intervention manuelle. Infrastructure de déploiement 100 % open source et gratuite.

08

Sécurité et conformité ISO 27001

La norme ISO 27001 organise la sécurité autour de trois critères : Confidentialité (C), Intégrité (I), Disponibilité (D).

[C] Chiffrement du poste pro — BitLocker : le poste professionnel contient des données entreprise (Drive pro always on device). Activer BitLocker avec PIN au démarrage. ISO 27001 A.8.3.
[C] Tokens PAT dans le Credential Manager Windows : git config --global credential.helper manager. Les tokens ne doivent jamais apparaître dans les URLs, l'historique PowerShell ou les fichiers de config. ISO 27001 A.8.13.
[C] Étanchéité pro / perso par l'architecture : le poste perso n'a physiquement pas accès au GitLab entreprise. Ce n'est pas une consigne — c'est une impossibilité technique. ISO 27001 A.5.10.
[I] Jamais de secrets dans Git : fichiers .env, mots de passe, clés API ne doivent jamais être commités. En cas d'exposition : révoquer le token immédiatement, purger l'historique avec BFG Repo Cleaner (open source). ISO 27001 A.8.24.
[D] Chaque projet a un remote Git : un projet sans remote n'est pas sauvegardé — FreeFileSync exclut les .git. Publier tout projet sur GitHub ou GitLab selon sa nature. ISO 27001 A.8.13.
[D] VPN comme point de défaillance unique : si le VPN est indisponible, aucun push/pull vers le GitLab entreprise n'est possible. Anticiper avec des commits fréquents en local et un workflow de travail hors connexion.
⚠️
Rappel ISO 27001 : la norme ne prescrit pas d'outils spécifiques — elle définit des objectifs de sécurité. L'utilisation d'outils open source (Git, FreeFileSync, nginx, Obsidian) est pleinement compatible dès lors que les mesures de contrôle sont documentées et appliquées de manière cohérente.
09

Python Référence .gitignore Python

À créer à la racine de tout nouveau projet Python avant le premier git add ..

.gitignore — template Python complet
# ── Environnement Python ─────────────────────────────
.venv/
venv/
env/
__pycache__/
*.pyc
*.pyo

# ── IDE ──────────────────────────────────────────────
.idea/
.vscode/

# ── Build PyInstaller ────────────────────────────────
dist/
build/
*.spec
file_version_info.txt

# ── Secrets ──────────────────────────────────────────
.env
*.env
secrets.py

# ── Windows ──────────────────────────────────────────
*.lnk
*.old
*.tmp
Thumbs.db
desktop.ini

# ── Logs ─────────────────────────────────────────────
*.log
logs/