Skip to content

CommyPanel 0.7.0-rc.1 (release candidate)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Nov 15:31
· 12 commits to main since this release

Release candidate for testing. Not for production. This build has not yet been run end to end on a real server. If you try it, please use a test server and tell us what breaks.

Install this candidate (the normal one-line installer only installs the latest stable release):

curl -fsSL https://github.com/CommyPanel/panel/releases/download/v0.7.0-rc.1/install.sh | sudo bash -s -- --version 0.7.0-rc.1

Upgrade an existing install to it:

sudo commypanel upgrade --version 0.7.0-rc.1

Most useful to check: the upgrade itself, nginx reloads and the new nginx editor, a first Let's Encrypt certificate, a deploy with a release command, deploy on push from your Git host, and the live usage figures against docker stats.


CommyPanel 0.7.0

This release makes deployments safer: CommyPanel now looks at the real requests your app answers, rolls back by itself when a new release is clearly worse, and can release a new version to your visitors gradually. Please read Before you upgrade: the agent and the nginx sites change.

CommyPanel is still pre-1.0.

What's new

Request statistics (always on)

  • nginx reports one line per proxied request to the agent through a Unix socket (no log files). The agent keeps ten-second counts of requests, errors and response times per container for the last hour, in memory. No addresses, paths, headers or cookies are recorded.
  • The app's Usage tab has a Traffic card with requests, errors and response times, and marks when each release went live.

Watch after the switch, with automatic rollback

  • After a release goes live, the previous container stays running for the watch time (5 minutes by default, 1 to 60). If the new release is clearly worse (more errors, or much slower, over enough requests, twice in a row) traffic is moved back at once and the release is marked Rolled back with the reason. A stopped container rolls back immediately. Too little traffic ends the watch without a verdict.
  • On by default, switchable per app on the new Safe deploys tab. End the watch accepts a release early; a new deployment ends it too.
  • Go live again on a rolled-back release puts it live with the same image, without a watch, for when the rollback was wrong.

Gradual rollout

  • Off for every app. Turning it on lists what it asks of your app and needs your confirmation.
  • Choose up to four steps (10 and 50 by default) and a hold time (5 minutes by default), automatic or manual. Visitors get a cookie that keeps them on one version, and raising the share never moves anybody back. A bad step moves everybody back; you can move on, give everybody the release, or abort at any time. New deployments wait while one is rolling out.
  • A rollout that gets too few requests to judge waits (up to three times the hold time) and then asks you.
  • The deployment page shows the share, the time left and the old and new release side by side.

Smaller changes

  • New deployment statuses rollout and rolled_back in the UI, in deployment messages (a rollback is reported as a failure) and in the API.
  • A scheduler job (every minute) restarts a watch or rollout whose job was lost, for example after a restart.
  • Switches on the app pages now use FlyonUI's switch class everywhere.

Before you upgrade

  • Upgrade the agent and the installer files together: sudo commypanel upgrade. The agent's service file gets a new socket (/run/commypanel-metrics/metrics.sock, group www-data), and every app's nginx site is rewritten to report to it. If the agent runs without the socket, nothing is counted, the watch ends without a verdict, and a rollout waits for you.
  • The upgrade adds columns to apps and deployments and a rollouts table. Back up /var/lib/commypanel as usual.
  • No new permissions. Changing the settings needs apps.update; moving a rollout on or aborting it needs apps.deploy.
  • The watch is on for your existing apps from the first deployment after the upgrade. Turn it off per app if you do not want it.

Security notes

  • The metrics socket accepts datagrams only and is writable by nginx's group, so any local process in that group could send forged lines. They can only skew statistics, never run anything. The agent parses each line against a strict format and caps the number of tracked sites and containers.
  • Gradual rollouts are rendered by the agent from validated numbers and ports; the generated nginx code never contains text from a request.
  • The rollout cookie is HttpOnly, SameSite=Lax, and Secure over https.

Known limitations

  • Only errors and response times are judged, and only requests that pass nginx.
  • Two versions run at once during a rollout against the same database and volumes. Migrations must work with both.
  • Clients that refuse cookies can switch between versions during a rollout.
  • Statistics are kept in memory and start empty when the agent restarts.
  • Not in this release: wildcard certificates.

Requirements

Unchanged: Ubuntu 24.04 or 26.04, or Debian 13 or newer, with systemd; amd64 or arm64; root access; at least 1 GB of RAM.

# Install
curl -fsSL https://github.com/commypanel/panel/releases/latest/download/install.sh | sudo bash

# Upgrade
sudo commypanel upgrade