Repository navigation
Proposal: decouple service template publishing from the Coolify release train #12474
Joseph-Hussell
started this conversation in
Improvement Requests
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Proposal: Ship Service Template Updates Independently of Coolify Releases
Nov 5, 2026 · @joseph Hussell
Summary
I'd like to propose that service template changes reach Coolify instances when they are merged, not only when a new Coolify version is released. Coolify instances already download the template catalog from the CDN every hour. The catch is that the CDN copy is only republished as part of a release. Giving templates their own publishing track would let fixes and new services ship in hours instead of waiting weeks for the next release, and it needs no change to how instances fetch them.
Suggested category: Feature Requests.
How it works today
The pieces for delivering templates live already exist. The problem is the publishing side, which runs only when Coolify is released. Here's what I found in
main(commit19762a7):I'd like to know whether the team is open to this direction, and whether templates were tied to releases on purpose for a reason I've missed.
Sources
All code references are
coollabsio/coolifyatmaincommit19762a7(Nov 5, 2026).- app/Jobs/PullTemplatesFromCDN.php and its schedule in app/Console/Kernel.php
- app/Console/Commands/Init.php
- bootstrap/helpers/shared.php:
- app/Console/Commands/Generate/Services.php
- scripts/sync-cdn.sh, .github/workflows/release.yaml, .github/workflows/nightly.yaml
- coollabsio/coollabs-cdn: commit history of
- Docs: How Services work
# Proposal: Ship Service Template Updates Independently of Coolify Releasesget_service_templates(),store_service_templates_bundle()json/coolify/service-templates-latest.jsonNov 5, 2026 · @joseph Hussell
Summary
I'd like to propose that service template changes reach Coolify instances when they are merged, not only when a new Coolify version is released. Coolify instances already download the template catalog from the CDN every hour. The catch is that the CDN copy is only republished as part of a release. Giving templates their own publishing track would let fixes and new services ship in hours instead of waiting weeks for the next release, and it needs no change to how instances fetch them.
Suggested category: Feature Requests.
How it works today
The pieces for delivering templates live already exist. The problem is the publishing side, which runs only when Coolify is released. Here's what I found in
main(commit19762a7):service-templates-latest.jsonfromcdn.coollabs.ioon theupdate_check_frequencycron (hourly by default)app/Jobs/PullTemplatesFromCDN.php,app/Console/Kernel.phpapp/Console/Commands/Init.phpget_service_templates(force: true)re-fetches on demandbootstrap/helpers/shared.phpstore_service_templates_bundle()scripts/sync-cdn.shuploads the template JSON together withinstall.sh,upgrade.shandversions.jsonrelease.yaml(stable and preview) andnightly.yamlIn practice, a template fix merged today stays off stable instances until the next stable release triggers
sync-cdn.sh. Stable syncs also go through a PR oncoollabsio/coollabs-cdn, so templates get the same review gate as the installer. The catalog and the app ship as one unit, even though the code already treats them as separate.The numbers bear this out. Since the stable
service-templates-latest.jsonfirst appeared on the CDN on July 10, 2026, it has changed 13 times, and 12 of those were release pushes. Over the same months about 120 commits touchedtemplates/compose/onmain(57 in August alone).Why it matters
Self-hosted software is moving faster than Coolify's release cadence, and AI tools are the main reason. New AI apps, agents, inference servers and vector databases appear every week. Popular projects often change images, environment variables or required services between minor versions.
The catalog is one of Coolify's biggest strengths compared with other PaaS tools. Keeping it current is how Coolify keeps up with where self-hosting is going.
Proposal
The plan is to give templates their own release track and use the existing CDN pull to deliver them. Each phase is useful on its own, so the team can stop after any of them.
service-templates-latest.jsonand syncs only that file to the CDN whentemplates/compose/**changes on the release branch. It could run on every merge, daily, or on a manual dispatch with maintainer approval.install.sh,upgrade.shandversions.jsonstay tied to releases as they are now.# minversion:, andGenerate/Services.phpwrites it into the JSON. Nothing in the app reads it yet, though, and only 2 of the 387 templates set it (posthogandsupabase). The instance would hide or disable templates whoseminversionis newer than the running version, showing "Requires Coolify vX.Y.Z". A template that depends on a new parser feature could then ship early without breaking older instances.store_service_templates_bundle()before replacing the current catalog. Today that check only confirms the body is a non-empty JSON object.Risks and how to handle them
minversion(phase 2) before switching publishing on.PullTemplatesFromCDN.I'd like to know whether the team is open to this direction, and whether templates were tied to releases on purpose for a reason I've missed.
Sources
All code references are
coollabsio/coolifyatmaincommit19762a7(Nov 5, 2026).get_service_templates(),store_service_templates_bundle()json/coolify/service-templates-latest.jsonAll reactions