--- title: SourceHut created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, git-hosting, ci-cd, mailing-lists, minimalist] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://sourcehut.org/] --- # 💻 SourceHut > Suite de développement **minimaliste et opinionnée** — hébergement Git, CI/CD, mailing lists, paste, todo — créée par **Drew DeVault** sous l'égide de la **Software Freedom Conservancy (SFC)**. L'anti-GitHub philosophique. ## 📋 Informations Générales | Attribut | Valeur | |----------|--------| | **Nom** | SourceHut | | **Slug** | sourcehut | | **Description** | Suite dev open source : git, CI, mailing lists, paste | | **Site officiel** | https://sourcehut.org/ | | **Repository** | https://git.sr.ht/~sircmpwn/sr.ht | | **Stars** | 0 ⭐ sur selfh.st (~2 500 ⭐ cumulés) | | **Licence** | AGPL 3.0 (serveur) | | **Langage** | Python (Flask), Go, PostgreSQL | | **Catégorie** | Development | | **Note** | ✅ **Projet mature** créé par **Drew DeVault** (sircmpwn) et hébergé par la **Software Freedom Conservancy**. C'est l'alternative la plus crédible à GitHub dans une philosophie **FOSS radicale, sans tracking, sans JS obligatoire**. | ## 📝 Description **SourceHut** (prononcer « source-hat », abréviation **sr.ht**) est une **suite de développement** open source modulaire, créée par **Drew DeVault** (également créateur de sway, wlroots, contributeur central de l'écosystème Wayland) et administrée par la **Software Freedom Conservancy** (SFC, organisation derrière Git, BusyBox, etc.). **Architecture en briques** : SourceHut n'est pas un monolithe. La suite se compose de **services indépendants** communicant via OAuth : **gitsrht** (hébergement Git), **buildsrht** (CI/CD avec runners), **listssrht** (mailing lists), **pastesrht** (pastebin), **todosrht** (tickets), **metasrht** (auth + profils), **hubsrht** (dashboard). On peut auto-héberger la suite complète ou seulement les briques utiles. **Philosophie** : workflow **Unix**, **mailing lists en première classe** (les patches s'envoient par email, à la mode LKML/Linux), **pas de JavaScript obligatoire** côté client, **pas de tracking**, **pas de walled garden**, et une **CLI robuste** (`hut`). C'est le choix naturel des développeurs qui veulent **réapprendre les outils « old-school »** de l'open source. **Usage typique** : héberger projets personnels, dotfiles, blog (man.sr.ht), collaborer via mailing lists. Le `builds.sr.ht` est utilisé massivement par les mainteneurs Wayland et de nombreux projets C/Go. **SourceHut n'est pas un clone de GitHub** : c'est une approche fondamentalement différente, optimisée pour la lecture, l'archive à long terme, et l'open source sérieux. ## 🚀 Installation ### Installation recommandée (manuelle, complexe) SourceHut **n'a pas d'image Docker officielle** (par philosophie, l'équipe fournit des playbooks Ansible/Shell). L'installation est lourde (~6 services) mais bien documentée : ```bash git clone https://git.sr.ht/~sircmpwn/sr.ht cd sr.ht # Dépendances : Python 3.11+, PostgreSQL 13+, Redis, nginx # Mail server (Postfix) pour lists.sr.ht # Mercurial, Git, CVS, Subversion (pour gitsrht) sudo ./scripts/install.sh # Configurer la base cd metasrht && make database # Démarrer via systemd sudo systemctl enable --now gitsrht buildsrht listssrht metasrht ``` ### Docker (community-maintained, à vérifier) ```yaml # docker-compose.yml (approximatif) version: "3.8" services: metasrht: image: sourcehut/metasrht:latest restart: unless-stopped environment: - SRHT_DOMAIN=git.example.com - DATABASE_URL=postgres://srht:CHANGEME@db:5432/metasrht depends_on: - db gitsrht: image: sourcehut/gitsrht:latest restart: unless-stopped environment: - SRHT_DOMAIN=git.example.com - OAUTH_CLIENT_ID=CHANGEME - OAUTH_CLIENT_SECRET=CHANGEME depends_on: - metasrht buildsrht: image: sourcehut/buildsrht:latest restart: unless-stopped environment: - SRHT_DOMAIN=builds.example.com depends_on: - metasrht listssrht: image: sourcehut/listssrht:latest restart: unless-stopped environment: - SRHT_DOMAIN=lists.example.com depends_on: - metasrht db: image: postgres:13 restart: unless-stopped environment: - POSTGRES_USER=srht - POSTGRES_PASSWORD=CHANGEME volumes: - pgdata:/var/lib/postgresql/data volumes: pgdata: ``` ## ⚙️ Configuration - **Sous-domaines dédiés** : `git.example.com`, `builds.example.com`, `lists.example.com`, `meta.example.com` — un vhost par service derrière Traefik/Caddy, certificat Let's Encrypt par sous-domaine. - **OAuth interne** : chaque brique s'authentifie auprès de `metasrht` (service d'identité) — enregistrer manuellement chaque sous-service comme client OAuth. - **Mail sortant** : configurer un **relais SMTP** (Mailgun, Postmark, ou Postfix local) — SourceHut envoie **beaucoup** d'emails (notifications, patches). - **Runners CI** : `builds.sr.ht` consomme des **manifests YAML** et délègue à des **build workers** Linux/BSD séparés (VM à provisionner à part). - **Backups** : `pg_dump` sur toutes les bases + `tar` sur les repos Git (`~srht/git/`) — **quotidien**. ## 🔗 Alternatives - **[[app-gitea]] / [[app-forgejo]]** — Forges Git plus accessibles, UI moderne, workflow « post-commit » classique. - **[[app-gitlab]]** — Plateforme complète CI/CD, plus industrielle, plus lourde à maintenir. - **[[app-phorge]]** — Fork de Phabricator, workflow pre-commit, focus collaboration. - **Savannah (GNU)** — Le « grand-père » de l'hébergement FOSS, encore actif. - **Pagure** — Forge Python du projet Fedora, mailing lists natives. ## 🔒 Sécurité - **Surface d'attaque** : 4-6 services web + mail + base — **segmenter** avec Traefik, mTLS interne entre services via réseau Docker ou Wireguard. - **Mises à jour** : suivre le blog `~sircmpwn` et la mailing list `~sircmpwn/meta.sr.ht` — l'équipe publie des advisories clairs. - **Authentification** : 2FA activable par TOTP, **imposé pour les admins**. - **HTTPS obligatoire** : Let's Encrypt via Traefik, HSTS strict (`max-age=31536000`). - **Tokens** : rotation régulière des tokens OAuth entre services. ## 📚 Ressources - [Site officiel SourceHut](https://sourcehut.org/) - [Documentation d'auto-hébergement](https://man.sr.ht/installation.md) - [Repositories Git de SourceHut](https://git.sr.ht/~sircmpwn) - [Philosophie et FAQ](https://sourcehut.org/principles/) - [Selfh.st — Development](https://selfh.st/apps/?tag=Development) ## 🔗 Pages Liées - [[cat-development]] — Catégorie Development - [[app-gitea]] — Alternative moderne plus accessible - [[app-phorge]] — Plateforme collaboration pre-commit - [[app-traefik]] — Reverse-proxy HTTPS recommandé - [[securisation-home-lab]] — Bonnes pratiques de sécurité - [[recettes-docker-compose]] — Templates Docker