Skip to main content
Updating Pangolin is straightforward since it’s a collection of Docker images. Simply pull the latest images and restart the stack. This page covers updating your self-hosted Pangolin server. To update sites and clients, see the respective guides:

Update Sites

Update sites to the latest version.

Update Clients

Update your installed client to the latest version.

Migration Scripts

When Pangolin starts and detects a version update, it runs migration scripts automatically to update your database and configuration files. Pangolin stores the last successfully run version in the database, so it knows which scripts still need to run. Scripts run in order, starting from the oldest unrun script through the latest. These are commonly SQL schema updates, and sometimes data migrations. If a release includes a Badger update, Pangolin also tries to update the Traefik config when it still matches the default Pangolin installer Traefik config. If Pangolin cannot apply that change, it fails silently so you can update Badger yourself. A failed database migration blocks startup and prevents the server from running. If you are using SQLite, Pangolin automatically creates a copy of the database file before a migration runs so you can roll back if needed. You can disable this by setting the DISABLE_BACKUP_ON_MIGRATION environment variable to true.
Because migrations can change the database schema, downgrading is sometimes impossible and is not recommended. The database may become incompatible with older versions. Always back up your database before updating.

Before You Update

Always backup your data before updating. Copy your config directory to a safe location so you can roll back if needed.
Recommended: Update incrementally between major versions. For example, update from 1.0.0 > 1.1.0 > 1.2.0 instead of jumping directly from 1.0.0 > 1.2.0.

Update Process

1

Stop the stack

Stop all running containers:
2

Check latest versions

Find the latest version numbers:
Look for the latest stable release (not pre-release or beta versions).
3

Update version numbers

Edit your docker-compose.yml file and update the image versions:
docker-compose.yml
Increase the Badger version number in config/traefik/traefik_config.yml:
traefik_config.yml
Update each service you want to upgrade. You can update them individually or all at once.
4

Pull new images

Download the updated Docker images:
5

Start the stack

Start the updated containers:
6

Monitor the update

Watch the logs to ensure everything starts correctly:
7

Verify functionality

Test that everything is working:
  1. Access your Pangolin dashboard
  2. Check that all sites are accessible
  3. Verify tunnel connections (if using Gerbil)
  4. Test any custom configurations
If everything works, your update is complete!