6.9 KiB
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 :
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)
# 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.htconsomme des manifests YAML et délègue à des build workers Linux/BSD séparés (VM à provisionner à part). - Backups :
pg_dumpsur toutes les bases +tarsur 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
~sircmpwnet 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
- Documentation d'auto-hébergement
- Repositories Git de SourceHut
- Philosophie et FAQ
- Selfh.st — 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