GITEA_HOSTNAME faisait double usage : hostname nu pour le getent MagicDNS du start_pre(), et implicitement (via les instructions affichées) base de l'URL d'enregistrement (http://gitea.taila5ad8.ts.net:3000). Après le passage à tailscale serve --https=443 (#19), l'instance est joignable sur 443 sans port.
Changement
GITEA_HOSTNAME reste un hostname nu, inchangé, toujours consommé par le getent du start_pre().
Nouvelle variable GITEA_INSTANCE_URL, dérivée par défaut (https://${GITEA_HOSTNAME}), propagée par exec_in_lxc(), utilisée dans les instructions d'enregistrement affichées en fin d'install (--instance ${GITEA_INSTANCE_URL}).
check_runner_url_drift() : si .runner existe et pointe sur une URL différente de GITEA_INSTANCE_URL, avertissement affiché avec la marche à suivre — le script ne touche jamais .runner automatiquement (détruire silencieusement un runner enregistré et fonctionnel serait un mauvais comportement pour un script rejouable). Appelée en début de update_runner(), donc sur tout rejeu d'un runner déjà installé.
gitea-runner/README.md : tableau des variables mis à jour, nouvelle section « Re-registration » avec la procédure manuelle (stop → suppression de .runner → ré-enregistrement avec un token frais → start).
Vérification
Fonctions testées isolément dans un conteneur Alpine jetable (source, sans passer par main()) :
.runner avec address différente de GITEA_INSTANCE_URL → avertissement affiché, fichier non supprimé.
.runner avec address identique → silencieux, aucun effet de bord.
shellcheck gitea-runner/install.sh : aucune nouvelle alerte (seul le SC1091 info préexistant, identique à openbao/install.sh).
Dépendance
Bloquée par #19 côté infra réelle (l'URL cible n'existe qu'une fois tailscale serve en place sur le LXC Gitea), mais ce changement est autonome côté code — pas de dépendance de branche.
## Contexte
`GITEA_HOSTNAME` faisait double usage : hostname nu pour le `getent` MagicDNS du `start_pre()`, et implicitement (via les instructions affichées) base de l'URL d'enregistrement (`http://gitea.taila5ad8.ts.net:3000`). Après le passage à `tailscale serve --https=443` (#19), l'instance est joignable sur 443 **sans port**.
## Changement
- `GITEA_HOSTNAME` reste un hostname nu, inchangé, toujours consommé par le `getent` du `start_pre()`.
- Nouvelle variable `GITEA_INSTANCE_URL`, dérivée par défaut (`https://${GITEA_HOSTNAME}`), propagée par `exec_in_lxc()`, utilisée dans les instructions d'enregistrement affichées en fin d'install (`--instance ${GITEA_INSTANCE_URL}`).
- `check_runner_url_drift()` : si `.runner` existe et pointe sur une URL différente de `GITEA_INSTANCE_URL`, avertissement affiché avec la marche à suivre — **le script ne touche jamais `.runner` automatiquement** (détruire silencieusement un runner enregistré et fonctionnel serait un mauvais comportement pour un script rejouable). Appelée en début de `update_runner()`, donc sur tout rejeu d'un runner déjà installé.
- `gitea-runner/README.md` : tableau des variables mis à jour, nouvelle section « Re-registration » avec la procédure manuelle (stop → suppression de `.runner` → ré-enregistrement avec un token frais → start).
## Vérification
Fonctions testées isolément dans un conteneur Alpine jetable (`source`, sans passer par `main()`) :
- `.runner` avec `address` différente de `GITEA_INSTANCE_URL` → avertissement affiché, fichier **non supprimé**.
- `.runner` avec `address` identique → silencieux, aucun effet de bord.
- `.runner` absent → no-op silencieux (`check_runner_url_drift` retourne 0 immédiatement).
`shellcheck gitea-runner/install.sh` : aucune nouvelle alerte (seul le SC1091 info préexistant, identique à `openbao/install.sh`).
## Dépendance
Bloquée par #19 côté infra réelle (l'URL cible n'existe qu'une fois `tailscale serve` en place sur le LXC Gitea), mais ce changement est autonome côté code — pas de dépendance de branche.
Closes #22
GITEA_HOSTNAME was doing double duty: a bare hostname for the
start_pre() MagicDNS getent check, and (implicitly, via manual
instructions) a base for the registration URL. Since Gitea moved to
`tailscale serve --https=443` (#19), the instance is reachable on 443
with no port — the old implicit `http://<hostname>:3000` no longer
applies.
GITEA_HOSTNAME stays a bare hostname; GITEA_INSTANCE_URL is a new,
independently overridable variable defaulting to
https://${GITEA_HOSTNAME}, forwarded through exec_in_lxc and used in
the printed registration command.
The instance URL is frozen into .runner at registration time, so
changing the variable doesn't retroactively fix an already-registered
runner. check_runner_url_drift() detects a mismatch and warns with
the re-registration procedure, without touching .runner — deleting a
working runner's registration is a deliberate, manual, documented
step, not something a rerunnable install script should do on its own.
Closes#22
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Contexte
GITEA_HOSTNAMEfaisait double usage : hostname nu pour legetentMagicDNS dustart_pre(), et implicitement (via les instructions affichées) base de l'URL d'enregistrement (http://gitea.taila5ad8.ts.net:3000). Après le passage àtailscale serve --https=443(#19), l'instance est joignable sur 443 sans port.Changement
GITEA_HOSTNAMEreste un hostname nu, inchangé, toujours consommé par legetentdustart_pre().GITEA_INSTANCE_URL, dérivée par défaut (https://${GITEA_HOSTNAME}), propagée parexec_in_lxc(), utilisée dans les instructions d'enregistrement affichées en fin d'install (--instance ${GITEA_INSTANCE_URL}).check_runner_url_drift(): si.runnerexiste et pointe sur une URL différente deGITEA_INSTANCE_URL, avertissement affiché avec la marche à suivre — le script ne touche jamais.runnerautomatiquement (détruire silencieusement un runner enregistré et fonctionnel serait un mauvais comportement pour un script rejouable). Appelée en début deupdate_runner(), donc sur tout rejeu d'un runner déjà installé.gitea-runner/README.md: tableau des variables mis à jour, nouvelle section « Re-registration » avec la procédure manuelle (stop → suppression de.runner→ ré-enregistrement avec un token frais → start).Vérification
Fonctions testées isolément dans un conteneur Alpine jetable (
source, sans passer parmain()) :.runneravecaddressdifférente deGITEA_INSTANCE_URL→ avertissement affiché, fichier non supprimé..runneravecaddressidentique → silencieux, aucun effet de bord..runnerabsent → no-op silencieux (check_runner_url_driftretourne 0 immédiatement).shellcheck gitea-runner/install.sh: aucune nouvelle alerte (seul le SC1091 info préexistant, identique àopenbao/install.sh).Dépendance
Bloquée par #19 côté infra réelle (l'URL cible n'existe qu'une fois
tailscale serveen place sur le LXC Gitea), mais ce changement est autonome côté code — pas de dépendance de branche.Closes #22
Pull request closed