fix(updates): make the nightly update channel easier to find (#12502)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Andras Bacsai
2026-11-09 17:08:49 +01:00
committed by GitHub
co-authored by Claude Opus 5.5
parent 4f56c81236
commit ae1147003b
4 changed files with 27 additions and 2 deletions
@@ -0,0 +1,6 @@
---
type: fixed
---
The `Nightly` update channel was hard to find, because only the `Channel` list in `Settings` > `Updates` named it ([#12492](https://github.com/coollabsio/coolify/issues/12492))
- On the `Stable` channel, `Settings` > `Updates` shows a hint about `Nightly`. The upgrade dialog shows the update channel and links to `Settings` > `Updates`
+4 -1
View File
@@ -22,6 +22,8 @@ class Upgrade extends Component
public bool $fullButton = false;
public string $updateChannel = 'stable';
protected $listeners = ['updateAvailable' => 'checkUpdate'];
public function mount()
@@ -43,6 +45,8 @@ class Upgrade extends Component
$this->currentVersion = config('constants.coolify.version');
$this->latestVersion = get_latest_version_of_coolify();
$this->devMode = isDev();
$settings = InstanceSettings::find(0);
$this->updateChannel = (string) data_get($settings, 'update_channel', 'stable');
if ($this->devMode) {
$this->isUpgradeAvailable = true;
@@ -50,7 +54,6 @@ class Upgrade extends Component
return;
}
$settings = InstanceSettings::find(0);
if (data_get($settings, 'update_channel') === 'custom') {
$this->latestVersion = (string) $settings->update_custom_tag;
$this->isUpgradeAvailable = $this->fullButton && $this->latestVersion !== '';
@@ -22,7 +22,7 @@
<x-forms.listbox id="update_channel" label="Channel" :options="[
['value' => 'stable', 'label' => 'Stable', 'description' => 'Stable releases'],
['value' => 'preview', 'label' => 'Preview', 'description' => 'Betas and release candidates, then the stable release'],
['value' => 'nightly', 'label' => 'Nightly', 'description' => 'A build of the next version twice a day, then every release'],
['value' => 'nightly', 'label' => 'Nightly', 'description' => 'Early access to the next version, two builds each day. Less tested'],
['value' => 'custom', 'label' => 'Custom image', 'description' => 'A pinned image, such as the build of a pull request'],
]"
helper="The versions this instance upgrades to." />
@@ -35,6 +35,13 @@
<div x-show="$wire.update_channel !== 'custom'" @if ($update_channel === 'custom') x-cloak @endif
class="hidden lg:block"></div>
<div x-show="$wire.update_channel === 'stable'" @if ($update_channel !== 'stable') x-cloak @endif
class="lg:col-span-2">
<x-callout type="info" title="Try the next version early">
The Nightly channel installs a build of the next version two times each day.
Nightly builds get less testing and can break this instance.
</x-callout>
</div>
<div x-show="$wire.update_channel === 'nightly'" @if ($update_channel !== 'nightly') x-cloak @endif
class="lg:col-span-2">
<x-callout type="danger" title="Nightly builds can break this instance">
@@ -54,6 +54,15 @@
{{ $currentVersion }} <span class="mx-0.5">&rarr;</span>
{{ $latestVersion }}
</p>
<p class="mt-0.5 text-[12px] leading-4"
style="color: var(--coollabs-subtle)">
{{ $updateChannel === 'custom' ? 'Custom image' : ucfirst($updateChannel) . ' channel' }}
<span class="mx-0.5">&middot;</span>
<a href="{{ route('settings.updates') }}" {{ wireNavigate() }}
@click="modalOpen=false"
class="font-medium text-coollabs underline decoration-coollabs/30 underline-offset-2 hover:decoration-coollabs dark:text-brand-light dark:decoration-brand-light/30 dark:hover:decoration-brand-light">Change
channel</a>
</p>
</div>
<button type="button" x-show="!showProgress || upgradeError"
@click="upgradeError ? closeErrorModal() : modalOpen=false"