Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+157
View File
@@ -0,0 +1,157 @@
---
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