Dockerfile multi-stage (golang:1.22-alpine → scratch) pour un build
autonome. docker-compose sans version obsolète, pull:false pour le
builder, pull_policy:if_not_present pour nginx.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ConfigurationDirectoryMode 0750→0755 : le DynamicUser (sans groupe root)
peut maintenant traverser /etc/nanometrics et lire config.toml
- chmod 644 systématique sur config.toml même si conservé (corrige les
anciennes installs en 640 qui causent un PermissionDenied au démarrage)
- Prompt interactif si config existe : o=écraser, N=conserver ; variable
OVERWRITE_CONFIG=true pour forcer sans interaction (curl|bash)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Avec DynamicUser=yes, le fichier config.toml créé en root:root 640
n'est pas lisible par l'utilisateur dynamique → exit 101 (panic Rust).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- deploy/install.sh : installeur curl-able (détecte l'arch, télécharge
depuis la dernière release Gitea, configure le service systemd)
- deploy/release.sh : build musl statique x86_64 + aarch64, crée la
release Gitea et uploade les binaires en asset
- deploy/install-agent.sh : installeur local depuis le binaire compilé
- server/Dockerfile.dev + docker-compose.dev.yml : stack dev Docker
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>