Bytebase

stack Database / Development

Database change management for teams. Plan, review and roll out schema changes to Postgres, MySQL and 20-odd other databases with a full history, or query them from a web SQL editor.

Install Bytebase

It isn't in the main Portainer Templates list yet, so use this one. Portainer takes one URL at a time, so it swaps out whatever list you had before.

In Portainer, head to Settings --> App Templates, paste this in as the URL and save.

https://raw.githubusercontent.com/NotAFlightRisk/portainer-templates-extras/main/templates.json
  1. Open App Templates and pick Bytebase.
  2. Fill in Database password. Everything else can stay as it is.
  3. Hit Deploy the stack, then open http://<your-server>:8093 in a browser.

Before you start

Set the database password before you deploy (openssl rand -hex 32 makes a good one), since the stack won't start without it. Then open http://<your-host>:8093 (or whichever port you picked). That page creates the admin, and whoever reaches it first gets to, so do it straight away. Sign-ups stay open after that (new people join as members), so tick Disallow self-service signup under Settings --> General if anyone else can reach it, and set the External URL there to the address you actually use. Each time it starts, Bytebase sends the first account's email address, everyone's email domains and your SQL review rules to bytebase.com, unless you untick Participate in improvement program on that same page. When you add a database, use your host's IP rather than localhost, which is the Bytebase container itself. The free Community plan covers 20 users and 10 instances. Bytebase keeps everything in Postgres, in the postgres-data volume, and any sample instance you start in bytebase-data. Docs: docs.bytebase.com

Settings

What the Portainer form asks for. With compose they go in the .env file instead.

VariableWhat it's forDefault
BYTEBASE_DB_PASSWORDDatabase password (required) For Bytebase's own Postgres. Generate one with: openssl rand -hex 32. Keep it the same when you redeploy. Needs filling in
BYTEBASE_PORTHost port for the web UI 8093

Services

The containers this stack runs, with ports as they come out of the box.

ServiceImagePorts
bytebasebytebase/bytebase:latest8093:8080
postgrespostgres:17-alpineInternal only

More apps