Releases: fosrl/pangolin
1.6.2
What's Changed
- Fix bug causing SQLite migration script to run in PostgreSQL build in 1.6.0 and 1.6.1
- Fix bug preventing targets from being added for basic WireGuard sites
Full Changelog: 1.6.1...1.6.2
How to Update
Important
Always back up your config app-data before updating. This will allow you to easily roll back if the update breaks your configuration. You will not be able to easily downgrade otherwise.
1.6.1
What's Changed
Hotfix:
- Fix yargs dependency issue preventing
pangctl
from running
Full Changelog: 1.6.0...1.6.1
How to Update
Warning
For PostgresSQL users coming from version < 1.6.0, please upgrade directly to >=1.6.2, as there is a broken migration script in this version.
Important
Always back up your config app-data before updating. This will allow you to easily roll back if the update breaks your configuration. You will not be able to easily downgrade otherwise.
1.6.0
What's Changed
- Add i18n support for UI translations (initial languages shown below)
- Remove the need for setting
users.server_admin.password
andusers.server_admin.email
in config - Add onboarding UI on new installs for setting the server admin credentials
- Add
pangctl
CLI tool for setting/resetting server admin credentials - Fix bug preventing integration API users from creating raw TCP resources
- Forward headers from server component requests to API
server.trust_proxy
in config file supports setting an integer according to the Express.js docs- OIDC usernames are no longer case sensitive
Full Changelog: 1.5.1...1.6.0
How to Update
Warning
For PostgresSQL users coming from version < 1.6.0, please upgrade directly to >=1.6.2, as there is a broken migration script in this version.
Important
Always back up your config app-data before updating. This will allow you to easily roll back if the update breaks your configuration. You will not be able to easily downgrade otherwise.
Translations
Pangolin now has i18n support for internationalization! Huge thank you to everyone who worked on this and @Lokowitz for leading this effort.
Tip
We are looking for people to help us manage and review translations. If you're interested, please email us at [email protected].
Translations can always be improved. If you spot an issue, want to enhance an existing translation, or would like to contribute a new language, we welcome all contributions.

pangctl
and Admin Credentials
Up until now, the "server admin" credentials were set in the config file or environment variables. Moving forward, new installations of Pangolin will need to go to https://<pangolin-dashboard-domain>/auth/initial-setup
set these credentials when first visiting the dashboard.
For those of you updating, we recommend you now remove the users
section from the config.yml
and remove the environment variables: USERS_SERVERADMIN_PASSWORD
and USERS_SERVERADMIN_EMAIL
. The migration script will not do this automatically.
Alongside this change, we're introducing pangctl
, an internal CLI tool baked into the Pangolin container, to set the email and password if you ever need to change these credentials. Read more about this in the docs.
We plan to add more helpful scripts to this tool as needed in the future.
1.5.1
What's Changed
- Sort data in/out correctly in sites table
- Auto apply first container port if none is selected in container selector
- Fix bug causing "Failed to get Docker status" message to appear on some sites
New Contributors
- @thijsvanloef made their first contribution in #867
Full Changelog: 1.5.0...1.5.1
How to Update
Important
Always back up your config app-data before updating. This will allow you to easily roll back if the update breaks your configuration. You will not be able to easily downgrade otherwise.
1.5.0
What's Changed
- Add support for PostgresSQL
- See the docs for how to use PostgreSQL with Pangolin
- Import host and port into resource target via Docker socket
- Requires Newt version 1.1.4 or greater
- See the docs for how to configure this functionality
- Pass
Remote-User
,Remote-Email
, andRemote-Name
to resource via Badger - Add new logo files
- Add GET roles to integration API
- Fix bug improperly splitting port from IPv6 address when evaluating rules
- Bump Traefik version and add log rotation in installer
- Allow installer to run without sudo
New Contributors
- @jpgnz made their first contribution in #779
- @socheatsok78 made their first contribution in #796
- @PrtmPhlp made their first contribution in #817
- @improbableone made their first contribution in #802
- @TheresaQWQ made their first contribution in #831
- @pyrho made their first contribution in #807
Full Changelog: 1.4.0...1.5.0
How to Update
Important
Always back up your config app-data before updating. This will allow you to easily roll back if the update breaks your configuration. You will not be able to easily downgrade otherwise.
Docker Socket
This is a community contribution. Huge thanks to @improbableone for working on this!

1.4.0
What's Changed
All features will always be available in BOTH the Community and Professional Edition of Pangolin under a typical dual-license model.
- Enable user auto-provisioning for IdP
- Enable API integration
- Fix bug preventing updating an external user's role
- Sort resources and sites table alphabetically by default
Full Changelog: 1.3.2...1.4.0
How to Update
Important
Always back up your config app-data before updating. This will allow you to easily roll back if the update breaks your configuration. You will not be able to easily downgrade otherwise.
1.3.2
What's Changed
- Log the OAuth2 claims to the debug logs
- Fix bug where saving TLS server name would reset the custom host header
- Fix bug causing duplicate targets to appear
- Allow root path in rule input
- Set default config options if not present in yaml
Full Changelog: 1.3.1...1.3.2
How to Update
Important
Always back up your config app-data before updating. This will allow you to easily roll back if the update breaks your configuration. You will not be able to easily downgrade otherwise.
1.3.1
What's Changed
Some small fixes following our 1.3.0 release:
- Add clarification language to supporter program
- Show unprovisioned user username in failed login error message
- Fix bug preventing users from removing custom host header
- Decode URL before for displaying breadcrumbs
- Remove thrown error in IP version check causing rule check failures
Full Changelog: 1.3.0...1.3.1
How to Update
Important
Always back up your config app-data before updating. This will allow you to easily roll back if the update breaks your configuration. You will not be able to easily downgrade otherwise.
Clarification on Professional Edition Rollout
1.3.0
What's Changed
- Refresh UI and layout
- Add external identity provider support for OAuth2/OIDC providers
- Auto provision users with "Organization Policies"
- Add external integration REST API
- Swagger UI docs
- Ability to generate fine-grained permission API Keys scoped to an organization or the entire server
- Add option to set TLS server name
- Add option to enable sticky sessions for multi-target resources
- Add option to set custom host header
- Add view, cancel, and regenerate user invite page
- Add confetti after entering valid supporter key
- Add Podman commands for Newt in create site wizard
- Add "Professional Edition" licensing system for commercial use
- Obscure PIN input like a password input
- Update dependencies
Full Changelog: 1.2.0...1.3.0
New Contributors
- @Lokowitz made their first contribution in #469
- @grokdesigns made their first contribution in #477
- @Jester0027 made their first contribution in #504
- @TuncTaylan made their first contribution in #515
- @achtnullzwei made their first contribution in #501
- @x86txt made their first contribution in #511
- @vickodin made their first contribution in #582
- @imbavirus made their first contribution in #598
- @michaelfuckner made their first contribution in #610
- @lxfrdl made their first contribution in #612
How to Update
Important
Always back up your config app-data before updating. This will allow you to easily roll back if the update breaks your configuration. You will not be able to easily downgrade otherwise.
OAuth2/OIDC (External Identity Providers)
We’re excited to share that Pangolin now supports external identity providers. You can integrate any identity provider that supports OAuth2/OIDC. We plan to expand with native support for other platforms over time, as well as continue to bolster and add new authentication and access control tooling. See more in our docs
Adding external identity providers for SSO is NOT a paid feature and is available for free.
Refreshed UI
Alongside that, we’ve also launched a refreshed UI. This new layout is more maintainable, expandable, and aligned with the long-term direction of the project. Importantly, it still maintains a largely consistent user experience. We will continue shipping enhancements on top of this foundation. See screenshots and more here on GitHub.

Professional Edition
The Professional Edition is for businesses and individuals that want to use Pangolin in a commercial environment and require access to dedicated support.
1.2.0
What's Changed
- Pass share link access token in headers for authenticated access
- Shorten and prettify share links
- Old share links will still work (
?token=
format eventually is deprecated and will eventually be removed in favor of new link format)
- Old share links will still work (
- Add resource visibility toggle on resources table
- Use global table search for all tables to search across multiple columns
- Fix updating admin user email creating new user in system
Full Changelog: 1.1.0...1.2.0
How to Update
Important
Always back up your config app-data before updating. This will allow you to easily roll back if the update breaks your configuration. You will not be able to easily downgrade otherwise.
5.2k Stars in 90 Days
April 5th (yesterday) marked 90 days from the initial release and announcement of the Pangolin project. In that time the repository has earned more than 5.2k stars! Thank you to everyone for the support and sharing the project!
Access Token in Headers
When you generate a share link, you have the option to pass the underlying access token in headers. If a valid access token is passed in each request from the client, fully authenticated requests are made through the proxy. Similarly, you can pass the access token in a query param on each request.
Note
This feature requires a Badger (Traefik middleware) plugin version of at least v1.1.0
. Our auto-migration script will attempt to update this for you.
