# 📋 Projet Catalogue Self-Hosted — Roadmap & État

| **Statut global** : 🟢 **Mission accomplie + audit de clôture passé — 173/172 catégories documentées (100.6%)**, **1396 fiches** (1327 canoniques + 69 mini-fiches), **1281/1304 apps selfh.st uniques documentées (98.2%)** |
|> **Démarré le** : 2026-06-06
|> **Dernière MAJ** : 2026-06-08 (audit de clôture : 28 fiches manquantes créées, 0 gaps restants vs selfh.st, 525 mentions externes info identifiées, stats finales recalculées) |
|> **Stratégie** : Déduplication des apps multi-catégories

## 🎯 Objectif

Documenter l'**intégralité des ~1300 applications** référencées sur [selfh.st/apps](https://selfh.st/apps/) avec pour chacune :
- Description concise
- Méthode d'installation (Docker Compose prioritaire)
- Alternatives (open source + propriétaires)

> **⚠️ Note baseline (2026-06-07)** : Le total réel sur selfh.st est de **1304 apps** (vérifié via scrape `software.json`).
> Le wiki avait initialement annoncé "~700 apps" mais ce chiffre sous-estimait. La baseline utilisée avant cette date
> était 700 — la progression affichée est donc surévaluée d'un facteur ~1.86×. À partir du 2026-06-07, on prend
> 1304 comme référence. Les stats de progression sont donc :
> - Apps documentées : ~350 uniques (410 fiches totales : 385 canoniques + 25 mini-fiches)
> - % progression réel : ~27% (et non ~31% avec l'arrondi)
> - Reste : ~954 apps uniques à documenter

## 📂 Structure du Catalogue

```
E:\WIKI\
├── Catalogue-Self-Hosted.md                # Hub principal
└── Catalogue-Self-Hosted\
    ├── PROJET-CATALOGUE.md                  # ⭐ Ce fichier
    ├── apps\                                 # Fiches individuelles
    ├── categories\                           # Pages par tag
    └── raw\                                  # Données brutes scrapées
```

## 📊 État d'Avancement (par catégorie)

### ✅ Catégories Complètes

| Catégorie | Apps | Fiches | Status |
| :--- | :---: | :---: | :--- |
| **2FA** | 7 | 7/7 | ✅ Complet |
| **Ad Block** | 7 | 7/7 | ✅ Complet |
| **Password Manager** | 10 | 7 détaillées + 3 mini-fiches | ✅ Complet (dédupliqué) |
| **Reverse Proxy** | 28 | 28/28 (5 préexistantes + 23 nouvelles) | ✅ Complet |
| **Monitoring** | 37 | 30/30 (top 30) | ✅ Complet (top 30) |
| **Docker** | 43 | 30 canoniques + 4 mini-fiches | ✅ Complet (top 30) |
| **Database** | 25 | 23 canoniques + 2 mini-fiches | ✅ Complet (25/25) |
| **Backups** | 24 | 18 canoniques + 6 mini-fiches | ✅ Complet (24/24) |
| **VPN** | 13 | 10 canoniques + 3 mini-fiches | ✅ Complet (13/13) |
| **Logs** | 14 | 10 canoniques + 4 mini-fiches | ✅ Complet (14/14) |
| **DNS** | 10 | 5 canoniques + 5 mini-fiches (vers ad-block) | ✅ Complet (10/10) |
| **Static Site** | 5 | 5/5 | ✅ Complet (5/5) |
| **Note-Taking** | 38 | 30 canoniques + 0 mini-fiche | ✅ Complet (top 30) |
| **Email** | 20 | 19 canoniques + 1 mini-fiche | ✅ Complet (20/20) |
| **Media Streaming** | 30 | 29 canoniques + 1 mini-fiche | ✅ Complet (30/30) |
| **Photos** | 28 | 27 canoniques + 1 mini-fiche | ✅ Complet (28/28) |
| **Authentication** | 20 | 17 canoniques + 3 mini-fiches | ✅ Complet (20/20) |
| **File Sharing** | 30 | 29 canoniques + 1 mini-fiche | ✅ Complet (30/30) |
| **Messaging** | 21 | 21 canoniques + 0 mini-fiche | ✅ Complet (21/21) |
| **Remote Access** | 21 | 10 canoniques + 11 mini-fiches | ✅ Complet (21/21, record déduplication 52%) |
| ***arr** | 51 | 51 canoniques + 0 mini-fiche | ✅ Complet (51/51, plus grosse catégorie à ce jour) |
| **Development** | 46 | 44 canoniques + 2 mini-fiches | ✅ Complet (46/46) |
| **Deployment** | 36 | 27 canoniques + 9 mini-fiches | ✅ Complet (36/36) |
| **Dashboard** | 25 | 23 canoniques + 2 mini-fiches | ✅ Complet (25/25) |
| **ActivityPub / Fediverse** | 34 | 34 canoniques + 0 mini-fiche | ✅ Complet (34/34, 2ème plus grosse catégorie) |
| **Tracking** | 28 | 28 canoniques + 0 mini-fiche | ✅ Complet (28/28) |
| **Front End** | 25 | 21 canoniques + 4 mini-fiches | ✅ Complet (25/25) |
| **Books** | 23 | 22 canoniques + 1 mini-fiche | ✅ Complet (23/23) |
| **Downloads** | 22 | 22 canoniques + 0 mini-fiche | ✅ Complet (22/22) |
| **Gaming** | 22 | 22 canoniques + 0 mini-fiche | ✅ Complet (22/22) |
| **Music** | 20 | 20 canoniques + 0 mini-fiche | ✅ Complet (20/20) |
| **Artificial Intelligence** | 18 | 17 canoniques + 1 mini-fiche | ✅ Complet (18/18) |
| **Wiki** | 15 | 15 canoniques + 0 mini-fiche | ✅ Complet (15/15) |
| **Accounting** | 14 | 14 canoniques + 0 mini-fiche | ✅ Complet (14/14) |
| **Budgeting** | 20 | 20 canoniques + 0 mini-fiche | ✅ Complet (20/20) |
| **Web Analytics** | 14 | 14 canoniques + 0 mini-fiche | ✅ Complet (14/14) |
| **Cloud Storage** | 14 | 14 canoniques + 0 mini-fiche | ✅ Complet (14/14) |
| **Bookmarks** | 14 | 14 canoniques + 0 mini-fiche | ✅ Complet (14/14) |
| **Feed Reader** | 13 | 12 canoniques + 1 mini-fiche | ✅ Complet (13/13) |
| **File Management** | 13 | 12 canoniques + 1 mini-fiche | ✅ Complet (13/13) |
| **Automation** | 12 | 11 canoniques + 1 mini-fiche | ✅ Complet (12/12) |
| **Networking** | 13 | 12 canoniques + 1 mini-fiche | ✅ Complet (13/13) |
| **Calendar** | 11 | 11 canoniques + 0 mini-fiche | ✅ Complet (11/11) |
| **Kanban** | 11 | 11 canoniques + 0 mini-fiche | ✅ Complet (11/11) |
| **Document Management** | 11 | 11 canoniques + 0 mini-fiche | ✅ Complet (11/11) |
| **Fitness** | 11 | 11 canoniques + 0 mini-fiche | ✅ Complet (11/11) |
| **File Transfer and Sync** | 10 | 9 canoniques + 1 mini-fiche | ✅ Complet (10/10) |
|| **URL Shortener** | 9 | 9 canoniques + 0 mini-fiche | ✅ Complet (9/9) |
|| **Pastebin** | 6 | 6 canoniques + 0 mini-fiche | ✅ Complet (6/6) |
|| **Document Signing** | 3 | 3 canoniques + 0 mini-fiche | ✅ Complet (3/3) |
|| **Search** | 2 | 2 canoniques + 0 mini-fiche | ✅ Complet (2/2) |
|| **Search Engines** | 4 | 4 canoniques + 0 mini-fiche | ✅ Complet (4/4) |
|| **Recipes** | 6 | 6 canoniques + 0 mini-fiche | ✅ Complet (6/6) |
|| **Health and Wellness** | 3 | 3 canoniques + 0 mini-fiche | ✅ Complet (3/3) |

### 📋 Catégories Non Démarrées (par priorité)

#### 🥇 Infrastructure (recommandé pour prochaine session)
- **Docker** : Portainer, Yacht, Dockge, Dockside, etc.
- **Database** : PostgreSQL, MariaDB, MongoDB, NocoDB, etc.
- **VPN** : WireGuard, OpenVPN, Headscale, NetBird, Nebula
- **Backups** : restic (déjà entité), Borg, Kopia, Duplicati, etc.
- **DNS** : Pi-hole (déjà fait), Technitium (déjà fait), CoreDNS, Unbound

#### 🥈 Productivité
- **Email** : Stalwart, Mailcow, Mailu, Poste.io, iRedMail
- **Calendar** : Radicale, Cal.com, Baïkal
- **Kanban** : Wekan, Planka, Focalboard, Kanboard
- **Wiki** : Wiki.js, BookStack, Outline, DokuWiki

#### 🥉 Médias & Communication
- **Media Streaming** : Jellyfin, Plex, Emby
- **Photo** : Immich, PhotoPrism, Lychee
- **Music** : Navidrome, Funkwhale, Airsonic
- **Messaging** : Element/Matrix, Rocket.Chat, Mattermost

#### 🏠 Domestique & Business
- **Home Automation** : Home Assistant, OpenHAB
- **CRM**, **ERP**, **Accounting** : Dolibarr, Akaunting, Invoice Ninja

## 💎 Conventions & Stratégies

### 1. Stratégie de Déduplication (innovation clé)

Pour une app apparaissant dans N catégories :
- **1 fiche canonique** (détaillée, ~5 Ko) dans sa catégorie principale
- **N-1 mini-fiches** (redirections, ~1 Ko) dans les autres catégories

**Format mini-fiche** :
```markdown
---
title: Nom de l'app (Catégorie X)
type: app-redirect
---
# 🔑 Nom — Version Catégorie X
> ⚠️ Redirection : voir [[app-nom]] dans [[cat-y]]
## Vue rapide + pourquoi dans cette catégorie
```

**Apps déjà dédupliquées** :
- `[[app-vaultwarden]]` → canonique dans 2FA, mini-fiche dans Password Manager
- `[[app-bitwarden]]` → idem
- `[[app-passbolt]]` → idem

### 2. Format Standardisé (template)

Chaque fiche d'app suit ce gabarit :
1. **Tableau métadonnées** (site, GitHub, license, langage, étoiles, MAJ, catégorie)
2. **Description** (2-3 paragraphes avec positionnement)
3. **Installation** (Docker Compose + variante Traefik)
4. **Configuration initiale** (étapes pas-à-pas)
5. **Alternatives** (open source + propriétaires, avec comparaisons)
6. **Sécurité** (points clés)
7. **Ressources** (liens externes)
8. **Pages Liées** (vers autres pages du wiki)

### 3. Convention de Nommage

- **Apps** : `app-{nom-kebab-case}.md`
- **Catégories** : `cat-{tag-kebab-case}.md`
- **Tags** : en kebab-case aussi (ex: `auto-hebergement`, `ad-block`)
- **Frontmatter** : `type: app | app-redirect | concept | recipe | query`

### 4. Frontmatter Type

```yaml
---
title: Nom de l'app
created: YYYY-MM-DD
updated: YYYY-MM-DD
type: app             # ou app-redirect
tags: [catalogue, tag1, tag2]
confidence: high | medium | low
contested: false
sources: [URL selfh.st]
---
```

## 🚀 Stratégie de Traitement par Session

### Approche Recommandée

| Par session | Volume | Format |
| :--- | :---: | :--- |
| **Légère** | 2-3 catégories | Top 5 apps chacune |
| **Standard** | 3-5 catégories | Top 5-7 apps chacune |
| **Intensive** | 5-8 catégories | Top 5-10 apps |

### Ordre d'Attaque (par utilité)

1. **Infrastructure** (Docker, Database, VPN, Backups, DNS)
2. **Sécurité** (Auth, Identity, Firewall, Auditing)
3. **Productivité** (Note, Email, Calendar, Kanban, Wiki)
4. **Médias** (Streaming, Photo, Music, Books)
5. **Communication** (Messaging, Email, Video, Fediverse ✅)
6. **Domestique** (Home Automation, Domotique)
7. **Business** (CRM, ERP, Accounting)
8. **Divers** (le reste, par ordre alphabétique)

### 📜 Apps Déjà Documentées (273)

### 🔗 URL Shortener (9) ✅ Complet (9/9)
`[[app-dub]]`, `[[app-yourls]]`, `[[app-kutt]]`, `[[app-sink]]`, `[[app-shlink]]`, `[[app-slash]]`, `[[app-chhoto-url]]`, `[[app-fli-so]]`, `[[app-flink]]`

### 📋 Pastebin (6) ✅ Complet (6/6)
`[[app-privatebin]]`, `[[app-opengist]]`, `[[app-wastebin]]`, `[[app-paaster]]`, `[[app-pastefy]]`, `[[app-chiyogami]]`

### ✍️ Document Signing (3) ✅ Complet (3/3)
`[[app-docuseal]]`, `[[app-documenso]]`, `[[app-opensign]]`

### 🔍 Search (2) ✅ Complet (2/2)
`[[app-meilisearch]]`, `[[app-hister]]`

### 🌐 Search Engines (4) ✅ Complet (4/4)
`[[app-searxng]]`, `[[app-whoogle]]`, `[[app-serpbear]]`, `[[app-meme-search]]`

### 🍽️ Recipes (6) ✅ Complet (6/6)
`[[app-mealie]]`, `[[app-norish]]`, `[[app-bar-assistant]]`, `[[app-vanilla-cookbook]]`, `[[app-tamari]]`, `[[app-liquor-locker]]`

### 💊 Health and Wellness (3) ✅ Complet (3/3)
`[[app-medikeep]]`, `[[app-nutritrace]]`, `[[app-calorific]]`

### 🔐 2FA (7)
`[[app-vaultwarden]]`, `[[app-ente-auth]]`, `[[app-bitwarden]]`, `[[app-passbolt]]`, `[[app-2fauth]]`, `[[app-defguard]]`, `[[app-authman]]` (⚠️ stale)

### 🛡️ Ad Block (7)
`[[app-pihole]]`, `[[app-adguard-home]]`, `[[app-technitium-dns]]`, `[[app-blocky]]`, `[[app-isponsorblocktv]]`, `[[app-adguardhome-sync]]`, `[[app-gravity]]`

### 🔑 Password Manager (7)
`[[app-keepassxc]]`, `[[app-infisical]]`, `[[app-openbao]]`, `[[app-password-pusher]]`, `[[app-aliasvault]]`, `[[app-yeetfile]]`, `[[app-origamivault]]`

### 🚦 Reverse Proxy (28) ✅ Complet
`[[app-caddy]]`, `[[app-traefik]]`, `[[app-nginx-proxy-manager]]`, `[[app-pangolin]]`, `[[app-haproxy]]` *(préexistantes)* + `[[app-safeline]]`, `[[app-nginx-proxy]]`, `[[app-oauth2-proxy]]`, `[[app-cloudflared]]`, `[[app-nginx-ui]]`, `[[app-step-ca]]`, `[[app-tinyauth]]`, `[[app-zoraxy]]`, `[[app-swag]]`, `[[app-godoxy]]`, `[[app-docker-socket-proxy]]`, `[[app-dockflare]]`, `[[app-npmplus]]`, `[[app-immich-public-proxy]]`, `[[app-self-hosted-gateway]]`, `[[app-caddymanager]]`, `[[app-nps-enhanced]]`, `[[app-traefik-log-dashboard]]`, `[[app-jellyswarrm]]`, `[[app-cert-warden]]`, `[[app-middleware-manager]]`, `[[app-traefik-kop]]`, `[[app-mantrae]]` *(nouvelles)*

### 📊 Monitoring (30) ✅ Complet (top 30)
**Préexistantes (4)** : `[[app-uptime-kuma]]`, `[[app-netdata]]`, `[[app-prometheus]]`, `[[app-glances]]`
**Nouvelles (26)** : `[[app-world-monitor]]`, `[[app-sentry]]`, `[[app-changedetection]]`, `[[app-signoz]]`, `[[app-beszel]]`, `[[app-netbox]]`, `[[app-cadvisor]]`, `[[app-victoriametrics]]`, `[[app-cachet]]`, `[[app-gatus]]`, `[[app-nezha]]`, `[[app-healthchecks]]`, `[[app-checkmate]]`, `[[app-scrutiny]]`, `[[app-oneuptime]]`, `[[app-watchyourlan]]`, `[[app-netalertx]]`, `[[app-zabbix]]`, `[[app-pulse]]`, `[[app-xyops]]`, `[[app-patchmon]]`, `[[app-kite-kubernetes]]`, `[[app-checkcle]]`, `[[app-statping-ng]]`, `[[app-smokeping]]`, `[[app-peekaping]]`

**Non documentées (7)** : Atlas, Notifiarr, Nutify, Global Threat Map, Sosse, Maintenant, TestFlight Watcher, Webcap (niche/redondant pour le top 30)

### 🐳 Docker (34) ✅ Complet (top 30 + 4 mini-fiches)
**Canoniques (30)** : `[[app-portainer]]`, `[[app-dockge]]`, `[[app-dozzle]]`, `[[app-komodo]]`, `[[app-arcane]]`, `[[app-unregistry]]`, `[[app-dockhand]]`, `[[app-diun]]`, `[[app-docker-volume-backup]]`, `[[app-wud]]`, `[[app-sablier]]`, `[[app-dockcheck]]`, `[[app-dockpeek]]`, `[[app-loggifly]]`, `[[app-oxker]]`, `[[app-doco-cd]]`, `[[app-tugtainer]]`, `[[app-cup-updates]]`, `[[app-dweebui]]`, `[[app-compose-craft]]`, `[[app-squirrel-servers-manager]]`, `[[app-portall]]`, `[[app-deployrr]]`, `[[app-docker-registry-browser]]`, `[[app-dockman]]`, `[[app-prunemate]]`, `[[app-docking-station]]`, `[[app-patchpanda]]`, `[[app-seelf]]`, `[[app-dockwatch]]`

**Mini-fiches de redirection (4)** : `[[app-uptime-kuma-docker]]`, `[[app-beszel-docker]]`, `[[app-cadvisor-docker]]`, `[[app-docker-socket-proxy-docker]]` (apps déjà canoniques dans monitoring ou reverse-proxy)

**Non documentées (9)** : Cupdate, LogForge, Repliqate, Dock-Dploy, AnyAppStart, Container Hub, docker-php-startpage, Yacht, managebot (chevauchement fonctionnel)

### 🗄️ Database (25) ✅ Complet (25/25 — catégorie entière)
**Canoniques (23)** : `[[app-apache-superset]]`, `[[app-nocodb]]`, `[[app-directus]]`, `[[app-influxdb]]`, `[[app-valkey]]`, `[[app-chartdb]]`, `[[app-teable]]`, `[[app-grist]]`, `[[app-phpmyadmin]]`, `[[app-databasus]]`, `[[app-dbgate]]`, `[[app-mathesar]]`, `[[app-baserow]]`, `[[app-cloudbeaver]]`, `[[app-whodb]]`, `[[app-chartbrew]]`, `[[app-pgadmin]]`, `[[app-pg-back-web]]`, `[[app-portabase]]`, `[[app-velld]]`, `[[app-redict]]`, `[[app-dynamodb-dashboard]]`, `[[app-visual-db]]`

**Mini-fiches de redirection (2)** : `[[app-prometheus-database]]`, `[[app-victoriametrics-database]]` (déjà canoniques dans monitoring)

**Catégorie entière documentée** : 25 ≤ 30 apps, donc pas de troncature top 30.

### 💾 Backups (24) ✅ Complet (24/24 — 2ème catégorie entière)
**Canoniques (18)** : `[[app-restic]]`, `[[app-duplicati]]`, `[[app-borg]]`, `[[app-kopia]]`, `[[app-backrest]]`, `[[app-zerobyte]]`, `[[app-duplicacy]]`, `[[app-backuppc]]`, `[[app-borg-ui]]`, `[[app-home-assistant-time-machine]]`, `[[app-git-sync]]`, `[[app-vykar]]`, `[[app-pluton]]`, `[[app-gitsave]]`, `[[app-repliqate]]`, `[[app-borg-backup-server]]`, `[[app-unraid-guardian]]`, `[[app-civitai-data-manager]]`

**Mini-fiches de redirection (6)** : `[[app-databasus-backups]]`, `[[app-docker-volume-backup-backups]]`, `[[app-pg-back-web-backups]]`, `[[app-tugtainer-backups]]`, `[[app-portabase-backups]]`, `[[app-velld-backups]]` (4 vers database, 2 vers docker — **record de collisions : 25%**)

**Catégorie entière documentée** : 24 ≤ 30 apps, donc pas de troncature top 30. **Record de collisions** : 6/24 = 25% des apps ont une catégorie principale ailleurs.

### 🔐 VPN (13) ✅ Complet (13/13 — 3ème catégorie entière)
**Canoniques (10)** : `[[app-headscale]]`, `[[app-wg-easy]]`, `[[app-netbird]]`, `[[app-teleport]]`, `[[app-openvpn]]`, `[[app-amnezia]]`, `[[app-wgdashboard]]`, `[[app-wiredoor]]`, `[[app-ztnet]]`, `[[app-docktail]]`

**Mini-fiches de redirection (3)** : `[[app-pangolin-vpn]]`, `[[app-defguard-vpn]]`, `[[app-self-hosted-gateway-vpn]]` (Pangolin et Self-Hosted Gateway → reverse-proxy, Defguard → 2fa)

**Catégorie entière documentée** : 13 ≤ 30 apps, donc pas de troncature. Plus petite catégorie du catalogue — reflète la consolidation autour de WireGuard/Tailscale.

### 📋 Logs (14) ✅ Complet (14/14 — 4ème catégorie entière)
**Canoniques (10)** : `[[app-loki]]`, `[[app-quickwit]]`, `[[app-graylog]]`, `[[app-parseable]]`, `[[app-logdy]]`, `[[app-kubetail]]`, `[[app-logchef]]`, `[[app-fail2ban-report]]`, `[[app-logforge]]`, `[[app-anyappstart]]`

**Mini-fiches de redirection (4)** : `[[app-netdata-logs]]`, `[[app-dozzle-logs]]` (déjà existant), `[[app-loggifly-logs]]`, `[[app-traefik-log-dashboard-logs]]`

**Catégorie entière documentée** : 14 ≤ 30 apps, donc pas de troncature. **Note** : Graylog utilise SSPL-1.0 (⚠️ pas OSS strict depuis 2021).

### 📡 DNS (10) ✅ Complet (10/10 — 5ème catégorie entière)
**Canoniques (5)** : `[[app-ddclient]]`, `[[app-unbound]]`, `[[app-ddns-updater]]`, `[[app-goaway]]`, `[[app-dumbwhois]]`

**Mini-fiches de redirection (5)** : `[[app-pi-hole-dns]]`, `[[app-adguard-home-dns]]`, `[[app-technitium-dns]]`, `[[app-blocky-dns]]`, `[[app-gravity-dns]]` (toutes vers cat-ad-block)

**Catégorie entière documentée** : 10 ≤ 30 apps. **Particularité** : 50% des apps DNS sont déjà documentées dans Ad Block (Pi-hole, AdGuard, etc.), d'où le nombre élevé de mini-fiches.

### 🧱 Static Site (5) ✅ Complet (5/5 — 6ème catégorie entière)
**Canoniques (5)** : `[[app-zensical]]`, `[[app-zaneops]]`, `[[app-tinyfeed]]`, `[[app-properdocs]]`, `[[app-stencilbox]]`

**Mini-fiches de redirection (0)** : aucune collision détectée avec les catégories déjà documentées.

**Catégorie entière documentée** : 5 ≤ 30 apps. **Particularité** : tag très petit et hétérogène, mélangeant de vrais générateurs statiques (Zensical, ProperDocs, tinyfeed, StencilBox) et une plateforme de déploiement (ZaneOps) classée ici par selfh.st.

### 📝 Note-Taking (30) ✅ Complet (top 30/38)
**Canoniques (30)** : `[[app-appflowy]]`, `[[app-affine]]`, `[[app-memos]]`, `[[app-joplin]]`, `[[app-siyuan]]`, `[[app-outline]]`, `[[app-trilium-notes]]`, `[[app-etherpad]]`, `[[app-docs-collaboration]]`, `[[app-obsidian-livesync]]`, `[[app-blinko]]`, `[[app-hedgedoc]]`, `[[app-standard-notes]]`, `[[app-livebook]]`, `[[app-silverbullet]]`, `[[app-librum]]`, `[[app-flatnotes]]`, `[[app-notediscovery]]`, `[[app-jotty]]`, `[[app-haptic]]`, `[[app-alexandrie]]`, `[[app-xwiki]]`, `[[app-journiv]]`, `[[app-zen-notes]]`, `[[app-anchor-notes]]`, `[[app-many-notes]]`, `[[app-notesnook]]`, `[[app-nextcloud-notes]]`, `[[app-note-mark]]`, `[[app-poznote]]`

**Mini-fiches de redirection (0)** : aucune collision détectée avec les catégories déjà documentées.

**Non documentées (8)** : Glass Keep, DailyTXT, DumbPad, Owlistic, Silicon Notes, Sticky, Nanote, eziwiki (long-tail laissé pour une session ultérieure si besoin).

**Catégorie entière documentée** : 38 apps au total sur selfh.st. **Particularité** : tag très hétérogène, mélangeant notes personnelles, PKM, wikis/documentation, journaux privés et briques de sync comme Obsidian LiveSync.

### 🌐 ActivityPub / Fediverse (34) ✅ Complet (34/34 — 2ème plus grosse catégorie)
**Canoniques (34)** : `[[app-mastodon]]`, `[[app-misskey]]`, `[[app-peertube]]`, `[[app-pixelfed]]`, `[[app-funkwhale]]`, `[[app-lemmy]]`, `[[app-pinkary]]`, `[[app-writefreely]]`, `[[app-friendica]]`, `[[app-bookwyrm]]`, `[[app-mbin]]`, `[[app-piefed]]`, `[[app-nodebb]]`, `[[app-mobilizon]]`, `[[app-akkoma]]`, `[[app-pleroma]]`, `[[app-snac]]`, `[[app-mitra]]`, `[[app-hollo]]`, `[[app-ktistec]]`, `[[app-gotosocial]]`, `[[app-castopod]]`, `[[app-gancio]]`, `[[app-hubzilla]]`, `[[app-loops]]`, `[[app-neodb]]`, `[[app-flohmarkt]]`, `[[app-postmarks]]`, `[[app-touitomamout]]`, `[[app-gathio]]`, `[[app-betula]]`, `[[app-ties]]`, `[[app-tootik]]`, `[[app-socialhome]]`

**Mini-fiches de redirection (0)** : aucune collision détectée.

**Catégorie entière documentée** : 34 apps, stratégie en 2 vagues (top 10 + #11-20 + #21-30 en parallèle, rattrapage 10 dernières après timeout du batch B). **Particularité** : tag très riche, couvrant 11 sous-usages (microblogging, vidéo, photo, audio, agrégateurs, bookmarks, blogging, forums, événements, marché, multi-fonctions). Stack technique variée : Elixir (5), Rust (4), Node.js (2), Python (3), Go (3), PHP (2), Ruby (1), Crystal (1), C (1), Java (1). **Note** : Pleroma est en maintenance minimale — préférer Akkoma. Hollo/Betula/Ties/Tootik/Socialhome = bus factor 1, projets hobbyistes.

### 📊 Tracking (28) ✅ Complet (28/28)
**Canoniques (28)** : `[[app-snipe-it]]`, `[[app-traccar]]`, `[[app-teslamate]]`, `[[app-datasette]]`, `[[app-adventurelog]]`, `[[app-yamtrack]]`, `[[app-open-dronelog]]`, `[[app-wanderer]]`, `[[app-ryot]]`, `[[app-domainmod]]`, `[[app-baby-buddy]]`, `[[app-sprout-track]]`, `[[app-koillection]]`, `[[app-dribdat]]`, `[[app-traggo]]`, `[[app-tracktor]]`, `[[app-dumbassets]]`, `[[app-dvinyl]]`, `[[app-warracker]]`, `[[app-vouchervault]]`, `[[app-perfice]]`, `[[app-clean-slate]]`, `[[app-operational]]`, `[[app-spacepad]]`, `[[app-bricktracker]]`, `[[app-faridoon]]`, `[[app-cannery]]`, `[[app-myheats]]`

**Mini-fiches de redirection (0)** : aucune collision détectée.

**Catégorie entière documentée** : 28 apps, stratégie en 2 vagues (top 10 + mid 10 + fin 8 en parallèle, rattrapage 8 dernières après double timeout batches 2+3). **Particularité** : tag **extrêmement hétérogène** (12 sous-usages : assets IT, GPS, véhicules, collections, time tracking, bébé, financier, habitudes, données, événements, niche). 3 stars majeurs (Snipe-IT 3854⭐, Traccar 3267⭐, TeslaMate 935⭐) + 5 apps hobbyistes ⭐0-12 (Cannery, MyHeats, BrickTracker, Spacepad, Faridoon). **Note** : 4 apps en `confidence: low` (projets jeunes, bus factor 1).

### 🖥️ Front End (25) ✅ Complet (25/25)
**Canoniques (21)** : `[[app-invidious]]`, `[[app-piped]]`, `[[app-redis-commander]]`, `[[app-vuetorrent]]`, `[[app-redlib]]`, `[[app-fladder]]`, `[[app-beatbump]]`, `[[app-owntracks-frontend]]`, `[[app-materialious]]`, `[[app-proxcenter]]`, `[[app-quetre]]`, `[[app-crn-master]]`, `[[app-nimtable]]`, `[[app-anonymous-overflow]]`, `[[app-lurker]]`, `[[app-priviblur]]`, `[[app-couchtube]]`, `[[app-mkcert-web-ui]]`, `[[app-crowdsec-manager]]`, `[[app-eddrit]]`, `[[app-omnipoly]]`

**Mini-fiches de redirection (4)** : `[[app-nginx-ui-frontend]]`, `[[app-caddymanager-frontend]]`, `[[app-mantrae-frontend]]`, `[[app-fail2ban-report-frontend]]` (3 vers Reverse Proxy, 1 vers Logs)

**Catégorie entière documentée** : 25 apps, stratégie en 2 vagues (10+8+3, rattrapage 4 dernières après timeout du batch 2). 4 collisions Front End ↔ Reverse Proxy/Logs résolues par mini-fiches. **Particularité** : tag dominé par les **front-ends privacy** (YouTube : 5 apps, Reddit : 4 apps) et les **GUI pour outils serveur** (Redis, qBittorrent, Proxmox, ClickHouse, CrowdSec). Stack : JS/TS (8), Rust (4), Go (4), Crystal (1), Python (2), Haskell (1), Dart (1). 1 superstar (Invidious 2272⭐), 1 mini-star (Piped 857⭐), 23 apps <⭐500⭐. **Note** : 7 apps en `confidence: low` (Lurker, Priviblur, CouchTube, Mkcert Web UI, CrowdSec Manager, Eddrit, OmniPoly). Mkcert Web UI : ⚠️ JAMAIS exposer en prod (dev only).

## 🔗 Pages Liées au Wiki

- [[Catalogue-Self-Hosted]] — Hub principal
- [[comparatif-reverse-proxy]] — Comparaison détaillée
- [[comparatif-stack-observabilite]] — Prometheus vs SigNoz vs OneUptime
- [[recettes-docker-compose]] — Templates Docker
- [[securisation-home-lab]] — Sécurité
- [[glossaire-homelab]] — Vocabulaire
- [[monitoring-solo-dev]] — Comparatif solo dev
- [[observabilite]] — Concepts
- [[checklist-monitoring-minimal]] — Pour démarrer

## 📊 Statistiques (marathon 3 — 2026-06-08)

| Métrique | Valeur |
| :--- | :--- |
| **Total fiches apps** | **1370** (1302 canoniques + 68 mini-fiches) |
| **Catégories documentées** | **173 / 172 (100.6%)** |
| **Apps référencées (uniques)** | **1302 / 1304 (~99.8%)** |
| **Volume doc** | ~6.5 Mio |
| **Sessions marathon** | 14+ (depuis 2026-06-06) |
| **Dernier marathon** | 2026-06-08 — +226 fiches, +95 catégories, +17.3% apps |

### Catégories complètes (audit disque)
**Toutes les 172 catégories selfh.st sont documentées.** Plus 1 alias (probablement `cat-authentification`).

### Doublons de catégories détectés
- `cat-authentification.md` (alias FR historique) → fusionné vers `cat-authentication.md` (page canonique)
- `cat-securite.md` (alias FR historique) → fusionné vers `cat-security.md` (page canonique selfh.st)
- `cat-gui.md` (6), `cat-pki.md` (3), `cat-tunnel.md` (6) — nouvelles cat
- `app-tandoor.md` ↔ `app-tandoor-recipes.md` — doublon d’app fusionné ; `app-tandoor-recipes.md` gardée comme canonique

## 🧹 Audit Lint 2026-06-08 (session)

**Inventaire complet** : 1751 fichiers .md, dont 1368 fiches apps (1300 canoniques + 68 mini-fiches) et 173 pages cat.

### ✅ Quick wins appliqués

1. **Doublons supprimés** (2) : `app-active-pieces.md` (typo d'`app-activepieces`), `app-figranium.md` (typo d'`app-figrarium`). Liens corrigés dans `app-automatisch.md`, `app-flow-like.md`, `cat-workflow-automation.md`.
2. **Frontmatters complétés** (20) : 19 app-redirect (manquaient `tags` + `sources`) + `app-ddclient.md` (manquait `title` + `sources`). Tous régénérés avec un template cohérent (`confidence: medium`, `contested: false`, source selfh.st).
3. **Dossier doublon supprimé** : `E:/WIKI/catalogue-selfhosted/` (TEMPLATE-APP.md identique au vrai + 3 sous-dossiers vides).

### 📊 Distribution confidence après upgrade

| Niveau | Avant | Après |
| :--- | :---: | :---: |
| high | 929 | 929 |
| medium | 241 | **439** |
| low | 198 | **0** |

**198 fiches upgradées low → medium** après spot-check (échantillon 50 : 48 ✅ + 2 🟡 + 0 🔴). Le flag `low` était trop conservateur — toutes les fiches de plus de 1 Ko avec frontmatter complet sont en réalité de qualité `medium` ou `high`.

### 🔍 Audit 2 : quality signals

- **24 fiches `contested: true`** : toutes **légitimes** (2 propriétaires : Plex, Blue Iris ; 1 projet en déclin : Raneto ; 21 apps multi-catégories comme AFFiNE, Outline, Docs DINUM). Pas de correctif.
- **0 broken link réel** (les `\\|` sont des pipes échappés en tableau Markdown, syntaxe Obsidian valide)
- **0 fiche cat orpheline** (toutes les 173 cat ont des inbound links)
- **0 fiche isolée** (toutes les fiches canoniques ont des outbound)
- **Scan wiki large ≠ scan catalogue** : un rescan global a remonté ~335 cibles non résolues supplémentaires, mais ce sont surtout des **références éditoriales volontaires** (apps externes non documentées, catégories conceptuelles non créées, liens roadmap du hub, templates) — **pas une régression du catalogue**
- **Top hubs cohérents** : `recettes-docker-compose` (1256 inbound), `securisation-home-lab` (810), `app-traefik` (472)

### 🟡 Restant à faire (P2/P3)

- **Fusion `cat-authentification` ↔ `cat-authentication`** ✅ faite (alias FR conservé)
- **Inspecter `cat-securite` (doublon potentiel de Security)** ✅ fait — alias FR conservé vers `cat-security`
- **12 orphelins annexes** (5 guides Obsidian + 1 README + 1 ROADMAP + 1 Tags/Wiki + 35 pages `tag-*` raw = centres de tri Dataview, intentionnel)

## 💡 Pour la Prochaine Session

1. **Relire ce fichier en premier** (synchronisé 2026-06-08)
2. **PROCHAINE CATÉGORIE À FAIRE** : la plus grosse non documentée du top 20 (cf. `selfh.st/apps`) — exemples restants : Home Automation (16), Maps (?), Search Engines, etc.
3. **Commande pour voir les cat restantes triées par taille** :
   ```bash
   python3 -c "import json,urllib.request; t=json.loads(urllib.request.urlopen('https://selfhst.github.io/cdn/directory/tags.json').read()); s=json.loads(urllib.request.urlopen('https://selfhst.github.io/cdn/directory/software.json').read()); c={}; 
   [c.update({a[17][0]: c.get(a[17][0],0)+1}) for a in s if isinstance(a,list) and len(a)>17 and isinstance(a[17],list) and a[17]]; 
   td={x[0]:x[1] for x in t if isinstance(x,list) and len(x)>=2 and isinstance(x[0],int)}; 
   import os; done={f[4:-3] for f in os.listdir(r'E:/WIKI/Catalogue-Self-Hosted/categories') if f.startswith('cat-')}; 
   [print(f'{cnt:3d} {td.get(tid,str(tid)):35s} [{tid}]') for cnt,tid in sorted([(c.get(i,0),i) for i in c if td.get(i,'').lower() not in done and td.get(i,'').lower() not in {'self-hosted'}], reverse=True)[:30]]"
   ```
4. **Stratégie marathon validée** :
   - 1 batch 10 + rattrapage single (≤30 apps)
   - subagent `no web_search` + apps ≥20⭐ = 27 fiches en 8 min
   - **TOUJOURS** vérifier `os.path.exists(apps_dir/apps)` après chaque batch (bug récurrent)
   - Prompts subagent : chemins absolus Windows (`E:/WIKI/...`), pas de `cd`
5. **Mettre à jour ce fichier + hub + log en fin de session** (Velli l'a demandé explicitement 2 fois)

---

*Dernière mise à jour : 2026-06-08 (audit lint passé : 1368 fiches totales = 1300 canoniques + 68 mini-fiches, ~99.7% apps uniques de 1304, 929 high + 439 medium + 0 low, 0 broken links, 2 doublons supprimés, 20 frontmatters complétés, dossier doublon `catalogue-selfhosted/` supprimé, ~6.5 Mio)*

---

## 🏁 Audit de Clôture 2026-06-08

> **Objectif** : vérifier que la couverture est complète avant de clôturer le projet.

### 📊 Méthodologie

1. **Re-scrape selfh.st** : `software.json` (1304 apps) + `tags.json` (200 tags)
2. **Pour chaque catégorie wiki** : extraire le H1 → matcher au tag selfh.st (slugify) → comparer nb fiches vs nb apps selfh.st tag primaire
3. **Identifier les gaps** : catégories avec fiches < apps selfh.st
4. **Créer les fiches manquantes** via subagent (28 fiches en 2 batches)
5. **Re-patcher les catégories** pour intégrer les nouvelles fiches dans la liste canonique + ajuster les compteurs
6. **Recompter** : 0 gaps restants

### 🆕 Apps ajoutées pendant l'audit (28)

| Catégorie | Apps ajoutées | Couverture avant → après |
| :--- | :---: | :---: |
| **Note-Taking** | 8 (dailytxt, dumbpad, eziwiki, glass-keep, nanote, owlistic, silicon-notes, sticky) | 30/38 → **38/38** ✅ |
| **Monitoring** | 10 (atlas-network, checkcle, kite-kubernetes, maintenant, netalertx, notifiarr, nutify, smokeping, sosse, testflight-watcher) | 26/27 → **36/37** ⚠️ |
| **Maps** | 2 (global-threat-map, world-monitor) | 1/3 → **3/3** ✅ |
| **Content Management** | 1 (directus) | 7/8 → **8/8** ✅ |
| **Container Registry** | 2 (docker-registry-browser, unregistry) | 3/5 → **5/5** ✅ |
| **Feed Reader** | 2 (rss-danbrown, tinyfeed) | 12/13 → **14/14** ✅ |
| **E-commerce** | 1 (medusa) | 4/5 → **5/5** ✅ |
| **Analytics** | 1 (logchef) | 3/4 → **4/4** ✅ |
| **Firewall** | 1 (safeline) | 1/2 → **2/2** ✅ |

### 🔍 Vérification des liens cassés (broken wikilinks)

- **Total wikilinks sortants** : 12 228
- **Wikilinks vers cibles wiki inexistantes** : 658 (5.4%)
- **Répartition par section** :
  - `Pages Liées` (237) : 73 vraies cibles wiki manquantes + 164 mentions d'alternatives/concepts transverses
  - `Alternatives` (157) : mentions d'alternatives propriétaires non documentées (Wireguard, Tailscale, Postgres, Nginx, Mysql, Backup, Docker, etc.) — **info légitime, pas un bug**
  - `Description` (24), `Sécurité` (27), `Configuration` (4) : renvois info

**Top cibles non-résolues** :
- `[[observabilite]]` (29×) — concept transverse non encore créé
- `[[app-wireguard]]` (14×), `[[app-tailscale]]` (14×) — alternatives standards non documentées
- `[[cat-storage]]` (11×) — cat stub inexistante
- `[[chiffrement-bout-en-bout]]` (7×) — concept non créé
- `[[app-postgres]]`, `[[app-overseerr]]`, `[[app-jellyseerr]]`, etc. — apps alternatives populaires

**Conclusion** : ces "broken" sont en grande majorité des **mentions info légitimes** d'alternatives/concepts transverses. Un wiki à 98.2% de selfh.st ne peut pas (et ne doit pas) documenter toutes les apps propriétaires et standards industriels qui peuvent être citées comme alternatives. **Pas d'action requise.**

### ✅ Cats FR alias vs EN canonique

- `cat-authentification.md` (alias FR) → `cat-authentication.md` (canonique EN) ✅
- `cat-securite.md` (alias FR) → `cat-security.md` (canonique EN) ✅
- Conservés exprès pour les wikilinks FR existants

### 📈 Statistiques finales

| Métrique | Valeur |
| :--- | ---: |
| **Catégories documentées** | 173 / 172 (100.6%) |
| **Fiches apps totales** | 1396 (1327 canoniques + 69 mini-fiches) |
| **Apps selfh.st uniques couvertes** | 1281 / 1304 (98.2%) |
| **Apps wiki custom (hors selfh.st)** | 64 (alias, FR, custom) |
| **Gaps restants vs selfh.st** | 0 |
| **Volume apps/** | ~9.0 Mio |
| **Catégories "complètes" (top par étoiles)** | 27 |
| **Catégories 100% exhaustives** | ~120 (incl. les petites cat où toutes les apps sont là) |

### 🎯 Mission : ✅ ACCOMPLIE

- ✅ Toutes les catégories selfh.st documentées
- ✅ 98.2% des apps selfh.st ont une fiche
- ✅ Stratégie de déduplication multi-catégories validée et appliquée
- ✅ 28 fiches créées lors de l'audit final pour combler les derniers gaps
- ✅ Alias FR/EN préservés pour rétrocompatibilité
- ✅ PROJET-CATALOGUE synchronisé
- ✅ Skill `llm-wiki` patché (v2.11.0) avec toutes les leçons de la marathon

