All services: clean up compose comments and rename compose.yml to compose.yaml - #358
Merged
Merged
Conversation
…om comments
Compose does not interpolate variables inside comments, so placeholders
such as ${SERVICE} stay literal text there. The ports comment even read
"${SERVICE}PORT", a find-and-replace artifact that 100 services copied
from the template.
Change the template and every service that carries the same lines:
- Ports comment: "Binding the service port to the local network".
- Network comment: "route the service through Tailscale".
- Block heading "# ${SERVICE}" becomes "# Application". Kaneo's three
headings become "# Database", "# Backend (API)", and
"# Frontend (Web)".
- Header: "Every variable used in this file must be defined there."
- DNS block: use the template form "#dns:" and "# - ${DNS_SERVER}" in
the 47 services that had "# dns:".
- Remove trailing whitespace from 103 services and the template.
- Indent the EXAMPLE_VAR comment with six spaces in the template and
Transmute.
Only comments and whitespace change. The output of "docker compose
config" is identical before and after for all 122 services and the
template.
The template and 116 services use compose.yaml. AFFiNE, EspoCRM, File Browser, Paperless, RustDesk Server, and XWiki used compose.yml. Compose finds both names, so "docker compose up" works as before. The output of "docker compose config" is identical before and after the rename for all six services. No README or other file refers to the old name.
The comment told users to add extra settings to "the docker-compose.yml". The stack's file is compose.yaml.
crypt0rr
approved these changes
Oct 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Two things, in three commits. Neither changes a setting, value, or structure.
1. Comments and whitespace
In the service template's
compose.yamland in every service that carries the same lines.# Binding port ${SERVICE}PORT to the local network - …# Binding the service port to the local network - …# Binding port ${SERVICEPORT} to the local network - …# Sidecar configuration to route ${SERVICE} through Tailscale# Sidecar configuration to route the service through Tailscale# ${SERVICE}# Application# All the ${ xx } need to be defined there.# Every variable used in this file must be defined there.# dns:and# - ${DNS_SERVER}#dns:and# - ${DNS_SERVER}, as in the templateEXAMPLE_VARcommentThe template gets every change except the two variants it never had.
Kaneo has three headings of the form
# ${SERVICE} - DB. They are now# Database,# Backend (API), and# Frontend (Web).2.
compose.ymlrenamed tocompose.yamlThe template and 116 services use
compose.yaml. These six usedcompose.ymland are renamed: AFFiNE, EspoCRM, File Browser, Paperless, RustDesk Server, and XWiki. The file contents are the same apart from the comment changes above.A comment in Mattermost's
.envstill called the stack's filedocker-compose.yml. It now sayscompose.yaml.Why
Compose does not interpolate variables inside comments, so
${SERVICE}stays literal text there.${SERVICE}PORTin the ports comment is a find-and-replace artifact that 100 services copied from the template.The DNS block existed in two spellings, and trailing whitespace makes
git diff --checkfail on any later edit of those lines.One file name for every service matches the template and lets scripts and checks address
compose.yamleverywhere. Compose finds both names, sodocker compose upworks as before. Someone who passes the file by name, such asdocker compose -f compose.yml up, must use the new name after pulling.Not in this PR
# - ./${SERVICE}-data/app/config:/config, and in the health-check guidance that quotespgrep -f ${SERVICE}as a command. Those are code, not prose.services:.Testing
docker compose configis identical before and after this change for all 122 services and the template. I saved the resolved configuration of each directory onmainand on this branch and compared them withdiff -r. The 7 services with required variables and the template got placeholder values for this comparison.docker compose config --quietpasses in each.compose.ymlof these services. No other.envor compose file calls its stack's filedocker-compose.yml.git diff --checkpasses.Not tested: I did not start the stacks, because the resolved configuration is unchanged. No Markdown file changed, so I did not run
rumdl.