fix
build / Garde-fou (pull_request) Successful in 11s
build / Images Harbor (catalog-sync, Dockerfile.catalog-sync) (pull_request) Skipped
build / Images Harbor (web, Dockerfile) (pull_request) Skipped
build / Garde-fou (push) Successful in 12s
build / Images Harbor (catalog-sync, Dockerfile.catalog-sync) (push) Successful in 9m43s
build / Images Harbor (web, Dockerfile) (push) Successful in 11m28s

This commit is contained in:
hcornet committed 2026-09-10 11:56:39 +02:00
1 parent add741df81
commit c51a6379bd
5 files changed
+113 -78

No files matched your search

+17
View File
@@ -89,3 +89,20 @@ docker compose ps # état des healthcheck
Utilisateur non root (uid 10001), racine en lecture seule, `/tmp` en tmpfs, toutes les
capacités retirées, `no-new-privileges`, corps de requête plafonné à 2 Mo, en-têtes CSP,
`nosniff` et `no-referrer` posés par l'application, limitation de débit au niveau de Traefik.
## Le registre et le tunnel
Le runner Gitea et Harbor sont sur le meme reseau. Faire sortir les couches d'images par le
tunnel Cloudflare pour revenir chez soi n'a pas d'interet, et le plan gratuit plafonne les
corps de requete a 100 Mo : une couche plus grosse est coupee net, avec un `413 Payload Too
Large` en pleine publication.
La resolution interne evite le probleme. Sur l'hote du runner, dans le compose du runner :
```yaml
extra_hosts:
- "registry.tips-of-mine.com:<ip-locale-de-harbor>"
```
Le nom reste identique, donc les tags des images ne changent pas et le certificat reste
valide. Seul le chemin reseau change.
+12 -3
View File
@@ -20,7 +20,12 @@ Sur `enclume` :
- branche par défaut `main`, protégée : pas de push direct, fusion par pull request
- Actions activées, avec un runner ayant accès au démon Docker
- secrets du dépôt : `HARBOR_USER` et `HARBOR_TOKEN` (le compte robot créé plus bas)
- **variables** du dépôt (ou de l'organisation, pour les partager entre projets) :
`HARBOR_HOST` = `registry.tips-of-mine.com`, `HARBOR_PROJECT` = `enclume`
- **secrets** : `HARBOR_USERNAME` et `HARBOR_PASSWORD` (le compte robot créé plus bas)
Ces noms sont ceux déjà utilisés par tes autres projets : définis-les au niveau de
l'organisation et tout nouveau dépôt en hérite.
- licence MIT à la racine
Sur `enclume-catalogue` : même protection de branche. C'est là qu'arriveront les soumissions
@@ -31,13 +36,17 @@ modérées du chantier 5.
Projet **`enclume`**, en accès **public** : n'importe qui peut alors tirer les images pour
s'auto-héberger, sans compte chez toi. Seule la publication demande une authentification.
Dépôts créés automatiquement au premier push : `enclume/web` et `enclume/catalog-sync`.
Dépôts créés automatiquement au premier push : `enclume/web` et `enclume/catalog-sync`, en
linux/amd64 et linux/arm64 — de quoi s'auto-héberger sur un NAS ou un Raspberry Pi.
### Compte robot
Créer un robot au niveau du projet, nommé `robot$enclume-ci`, avec les droits
**push** et **pull** sur les dépôts — rien d'autre, pas de suppression. Le secret généré
va dans `HARBOR_TOKEN` côté Gitea, le nom complet du robot dans `HARBOR_USER`.
va dans `HARBOR_PASSWORD` côté Gitea, le nom complet du robot dans `HARBOR_USERNAME`.
Le robot doit aussi avoir le droit **scan** sur les artefacts : la CI déclenche l'analyse
par l'API Harbor juste après la publication, et sans ce droit l'étape échoue en 403.
### Immuabilité des versions