fix: show the container hostname in the shell prompt

Coolify injects HOST=0.0.0.0 into every compose app, and zsh seeds $HOST and
the %m/%M prompt escapes from that variable rather than calling gethostname().
The prompt read "0", the first dot-separated field of 0.0.0.0, even though the
container hostname itself was set correctly.

Pass the hostname in as HOST alongside the hostname: key, both from a single
SERVICE_HOSTNAME variable. Neither service reads HOST itself -- code-server
binds [::]:8443, Paseo binds PASEO_LISTEN -- so this only affects the prompt.

Not named HOSTNAME: Compose interpolation lets the deploying shell's
environment win over the .env file, and HOSTNAME is set in every container,
including the one Coolify runs in.

PASEO_LABEL is renamed to SERVICE_HOSTNAME; it was never a Paseo variable.
The example git identity is blanked out along with it.
This commit is contained in:
tiennm99 committed 2026-09-18 09:35:04 +07:00
1 parent f02de334e5
commit 2a4e635e09
6 files changed
+48 -7

No files matched your search

+3 -1
View File
@@ -1,9 +1,11 @@
services:
paseo:
build: .
hostname: ${PASEO_LABEL}
hostname: ${SERVICE_HOSTNAME}
environment:
- TZ=${TZ}
# Hostname zsh's prompt reads, overriding the one Coolify injects.
- HOST=${SERVICE_HOSTNAME}
- SHELL=${SHELL}
- PASEO_PASSWORD=${PASEO_PASSWORD}
- PASEO_HOSTNAMES=${PASEO_HOSTNAMES}