🐛 Fix opengist external-url never being substituted 🐛

Found while build-testing the freshly regenerated image in a temp
data/config dir: opengist served REPLACE_HOSTNAME literally in every
generated URL, and http.git-enabled routes redirected to bogus paths,
because __update_conf_files() was patching a config file
($ETC_DIR/opengist.yaml) that doesn't exist -- the shipped config is
named config.yaml. Also normalized the substituted value: opengist's
external-url must be a full URL (scheme+host), not a bare hostname,
or it breaks absolute-URL/redirect generation; ssh.external-domain
must stay a bare domain, so it now gets its own REPLACE_SSH_HOSTNAME
token instead of reusing the schemed value.

Verified via: docker build, then a container run against a scratch
temp dir with data/config volumes -- health check reports healthy,
config.yaml shows the correct external-url/ssh.external-domain, and
/-/all, /-/login, /-/register all return 200 with real opengist HTML.

- rootfs/usr/local/etc/docker/init.d/00-opengist.sh: __update_conf_files
  now targets $ETC_DIR/config.yaml (was opengist.yaml, a nonexistent
  file), prefixes sysname with http:// when no scheme is present for
  external-url, and replaces ssh.external-domain via a separate
  REPLACE_SSH_HOSTNAME token using the unschemed hostname
- rootfs/tmp/etc/opengist/config.yaml: ssh.external-domain placeholder
  changed from REPLACE_HOSTNAME to REPLACE_SSH_HOSTNAME
This commit is contained in:
casjay
2026-08-03 11:37:00 -04:00
parent ca23d7e592
commit b53c36f33d
2 changed files with 13 additions and 4 deletions
+1 -1
View File
@@ -47,7 +47,7 @@ ssh.host: 0.0.0.0
ssh.port: 7823
# Public domain for the Git SSH connection, if it has to be different from the HTTP one.
ssh.external-domain: REPLACE_HOSTNAME
ssh.external-domain: REPLACE_SSH_HOSTNAME
# Path or alias to ssh-keygen executable. Default: ssh-keygen
ssh.keygen-executable: ssh-keygen