Skip to content

Cheat Sheet

Quick reference for common tasks across the personal digital estate.

Git — Switching between Pro and Perso GitHub accounts

Section titled “Git — Switching between Pro and Perso GitHub accounts”

Both machines use SSH keys. Each GitHub account needs its own SSH key configured.

# Personal GitHub — fducat18
Host github-perso
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_perso
# Pro GitHub — francoiducat
Host github-pro
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_pro
Terminal window
# Personal repo (fducat18)
git clone git@github-perso:fducat18/digital-architecture.git
# Pro repo (francoiducat)
git clone git@github-pro:francoiducat/some-decathlon-repo.git
Terminal window
# Inside a personal repo
git config user.name "Francois Ducatillon"
git config user.email "francois.ducatillon@gmail.com"
# Inside a pro repo
git config user.name "Francois Ducatillon"
git config user.email "francois.ducatillon@decathlon.com" # adjust to actual pro email

💡 Tip: Never use git config --global for user.email — it bleeds across repos. Set it per repo.

Terminal window
git config user.email # shows current repo's email
ssh -T git@github-perso # should say: Hi fducat18!
ssh -T git@github-pro # should say: Hi francoiducat!

Generate SSH keys (one-time setup per machine)

Section titled “Generate SSH keys (one-time setup per machine)”
Terminal window
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_perso -C "fducat18 (perso)"
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_pro -C "francoiducat (pro)"
# Add to GitHub: copy each public key
cat ~/.ssh/id_ed25519_perso.pub # → github.com/settings/keys on fducat18 account
cat ~/.ssh/id_ed25519_pro.pub # → github.com/settings/keys on francoiducat account

Hostinger VPS runs the Hermes Agent and Drive Bridge. Access via SSH key only (no password).


See Agent Host — First Install & Hardening for complete bootstrap procedure.

Terminal window
ssh -i ~/.ssh/hostinger_vps_ed25519 hermes@<VPS_IP>

Or use SSH config shorthand:

Terminal window
ssh hostinger-vps
Terminal window
# Verify Hermes service is running
systemctl --user status hermes-gateway
# Check tunnel status
sudo systemctl status cloudflared
# Check dashboard (localhost only)
curl http://localhost:9119/health
# Check rclone mount (Google Drive bridge)
ls /mnt/gdrive/
# View Hermes logs
journalctl --user -u hermes-gateway -n 50 -f
# Reboot
sudo reboot

Project setup — Moving a Google Drive project to GitHub

Section titled “Project setup — Moving a Google Drive project to GitHub”
Terminal window
# Verify Hermes service is running
systemctl --user status hermes-gateway
# Check dashboard (accessible at hermes.ducatillon.net via Cloudflare Tunnel)
curl http://localhost:9119/health
# Check rclone mount (Google Drive bridge)
ls /mnt/gdrive/
# View Hermes logs
journalctl --user -u hermes-gateway -n 50 -f

Add to ~/.ssh/config on your Mac for easier commands:

Host hostinger-vps
HostName 2.24.13.12
User hermes
IdentityFile ~/.ssh/hostinger_vps_ed25519

Then just: ssh hostinger-vps


Project setup — Moving a Google Drive project to GitHub

Section titled “Project setup — Moving a Google Drive project to GitHub”

When a PARA project grows into a code project (needs node_modules, venv, etc.):

Terminal window
# 1. Create repo on GitHub (fducat18 account)
# → github.com/new → private → don't init with README
# 2. Move/copy .md files from Google Drive to local workspace folder
mkdir -p ~/workspace/digital-architecture
cp -r "/Users/mac-FDUCAT18/Library/CloudStorage/GoogleDrive-.../1-Projects/2026-06-Digital-Architecture/"*.md ~/workspace/digital-architecture/
cp -r "/Users/mac-FDUCAT18/Library/CloudStorage/GoogleDrive-.../1-Projects/2026-06-Digital-Architecture/docs" ~/workspace/digital-architecture/
# 3. Init and push
cd ~/workspace/digital-architecture
git init
git remote add origin git@github-perso:fducat18/digital-architecture.git
git add -A
git commit -m "feat: initial architecture documentation"
git push -u origin main
# 4. Leave a pointer in Google Drive PARA folder
# Create a README.md in the Google Drive folder:

Google Drive pointer README (leave in PARA folder):

# 2026-06 Digital Architecture
⚠️ This project has moved to GitHub (code project).
**Repo**: https://github.com/fducat18/digital-architecture (private)
**Why**: Build tooling (Astro/Starlight) would overwhelm Google Drive sync.
**Live site**: https://docs.ducatillon.net
All .md docs are maintained in the GitHub repo.

~/workspace/
├── digital-architecture/ # this project (perso, fducat18)
├── hugo-air/ # Hugo theme (perso, fducat18)
├── strata/ # personal finance app (perso, fducat18)
├── sommelier-arena/ # wine app (perso, fducat18)
├── chateaudebourgon/ # Astro migration (perso, fducat18)
├── locationyeu/ # rental site (perso, fducat18)
└── notes/ # notes site (perso, fducat18)

Pro repos stay on the Decathlon M3Pro in its own workspace folder. Don’t mix.


Real-world scenario: Personal project from Decathlon M3Pro

Section titled “Real-world scenario: Personal project from Decathlon M3Pro”

Situation: You’re working on a personal project (like this architecture wiki) from your Decathlon M3Pro. Today the files live in Google Drive perso. Tomorrow they’ll live in GitHub perso (fducat18, private repo).

What changes:

PhaseWhere files liveHow you edit from M3Pro
Now (Google Drive)Google Drive local folderOpen .md in VS Code from ~/Library/CloudStorage/GoogleDrive-.../
After migration (GitHub)Git clone in ~/workspace/Open .md in VS Code from ~/workspace/digital-architecture/

In both phases you edit with VS Code — the difference is the source path.

Setup needed on M3Pro (one-time):

Terminal window
# Generate a perso SSH key on M3Pro
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_perso -C "fducat18 (perso from M3Pro)"
# Add to ~/.ssh/config (alongside the pro key)
# Host github-perso
# HostName github.com
# User git
# IdentityFile ~/.ssh/id_ed25519_perso
# Clone personal project
git clone git@github-perso:fducat18/digital-architecture.git ~/workspace/perso/digital-architecture

Company policy: Decathlon IT allows personal SSH keys and personal GitHub access on the managed M3Pro. Keep personal repos and pro repos separated by folder and git identity.

Fallback options if local GitHub access is temporarily unavailable:

  • Hermes via Telegram: Ask Hermes to read/write the repo for you
  • GitHub web: Edit files directly on github.com from M3Pro browser (no SSH needed)
  • Codespaces: GitHub Codespaces runs in-browser — no local git needed (free tier: 60h/month)

Terminal window
# Which GitHub account am I using?
ssh -T git@github-perso
ssh -T git@github-pro
# Quick git status across all repos
ls ~/workspace/ | xargs -I{} sh -c 'echo "=== {} ===" && git -C ~/workspace/{} status -s 2>/dev/null'
# Check Google Drive sync status (macOS)
brctl status com~apple~CloudDocs 2>/dev/null || echo "Use Google Drive menu bar icon"