mirror of
https://github.com/casjaysdevdocker/opengist
synced 2026-08-14 14:01:17 -04:00
🐛 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:
@@ -47,7 +47,7 @@ ssh.host: 0.0.0.0
|
|||||||
ssh.port: 7823
|
ssh.port: 7823
|
||||||
|
|
||||||
# Public domain for the Git SSH connection, if it has to be different from the HTTP one.
|
# 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
|
# Path or alias to ssh-keygen executable. Default: ssh-keygen
|
||||||
ssh.keygen-executable: ssh-keygen
|
ssh.keygen-executable: ssh-keygen
|
||||||
|
|||||||
@@ -316,6 +316,14 @@ __update_conf_files() {
|
|||||||
local exitCode=0
|
local exitCode=0
|
||||||
# set hostname
|
# set hostname
|
||||||
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}"
|
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}"
|
||||||
|
# opengist's external-url must be a full URL (scheme + host); a bare hostname breaks
|
||||||
|
# absolute-URL generation (e.g. redirect Location headers). ssh.external-domain must
|
||||||
|
# stay a bare domain, so it gets its own token instead of reusing the schemed value.
|
||||||
|
local ssh_sysname="$sysname"
|
||||||
|
case "$sysname" in
|
||||||
|
*://*) ;;
|
||||||
|
*) sysname="http://$sysname" ;;
|
||||||
|
esac
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# delete files
|
# delete files
|
||||||
#__rm ""
|
#__rm ""
|
||||||
@@ -325,9 +333,10 @@ __update_conf_files() {
|
|||||||
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
# replace variables
|
# replace variables
|
||||||
__replace "REPLACE_HOSTNAME" "$sysname" "$ETC_DIR/opengist.yaml"
|
__replace "REPLACE_HOSTNAME" "$sysname" "$ETC_DIR/config.yaml"
|
||||||
__replace "REPLACE_DATA_DIR" "$DATA_DIR" "$ETC_DIR/opengist.yaml"
|
__replace "REPLACE_SSH_HOSTNAME" "$ssh_sysname" "$ETC_DIR/config.yaml"
|
||||||
__replace "REPLACE_SERVER_PORT" "$SERVICE_PORT" "$ETC_DIR/opengist.yaml"
|
__replace "REPLACE_DATA_DIR" "$DATA_DIR" "$ETC_DIR/config.yaml"
|
||||||
|
__replace "REPLACE_SERVER_PORT" "$SERVICE_PORT" "$ETC_DIR/config.yaml"
|
||||||
# replace variables recursively
|
# replace variables recursively
|
||||||
# __find_replace "" "" "$CONF_DIR"
|
# __find_replace "" "" "$CONF_DIR"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user