CommyPanel 0.4.0
This release adds database servers, links between apps and databases, a network for each app, and backups of the panel and its databases.
CommyPanel is still pre-1.0. Please read Before you upgrade first.
What's new
A network for each app
- Every app now runs on its own Docker network (
commypanel-<app>), so containers of different apps can no longer reach each other. The agent refuses thehostandbridgenetworks and another app's network.
Database servers
- MariaDB 11.4 and 10.11, MySQL 8.4 and 8.0, PostgreSQL 17, 16 and 15 as managed containers from the official images, with their data under
/var/lib/commypanel/databases/<server>. No port is published: only linked apps can reach a server. - Databases and users. Each database gets a user that can use that database only, with a generated password kept encrypted. Showing it needs a permission and a recent password, and is audited. Rotate the password or delete the database from the same page.
- See Databases and links.
Links
- Link an app to a database (or to another app) on the app's Links tab. Each link has a private network of its own and gives the app environment variables (
DATABASE_URL,_HOST,_PORT,_NAME,_USER,_PASSWORD, or your own prefix). The release command can reach the database too. A link applies from the next deployment, and your own variables win over a link's.
Backups
- The panel's database is backed up every night at 03:30 (newest 7 kept), from Settings > Backups, and with
sudo commypanel backup.sudo commypanel restore FILEreplaces the database from a backup; it stops the queue and scheduler, checks the file and keeps the current database as a-beforebackup. - Database dumps are made every night at 04:00 and on demand, listed on each database server's page, downloadable and deletable. Loading a dump back is a documented command for now.
- Backups never hold
APP_KEY; keep a copy of it apart from them.
Before you upgrade
- Back up
/var/lib/commypanelas with any upgrade, and upgrade withsudo commypanel upgrade. - Redeploy your apps once. An existing app keeps running on the shared network until its next deployment, which moves it to its own network. The Usage tab says which apps still share one.
- New permissions:
databases.view,databases.manage,databases.credentials,apps.links,backups.viewandbackups.manage. The built-in admin role and the super user get them; roles you created yourself do not. - The migration adds four tables (database servers, databases and the two kinds of links). Nothing existing changes.
- The agent is stricter: it only starts
commypanel/images and the officialmariadb,mysqlandpostgresimages with a plain version tag. - The panel contacts Docker Hub to pull a database image when you add a server.
- The nightly jobs need the scheduler timer, which the installer already sets up.
Security notes
- A database server is a container with the same restrictions as an app. Names and passwords are checked by the agent against strict patterns, SQL goes in through stdin and the administrator password through the environment, never the command line, and passwords are redacted from errors.
- A link network joins only the two sides of that link. Backups are files in the data directory, owned by the panel user (mode 0600); downloading or deleting one needs a recent password and is audited.
Known limitations
- 0.4.0 was tried on a real server, and the database actions against the real MariaDB, MySQL and PostgreSQL images. Not every path has been exercised, and Debian 13 and Ubuntu 24.04 have not been tried with this release; please report anything odd.
- A database that runs on another machine (for example in the same private network at your host) is not managed by the panel. Reach it by putting its address in the app's environment variables; see Databases and links.
- Backups stay on the same disk; there is no S3 target yet.
- There is no restore button for database dumps, only the documented command.
- PostgreSQL 18 is not offered. Links are not one-way for apps.
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 (a database server wants more).
# Install
curl -fsSL https://github.com/emrecanful/commypanel/releases/latest/download/install.sh | sudo bash
# Upgrade
sudo commypanel upgrade