Pangolin update issue #2387

Closed
opened 2026-02-05 04:40:38 +03:00 by OVERLORD · 10 comments
Owner

Originally created by @darlezior on GitHub (Jan 25, 2026).

Originally assigned to: @vhsdream on GitHub.

Have you read and understood the above guidelines?

yes

🔎 Did you run the script with verbose mode enabled?

Yes, verbose mode was enabled and the output is included below

📜 What is the name of the script you are using?

Pangolin

📂 What was the exact command used to execute the script?

update

⚙️ What settings are you using?

  • Default Settings
  • Advanced Settings

🖥️ Which Linux distribution are you using?

Debian 13

📈 Which Proxmox version are you on?

8.4.16

📝 Provide a clear and concise description of the issue.

Hi there, I Just updated pangolin via update command to version 1.15.1. After update i got Bad gateway on pangolin web UI.
I was wondering if it could be a problem with the update script or something else. It was working perfectly before, but I restored the backup and now it works again. Thanks a lot.

🔄 Steps to reproduce the issue.

  1. update
  2. open webui

Paste the full error output (if available).

  ✔️   Update available: pangolin 1.14.1 → 1.15.1
  ✔️   Created backup
  ✔️   Deployed: pangolin (1.15.1)
  ✔️   gerbil is already up-to-date (v1.3.0)
npm warn deprecated keygrip@1.1.0: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm warn deprecated oslo@1.2.1: Package is no longer supported. Please see https://oslojs.dev for the successor project.
npm warn deprecated @esbuild-kit/core-utils@3.3.2: Merged into tsx: https://tsx.is
npm warn deprecated @esbuild-kit/esm-loader@2.6.5: Merged into tsx: https://tsx.is

added 1271 packages, and audited 1437 packages in 47s

273 packages are looking for funding
  run `npm fund` for details

8 vulnerabilities (1 low, 5 moderate, 2 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

> @fosrl/pangolin@0.0.0 set:sqlite
> echo 'export * from "./sqlite";
> export const driver: "pg" | "sqlite" = "sqlite";' > server/db/index.ts


> @fosrl/pangolin@0.0.0 set:oss
> echo 'export const build = "oss" as "saas" | "enterprise" | "oss";' > server/build.ts && cp tsconfig.oss.json tsconfig.json


> @fosrl/pangolin@0.0.0 build:sqlite
> mkdir -p dist && next build && node esbuild.mjs -e server/index.ts -o dist/server.mjs && node esbuild.mjs -e server/setup/migrationsSqlite.ts -o dist/migrations.mjs

   ▲ Next.js 15.5.9
   - Experiments (use with caution):
     ✓ reactCompiler

   Creating an optimized production build ...
 ✓ Compiled successfully in 67s
   Skipping linting
 ✓ Checking validity of types    
 ✓ Collecting page data    
 ✓ Generating static pages (3/3)
 ✓ Collecting build traces    
 ✓ Finalizing page optimization    

Route (app)                                                                Size  First Load JS    
┌ ƒ /                                                                   2.27 kB         380 kB
├ ƒ /_not-found                                                           204 B         102 kB
├ ƒ /[orgId]                                                            15.3 kB         394 kB
├ ƒ /[orgId]/settings                                                     204 B         102 kB
├ ƒ /[orgId]/settings/access                                              204 B         102 kB
├ ƒ /[orgId]/settings/access/approvals                                  14.6 kB         268 kB
├ ƒ /[orgId]/settings/access/invitations                                9.19 kB         332 kB
├ ƒ /[orgId]/settings/access/roles                                      10.5 kB         311 kB
├ ƒ /[orgId]/settings/access/users                                      7.62 kB         317 kB
├ ƒ /[orgId]/settings/access/users/[userId]                               204 B         102 kB
├ ƒ /[orgId]/settings/access/users/[userId]/access-controls             12.2 kB         266 kB
├ ƒ /[orgId]/settings/access/users/create                               19.1 kB         273 kB
├ ƒ /[orgId]/settings/api-keys                                          5.99 kB         329 kB
├ ƒ /[orgId]/settings/api-keys/[apiKeyId]                                 204 B         102 kB
├ ƒ /[orgId]/settings/api-keys/[apiKeyId]/permissions                   1.24 kB         157 kB
├ ƒ /[orgId]/settings/api-keys/create                                   7.28 kB         255 kB
├ ƒ /[orgId]/settings/billing                                           10.9 kB         185 kB
├ ƒ /[orgId]/settings/blueprints                                        7.75 kB         201 kB
├ ƒ /[orgId]/settings/blueprints/[blueprintId]                           5.8 kB         146 kB
├ ƒ /[orgId]/settings/blueprints/create                                 36.8 kB         261 kB
├ ƒ /[orgId]/settings/clients                                             204 B         102 kB
├ ƒ /[orgId]/settings/clients/machine                                   5.31 kB         313 kB
├ ƒ /[orgId]/settings/clients/machine/[niceId]                            204 B         102 kB
├ ƒ /[orgId]/settings/clients/machine/[niceId]/credentials              4.79 kB         262 kB
├ ƒ /[orgId]/settings/clients/machine/[niceId]/general                  6.62 kB         225 kB
├ ƒ /[orgId]/settings/clients/machine/create                            10.2 kB         236 kB
├ ƒ /[orgId]/settings/clients/user                                      7.86 kB         324 kB
├ ƒ /[orgId]/settings/clients/user/[niceId]                               204 B         102 kB
├ ƒ /[orgId]/settings/clients/user/[niceId]/general                     7.95 kB         162 kB
├ ƒ /[orgId]/settings/domains                                           13.2 kB         317 kB
├ ƒ /[orgId]/settings/domains/[domainId]                                14.9 kB         283 kB
├ ƒ /[orgId]/settings/general                                           4.77 kB         255 kB
├ ƒ /[orgId]/settings/general/auth-page                                 9.68 kB         298 kB
├ ƒ /[orgId]/settings/general/security                                  10.4 kB         286 kB
├ ƒ /[orgId]/settings/idp                                               8.34 kB         318 kB
├ ƒ /[orgId]/settings/idp/[idpId]                                         204 B         102 kB
├ ƒ /[orgId]/settings/idp/[idpId]/general                               5.32 kB         280 kB
├ ƒ /[orgId]/settings/idp/create                                        3.81 kB         275 kB
├ ƒ /[orgId]/settings/license                                           11.8 kB         335 kB
├ ƒ /[orgId]/settings/logs                                              1.25 kB         138 kB
├ ƒ /[orgId]/settings/logs/access                                       3.96 kB         254 kB
├ ƒ /[orgId]/settings/logs/action                                       3.46 kB         250 kB
├ ƒ /[orgId]/settings/logs/analytics                                     192 kB         472 kB
├ ƒ /[orgId]/settings/logs/request                                      3.69 kB         254 kB
├ ƒ /[orgId]/settings/remote-exit-nodes                                 6.69 kB         311 kB
├ ƒ /[orgId]/settings/remote-exit-nodes/[remoteExitNodeId]                204 B         102 kB
├ ƒ /[orgId]/settings/remote-exit-nodes/[remoteExitNodeId]/credentials  5.07 kB         255 kB
├ ƒ /[orgId]/settings/remote-exit-nodes/create                          13.5 kB         234 kB
├ ƒ /[orgId]/settings/resources                                           204 B         102 kB
├ ƒ /[orgId]/settings/resources/client                                  21.4 kB         352 kB
├ ƒ /[orgId]/settings/resources/proxy                                   11.9 kB         319 kB
├ ƒ /[orgId]/settings/resources/proxy/[niceId]                            204 B         102 kB
├ ƒ /[orgId]/settings/resources/proxy/[niceId]/authentication           18.4 kB         314 kB
├ ƒ /[orgId]/settings/resources/proxy/[niceId]/general                  9.65 kB         302 kB
├ ƒ /[orgId]/settings/resources/proxy/[niceId]/proxy                    14.3 kB         347 kB
├ ƒ /[orgId]/settings/resources/proxy/[niceId]/rules                    25.6 kB         298 kB
├ ƒ /[orgId]/settings/resources/proxy/create                            10.6 kB         363 kB
├ ƒ /[orgId]/settings/share-links                                       19.5 kB         352 kB
├ ƒ /[orgId]/settings/sites                                             9.21 kB         316 kB
├ ƒ /[orgId]/settings/sites/[niceId]                                      204 B         102 kB
├ ƒ /[orgId]/settings/sites/[niceId]/credentials                        3.55 kB         277 kB
├ ƒ /[orgId]/settings/sites/[niceId]/general                            10.7 kB         255 kB
├ ƒ /[orgId]/settings/sites/create                                      13.5 kB         260 kB
├ ƒ /admin                                                                204 B         102 kB
├ ƒ /admin/api-keys                                                     5.98 kB         329 kB
├ ƒ /admin/api-keys/[apiKeyId]                                            204 B         102 kB
├ ƒ /admin/api-keys/[apiKeyId]/permissions                              1.22 kB         157 kB
├ ƒ /admin/api-keys/create                                              7.23 kB         255 kB
├ ƒ /admin/idp                                                           6.8 kB         316 kB
├ ƒ /admin/idp/[idpId]                                                    204 B         102 kB
├ ƒ /admin/idp/[idpId]/general                                          12.7 kB         257 kB
├ ƒ /admin/idp/[idpId]/policies                                         13.3 kB         320 kB
├ ƒ /admin/idp/create                                                   11.9 kB         253 kB
├ ƒ /admin/license                                                      11.9 kB         335 kB
├ ƒ /admin/users                                                        6.44 kB         311 kB
├ ƒ /admin/users/[userId]                                                 204 B         102 kB
├ ƒ /admin/users/[userId]/general                                       7.97 kB         179 kB
├ ƒ /auth/2fa/setup                                                     9.77 kB         231 kB
├ ƒ /auth/idp/[idpId]/oidc/callback                                     4.06 kB         149 kB
├ ƒ /auth/initial-setup                                                 4.79 kB         229 kB
├ ƒ /auth/login                                                         7.91 kB         253 kB
├ ƒ /auth/login/device                                                  14.3 kB         239 kB
├ ƒ /auth/login/device/success                                          4.51 kB         137 kB
├ ƒ /auth/org                                                           12.9 kB         169 kB
├ ƒ /auth/org/[orgId]                                                   4.02 kB         137 kB
├ ƒ /auth/reset-password                                                10.5 kB         233 kB
├ ƒ /auth/resource/[resourceGuid]                                       13.3 kB         260 kB
├ ƒ /auth/signup                                                        12.8 kB         243 kB
��� ƒ /auth/verify-email                                                  13.8 kB         229 kB
├ ƒ /invite                                                             5.42 kB         150 kB
├ ƒ /maintenance-screen                                                   204 B         102 kB
├ ○ /robots.txt                                                           204 B         102 kB
├ ƒ /s/[accessToken]                                                    3.65 kB         152 kB
└ ƒ /setup                                                              10.6 kB         228 kB
+ First Load JS shared by all                                            102 kB
  ├ chunks/4bd1b696-c48fbfcd9ffe6117.js                                 54.2 kB
  ├ chunks/8261-b2cae6ccb986a109.js                                     45.4 kB
  └ other shared chunks (total)                                         2.06 kB


ƒ Middleware                                                            34.1 kB

○  (Static)   prerendered as static content
ƒ  (Dynamic)  server-rendered on demand

Dynamic import switcher using build type: oss
DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/index.ts
   Original: #dynamic/cleanup
   Switched to: #open/cleanup (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/index.ts
   Original: #dynamic/license/license
   Switched to: #open/license/license (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/cleanup.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/cleanupLogs.ts
   Original: #dynamic/lib/logAccessAudit
   Switched to: #open/lib/logAccessAudit (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/cleanupLogs.ts
   Original: #dynamic/middlewares/logActionAudit
   Switched to: #open/middlewares/logActionAudit (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/integrationApiServer.ts
   Original: #dynamic/routers/integration
   Switched to: #open/routers/integration (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/internalServer.ts
   Original: #dynamic/routers/internal
   Switched to: #open/routers/internal (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/apiServer.ts
   Original: #dynamic/routers/external
   Switched to: #open/routers/external (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/apiServer.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/traefik/TraefikConfigManager.ts
   Original: #dynamic/lib/traefik
   Switched to: #open/lib/traefik (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/traefik/TraefikConfigManager.ts
   Original: #dynamic/lib/certificates
   Switched to: #open/lib/certificates (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/traefik/TraefikConfigManager.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/apiServer.ts
   Original: #dynamic/lib/rateLimitStore
   Switched to: #open/lib/rateLimitStore (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/apiServer.ts
   Original: #dynamic/routers/hybrid
   Switched to: #open/routers/hybrid (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/apiServer.ts
   Original: #dynamic/routers/billing/webhooks
   Switched to: #open/routers/billing/webhooks (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/traefik/traefikConfigProvider.ts
   Original: #dynamic/lib/traefik
   Switched to: #open/lib/traefik (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/gerbil/getResolvedHostname.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/newt/handleNewtPingMessage.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/newt/handleNewtPingRequestMessage.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/gerbil/getConfig.ts
   Original: #dynamic/routers/gerbil/createExitNode
   Switched to: #open/routers/gerbil/createExitNode (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/blueprints/applyNewtDockerBlueprint.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/gerbil/receiveBandwidth.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/gerbil/updateHolePunch.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/olm/handleOlmPingMessage.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/newt/handleGetConfigMessage.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/olm/handleOlmRegisterMessage.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/newt/handleNewtRegisterMessage.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/badger/verifySession.ts
   Original: #dynamic/lib/billing
   Switched to: #open/lib/billing (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/newt/sync.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/integration.ts
   Original: #dynamic/middlewares
   Switched to: #open/middlewares (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/newt/targets.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifyResourceAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifyAdmin.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifySiteAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifySetResourceClients.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifySetResourceUsers.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifyClientAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifyTargetAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifyUserAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/olm/handleOlmPingMessage.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/newt/peers.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifyOrgAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/newt/handleNewtRegisterMessage.ts
   Original: #dynamic/lib/lock
   Switched to: #open/lib/lock (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/olm/peers.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifyApiKeyAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifyDomainAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifyRoleAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/badger/verifySession.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifyAccessTokenAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/gerbil/peers.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/middlewares/verifySiteResourceAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/idp/generateOidcUrl.ts
   Original: #dynamic/lib/billing
   Switched to: #open/lib/billing (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/newt/dockerSocket.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/calculateUserClientsForOrgs.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/olm/error.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/billing/usageService.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/blueprints/proxyResources.ts
   Original: #dynamic/routers/certificates/createCertificate
   Switched to: #open/routers/certificates/createCertificate (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/rebuildClientAssociations.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/blueprints/types.ts
   Original: #dynamic/lib/blueprints/MaintenanceSchema
   Switched to: #open/lib/blueprints/MaintenanceSchema (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/client/terminate.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/olm/sync.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/calculateUserClientsForOrgs.ts
   Original: #dynamic/lib/isLicencedOrSubscribed
   Switched to: #open/lib/isLicencedOrSubscribed (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/external.ts
   Original: #dynamic/lib/rateLimitStore
   Switched to: #open/lib/rateLimitStore (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/client/targets.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/blueprints/proxyResources.ts
   Original: #dynamic/lib/isLicencedOrSubscribed
   Switched to: #open/lib/isLicencedOrSubscribed (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/external.ts
   Original: #dynamic/middlewares
   Switched to: #open/middlewares (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/site/socketIntegration.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/auth/login.ts
   Original: #dynamic/lib/logAccessAudit
   Switched to: #open/lib/logAccessAudit (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/site/deleteSite.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/org/checkOrgUserAccess.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/org/deleteOrg.ts
   Original: #dynamic/routers/ws
   Switched to: #open/routers/ws (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/auth/signup.ts
   Original: #dynamic/lib/resend
   Switched to: #open/lib/resend (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/role/updateRole.ts
   Original: #dynamic/lib/isLicencedOrSubscribed
   Switched to: #open/lib/isLicencedOrSubscribed (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/org/updateOrg.ts
   Original: #dynamic/lib/billing
   Switched to: #open/lib/billing (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/site/pickSiteDefaults.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/org/createOrg.ts
   Original: #dynamic/lib/billing
   Switched to: #open/lib/billing (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/client/getClient.ts
   Original: #dynamic/lib/isLicencedOrSubscribed
   Switched to: #open/lib/isLicencedOrSubscribed (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/client/createUserClient.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/role/createRole.ts
   Original: #dynamic/lib/isLicencedOrSubscribed
   Switched to: #open/lib/isLicencedOrSubscribed (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/resource/updateResource.ts
   Original: #dynamic/routers/certificates/createCertificate
   Switched to: #open/routers/certificates/createCertificate (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/serverInfo/getServerInfo.ts
   Original: #dynamic/license/license
   Switched to: #open/license/license (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/resource/authWithWhitelist.ts
   Original: #dynamic/lib/logAccessAudit
   Switched to: #open/lib/logAccessAudit (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/resource/authWithPincode.ts
   Original: #dynamic/lib/logAccessAudit
   Switched to: #open/lib/logAccessAudit (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/resource/authWithPassword.ts
   Original: #dynamic/lib/logAccessAudit
   Switched to: #open/lib/logAccessAudit (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/resource/createResource.ts
   Original: #dynamic/routers/certificates/createCertificate
   Switched to: #open/routers/certificates/createCertificate (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/client/createClient.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/resource/getExchangeToken.ts
   Original: #dynamic/lib/checkOrgAccessPolicy
   Switched to: #open/lib/checkOrgAccessPolicy (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/site/createSite.ts
   Original: #dynamic/lib/exitNodes
   Switched to: #open/lib/exitNodes (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/resource/authWithAccessToken.ts
   Original: #dynamic/lib/logAccessAudit
   Switched to: #open/lib/logAccessAudit (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/org/updateOrg.ts
   Original: #dynamic/lib/isLicencedOrSubscribed
   Switched to: #open/lib/isLicencedOrSubscribed (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/resource/updateResource.ts
   Original: #dynamic/lib/isLicencedOrSubscribed
   Switched to: #open/lib/isLicencedOrSubscribed (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/lib/createUserAccountOrg.ts
   Original: #dynamic/lib/billing
   Switched to: #open/lib/billing (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/resource/getExchangeToken.ts
   Original: #dynamic/lib/logAccessAudit
   Switched to: #open/lib/logAccessAudit (build: oss)

DYNAMIC IMPORT SWITCH:
   File: /opt/pangolin/server/routers/user/createOrgUser.ts
   Original: #dynamic/lib/billing
   Switched to: #open/lib/billing (build: oss)


DYNAMIC IMPORT SUMMARY: Switched 94 import(s) for build type 'oss':
   1. server/index.ts
      #dynamic/cleanup → #open/cleanup
   2. server/index.ts
      #dynamic/license/license → #open/license/license
   3. server/cleanup.ts
      #dynamic/routers/ws → #open/routers/ws
   4. server/lib/cleanupLogs.ts
      #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit
   5. server/lib/cleanupLogs.ts
      #dynamic/middlewares/logActionAudit → #open/middlewares/logActionAudit
   6. server/integrationApiServer.ts
      #dynamic/routers/integration → #open/routers/integration
   7. server/internalServer.ts
      #dynamic/routers/internal → #open/routers/internal
   8. server/apiServer.ts
      #dynamic/routers/external → #open/routers/external
   9. server/apiServer.ts
      #dynamic/routers/ws → #open/routers/ws
   10. server/lib/traefik/TraefikConfigManager.ts
      #dynamic/lib/traefik → #open/lib/traefik
   11. server/lib/traefik/TraefikConfigManager.ts
      #dynamic/lib/certificates → #open/lib/certificates
   12. server/lib/traefik/TraefikConfigManager.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   13. server/apiServer.ts
      #dynamic/lib/rateLimitStore → #open/lib/rateLimitStore
   14. server/apiServer.ts
      #dynamic/routers/hybrid → #open/routers/hybrid
   15. server/apiServer.ts
      #dynamic/routers/billing/webhooks → #open/routers/billing/webhooks
   16. server/routers/traefik/traefikConfigProvider.ts
      #dynamic/lib/traefik → #open/lib/traefik
   17. server/routers/gerbil/getResolvedHostname.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   18. server/routers/newt/handleNewtPingMessage.ts
      #dynamic/routers/ws → #open/routers/ws
   19. server/routers/newt/handleNewtPingRequestMessage.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   20. server/routers/gerbil/getConfig.ts
      #dynamic/routers/gerbil/createExitNode → #open/routers/gerbil/createExitNode
   21. server/lib/blueprints/applyNewtDockerBlueprint.ts
      #dynamic/routers/ws → #open/routers/ws
   22. server/routers/gerbil/receiveBandwidth.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   23. server/routers/gerbil/updateHolePunch.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   24. server/routers/olm/handleOlmPingMessage.ts
      #dynamic/routers/ws → #open/routers/ws
   25. server/routers/newt/handleGetConfigMessage.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   26. server/routers/olm/handleOlmRegisterMessage.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   27. server/routers/newt/handleNewtRegisterMessage.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   28. server/routers/badger/verifySession.ts
      #dynamic/lib/billing → #open/lib/billing
   29. server/routers/newt/sync.ts
      #dynamic/routers/ws → #open/routers/ws
   30. server/routers/integration.ts
      #dynamic/middlewares → #open/middlewares
   31. server/routers/newt/targets.ts
      #dynamic/routers/ws → #open/routers/ws
   32. server/middlewares/verifyResourceAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   33. server/middlewares/verifyAdmin.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   34. server/middlewares/verifySiteAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   35. server/middlewares/verifySetResourceClients.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   36. server/middlewares/verifySetResourceUsers.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   37. server/middlewares/verifyClientAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   38. server/middlewares/verifyTargetAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   39. server/middlewares/verifyUserAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   40. server/routers/olm/handleOlmPingMessage.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   41. server/routers/newt/peers.ts
      #dynamic/routers/ws → #open/routers/ws
   42. server/middlewares/verifyOrgAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   43. server/routers/newt/handleNewtRegisterMessage.ts
      #dynamic/lib/lock → #open/lib/lock
   44. server/routers/olm/peers.ts
      #dynamic/routers/ws → #open/routers/ws
   45. server/middlewares/verifyApiKeyAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   46. server/middlewares/verifyDomainAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   47. server/middlewares/verifyRoleAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   48. server/routers/badger/verifySession.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   49. server/middlewares/verifyAccessTokenAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   50. server/routers/gerbil/peers.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   51. server/middlewares/verifySiteResourceAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   52. server/routers/idp/generateOidcUrl.ts
      #dynamic/lib/billing → #open/lib/billing
   53. server/routers/newt/dockerSocket.ts
      #dynamic/routers/ws → #open/routers/ws
   54. server/lib/calculateUserClientsForOrgs.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   55. server/routers/olm/error.ts
      #dynamic/routers/ws → #open/routers/ws
   56. server/lib/billing/usageService.ts
      #dynamic/routers/ws → #open/routers/ws
   57. server/lib/blueprints/proxyResources.ts
      #dynamic/routers/certificates/createCertificate → #open/routers/certificates/createCertificate
   58. server/lib/rebuildClientAssociations.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   59. server/lib/blueprints/types.ts
      #dynamic/lib/blueprints/MaintenanceSchema → #open/lib/blueprints/MaintenanceSchema
   60. server/routers/client/terminate.ts
      #dynamic/routers/ws → #open/routers/ws
   61. server/routers/olm/sync.ts
      #dynamic/routers/ws → #open/routers/ws
   62. server/lib/calculateUserClientsForOrgs.ts
      #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed
   63. server/routers/external.ts
      #dynamic/lib/rateLimitStore → #open/lib/rateLimitStore
   64. server/routers/client/targets.ts
      #dynamic/routers/ws → #open/routers/ws
   65. server/lib/blueprints/proxyResources.ts
      #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed
   66. server/routers/external.ts
      #dynamic/middlewares → #open/middlewares
   67. server/routers/site/socketIntegration.ts
      #dynamic/routers/ws → #open/routers/ws
   68. server/routers/auth/login.ts
      #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit
   69. server/routers/site/deleteSite.ts
      #dynamic/routers/ws → #open/routers/ws
   70. server/routers/org/checkOrgUserAccess.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   71. server/routers/org/deleteOrg.ts
      #dynamic/routers/ws → #open/routers/ws
   72. server/routers/auth/signup.ts
      #dynamic/lib/resend → #open/lib/resend
   73. server/routers/role/updateRole.ts
      #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed
   74. server/routers/org/updateOrg.ts
      #dynamic/lib/billing → #open/lib/billing
   75. server/routers/site/pickSiteDefaults.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   76. server/routers/org/createOrg.ts
      #dynamic/lib/billing → #open/lib/billing
   77. server/routers/client/getClient.ts
      #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed
   78. server/routers/client/createUserClient.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   79. server/routers/role/createRole.ts
      #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed
   80. server/routers/resource/updateResource.ts
      #dynamic/routers/certificates/createCertificate → #open/routers/certificates/createCertificate
   81. server/routers/serverInfo/getServerInfo.ts
      #dynamic/license/license → #open/license/license
   82. server/routers/resource/authWithWhitelist.ts
      #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit
   83. server/routers/resource/authWithPincode.ts
      #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit
   84. server/routers/resource/authWithPassword.ts
      #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit
   85. server/routers/resource/createResource.ts
      #dynamic/routers/certificates/createCertificate → #open/routers/certificates/createCertificate
   86. server/routers/client/createClient.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   87. server/routers/resource/getExchangeToken.ts
      #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy
   88. server/routers/site/createSite.ts
      #dynamic/lib/exitNodes → #open/lib/exitNodes
   89. server/routers/resource/authWithAccessToken.ts
      #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit
   90. server/routers/org/updateOrg.ts
      #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed
   91. server/routers/resource/updateResource.ts
      #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed
   92. server/lib/createUserAccountOrg.ts
      #dynamic/lib/billing → #open/lib/billing
   93. server/routers/resource/getExchangeToken.ts
      #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit
   94. server/routers/user/createOrgUser.ts
      #dynamic/lib/billing → #open/lib/billing

Build completed successfully
Dynamic import switcher using build type: oss
Build completed successfully

> @fosrl/pangolin@0.0.0 build:cli
> node esbuild.mjs -e cli/index.ts -o dist/cli.mjs

Dynamic import switcher using build type: oss
Build completed successfully
  ✔️   Updated Pangolin
  ✔️   Restored config
  ✔️   Updated Badger plugin version
  ✔️   Started Services
  ✔️   Updated successfully!

🖼️ Additional context (optional).

No response

Originally created by @darlezior on GitHub (Jan 25, 2026). Originally assigned to: @vhsdream on GitHub. ### ✅ Have you read and understood the above guidelines? yes ### 🔎 Did you run the script with verbose mode enabled? Yes, verbose mode was enabled and the output is included below ### 📜 What is the name of the script you are using? Pangolin ### 📂 What was the exact command used to execute the script? update ### ⚙️ What settings are you using? - [x] Default Settings - [ ] Advanced Settings ### 🖥️ Which Linux distribution are you using? Debian 13 ### 📈 Which Proxmox version are you on? 8.4.16 ### 📝 Provide a clear and concise description of the issue. Hi there, I Just updated pangolin via update command to version 1.15.1. After update i got Bad gateway on pangolin web UI. I was wondering if it could be a problem with the update script or something else. It was working perfectly before, but I restored the backup and now it works again. Thanks a lot. ### 🔄 Steps to reproduce the issue. 1) update 2) open webui ### ❌ Paste the full error output (if available). ``` ✔️ Update available: pangolin 1.14.1 → 1.15.1 ✔️ Created backup ✔️ Deployed: pangolin (1.15.1) ✔️ gerbil is already up-to-date (v1.3.0) npm warn deprecated keygrip@1.1.0: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead npm warn deprecated oslo@1.2.1: Package is no longer supported. Please see https://oslojs.dev for the successor project. npm warn deprecated @esbuild-kit/core-utils@3.3.2: Merged into tsx: https://tsx.is npm warn deprecated @esbuild-kit/esm-loader@2.6.5: Merged into tsx: https://tsx.is added 1271 packages, and audited 1437 packages in 47s 273 packages are looking for funding run `npm fund` for details 8 vulnerabilities (1 low, 5 moderate, 2 high) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. > @fosrl/pangolin@0.0.0 set:sqlite > echo 'export * from "./sqlite"; > export const driver: "pg" | "sqlite" = "sqlite";' > server/db/index.ts > @fosrl/pangolin@0.0.0 set:oss > echo 'export const build = "oss" as "saas" | "enterprise" | "oss";' > server/build.ts && cp tsconfig.oss.json tsconfig.json > @fosrl/pangolin@0.0.0 build:sqlite > mkdir -p dist && next build && node esbuild.mjs -e server/index.ts -o dist/server.mjs && node esbuild.mjs -e server/setup/migrationsSqlite.ts -o dist/migrations.mjs ▲ Next.js 15.5.9 - Experiments (use with caution): ✓ reactCompiler Creating an optimized production build ... ✓ Compiled successfully in 67s Skipping linting ✓ Checking validity of types ✓ Collecting page data ✓ Generating static pages (3/3) ✓ Collecting build traces ✓ Finalizing page optimization Route (app) Size First Load JS ┌ ƒ / 2.27 kB 380 kB ├ ƒ /_not-found 204 B 102 kB ├ ƒ /[orgId] 15.3 kB 394 kB ├ ƒ /[orgId]/settings 204 B 102 kB ├ ƒ /[orgId]/settings/access 204 B 102 kB ├ ƒ /[orgId]/settings/access/approvals 14.6 kB 268 kB ├ ƒ /[orgId]/settings/access/invitations 9.19 kB 332 kB ├ ƒ /[orgId]/settings/access/roles 10.5 kB 311 kB ├ ƒ /[orgId]/settings/access/users 7.62 kB 317 kB ├ ƒ /[orgId]/settings/access/users/[userId] 204 B 102 kB ├ ƒ /[orgId]/settings/access/users/[userId]/access-controls 12.2 kB 266 kB ├ ƒ /[orgId]/settings/access/users/create 19.1 kB 273 kB ├ ƒ /[orgId]/settings/api-keys 5.99 kB 329 kB ├ ƒ /[orgId]/settings/api-keys/[apiKeyId] 204 B 102 kB ├ ƒ /[orgId]/settings/api-keys/[apiKeyId]/permissions 1.24 kB 157 kB ├ ƒ /[orgId]/settings/api-keys/create 7.28 kB 255 kB ├ ƒ /[orgId]/settings/billing 10.9 kB 185 kB ├ ƒ /[orgId]/settings/blueprints 7.75 kB 201 kB ├ ƒ /[orgId]/settings/blueprints/[blueprintId] 5.8 kB 146 kB ├ ƒ /[orgId]/settings/blueprints/create 36.8 kB 261 kB ├ ƒ /[orgId]/settings/clients 204 B 102 kB ├ ƒ /[orgId]/settings/clients/machine 5.31 kB 313 kB ├ ƒ /[orgId]/settings/clients/machine/[niceId] 204 B 102 kB ├ ƒ /[orgId]/settings/clients/machine/[niceId]/credentials 4.79 kB 262 kB ├ ƒ /[orgId]/settings/clients/machine/[niceId]/general 6.62 kB 225 kB ├ ƒ /[orgId]/settings/clients/machine/create 10.2 kB 236 kB ├ ƒ /[orgId]/settings/clients/user 7.86 kB 324 kB ├ ƒ /[orgId]/settings/clients/user/[niceId] 204 B 102 kB ├ ƒ /[orgId]/settings/clients/user/[niceId]/general 7.95 kB 162 kB ├ ƒ /[orgId]/settings/domains 13.2 kB 317 kB ├ ƒ /[orgId]/settings/domains/[domainId] 14.9 kB 283 kB ├ ƒ /[orgId]/settings/general 4.77 kB 255 kB ├ ƒ /[orgId]/settings/general/auth-page 9.68 kB 298 kB ├ ƒ /[orgId]/settings/general/security 10.4 kB 286 kB ├ ƒ /[orgId]/settings/idp 8.34 kB 318 kB ├ ƒ /[orgId]/settings/idp/[idpId] 204 B 102 kB ├ ƒ /[orgId]/settings/idp/[idpId]/general 5.32 kB 280 kB ├ ƒ /[orgId]/settings/idp/create 3.81 kB 275 kB ├ ƒ /[orgId]/settings/license 11.8 kB 335 kB ├ ƒ /[orgId]/settings/logs 1.25 kB 138 kB ├ ƒ /[orgId]/settings/logs/access 3.96 kB 254 kB ├ ƒ /[orgId]/settings/logs/action 3.46 kB 250 kB ├ ƒ /[orgId]/settings/logs/analytics 192 kB 472 kB ├ ƒ /[orgId]/settings/logs/request 3.69 kB 254 kB ├ ƒ /[orgId]/settings/remote-exit-nodes 6.69 kB 311 kB ├ ƒ /[orgId]/settings/remote-exit-nodes/[remoteExitNodeId] 204 B 102 kB ├ ƒ /[orgId]/settings/remote-exit-nodes/[remoteExitNodeId]/credentials 5.07 kB 255 kB ├ ƒ /[orgId]/settings/remote-exit-nodes/create 13.5 kB 234 kB ├ ƒ /[orgId]/settings/resources 204 B 102 kB ├ ƒ /[orgId]/settings/resources/client 21.4 kB 352 kB ├ ƒ /[orgId]/settings/resources/proxy 11.9 kB 319 kB ├ ƒ /[orgId]/settings/resources/proxy/[niceId] 204 B 102 kB ├ ƒ /[orgId]/settings/resources/proxy/[niceId]/authentication 18.4 kB 314 kB ├ ƒ /[orgId]/settings/resources/proxy/[niceId]/general 9.65 kB 302 kB ├ ƒ /[orgId]/settings/resources/proxy/[niceId]/proxy 14.3 kB 347 kB ├ ƒ /[orgId]/settings/resources/proxy/[niceId]/rules 25.6 kB 298 kB ├ ƒ /[orgId]/settings/resources/proxy/create 10.6 kB 363 kB ├ ƒ /[orgId]/settings/share-links 19.5 kB 352 kB ├ ƒ /[orgId]/settings/sites 9.21 kB 316 kB ├ ƒ /[orgId]/settings/sites/[niceId] 204 B 102 kB ├ ƒ /[orgId]/settings/sites/[niceId]/credentials 3.55 kB 277 kB ├ ƒ /[orgId]/settings/sites/[niceId]/general 10.7 kB 255 kB ├ ƒ /[orgId]/settings/sites/create 13.5 kB 260 kB ├ ƒ /admin 204 B 102 kB ├ ƒ /admin/api-keys 5.98 kB 329 kB ├ ƒ /admin/api-keys/[apiKeyId] 204 B 102 kB ├ ƒ /admin/api-keys/[apiKeyId]/permissions 1.22 kB 157 kB ├ ƒ /admin/api-keys/create 7.23 kB 255 kB ├ ƒ /admin/idp 6.8 kB 316 kB ├ ƒ /admin/idp/[idpId] 204 B 102 kB ├ ƒ /admin/idp/[idpId]/general 12.7 kB 257 kB ├ ƒ /admin/idp/[idpId]/policies 13.3 kB 320 kB ├ ƒ /admin/idp/create 11.9 kB 253 kB ├ ƒ /admin/license 11.9 kB 335 kB ├ ƒ /admin/users 6.44 kB 311 kB ├ ƒ /admin/users/[userId] 204 B 102 kB ├ ƒ /admin/users/[userId]/general 7.97 kB 179 kB ├ ƒ /auth/2fa/setup 9.77 kB 231 kB ├ ƒ /auth/idp/[idpId]/oidc/callback 4.06 kB 149 kB ├ ƒ /auth/initial-setup 4.79 kB 229 kB ├ ƒ /auth/login 7.91 kB 253 kB ├ ƒ /auth/login/device 14.3 kB 239 kB ├ ƒ /auth/login/device/success 4.51 kB 137 kB ├ ƒ /auth/org 12.9 kB 169 kB ├ ƒ /auth/org/[orgId] 4.02 kB 137 kB ├ ƒ /auth/reset-password 10.5 kB 233 kB ├ ƒ /auth/resource/[resourceGuid] 13.3 kB 260 kB ├ ƒ /auth/signup 12.8 kB 243 kB ��� ƒ /auth/verify-email 13.8 kB 229 kB ├ ƒ /invite 5.42 kB 150 kB ├ ƒ /maintenance-screen 204 B 102 kB ├ ○ /robots.txt 204 B 102 kB ├ ƒ /s/[accessToken] 3.65 kB 152 kB └ ƒ /setup 10.6 kB 228 kB + First Load JS shared by all 102 kB ├ chunks/4bd1b696-c48fbfcd9ffe6117.js 54.2 kB ├ chunks/8261-b2cae6ccb986a109.js 45.4 kB └ other shared chunks (total) 2.06 kB ƒ Middleware 34.1 kB ○ (Static) prerendered as static content ƒ (Dynamic) server-rendered on demand Dynamic import switcher using build type: oss DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/index.ts Original: #dynamic/cleanup Switched to: #open/cleanup (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/index.ts Original: #dynamic/license/license Switched to: #open/license/license (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/cleanup.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/cleanupLogs.ts Original: #dynamic/lib/logAccessAudit Switched to: #open/lib/logAccessAudit (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/cleanupLogs.ts Original: #dynamic/middlewares/logActionAudit Switched to: #open/middlewares/logActionAudit (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/integrationApiServer.ts Original: #dynamic/routers/integration Switched to: #open/routers/integration (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/internalServer.ts Original: #dynamic/routers/internal Switched to: #open/routers/internal (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/apiServer.ts Original: #dynamic/routers/external Switched to: #open/routers/external (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/apiServer.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/traefik/TraefikConfigManager.ts Original: #dynamic/lib/traefik Switched to: #open/lib/traefik (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/traefik/TraefikConfigManager.ts Original: #dynamic/lib/certificates Switched to: #open/lib/certificates (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/traefik/TraefikConfigManager.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/apiServer.ts Original: #dynamic/lib/rateLimitStore Switched to: #open/lib/rateLimitStore (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/apiServer.ts Original: #dynamic/routers/hybrid Switched to: #open/routers/hybrid (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/apiServer.ts Original: #dynamic/routers/billing/webhooks Switched to: #open/routers/billing/webhooks (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/traefik/traefikConfigProvider.ts Original: #dynamic/lib/traefik Switched to: #open/lib/traefik (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/gerbil/getResolvedHostname.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/newt/handleNewtPingMessage.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/newt/handleNewtPingRequestMessage.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/gerbil/getConfig.ts Original: #dynamic/routers/gerbil/createExitNode Switched to: #open/routers/gerbil/createExitNode (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/blueprints/applyNewtDockerBlueprint.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/gerbil/receiveBandwidth.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/gerbil/updateHolePunch.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/olm/handleOlmPingMessage.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/newt/handleGetConfigMessage.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/olm/handleOlmRegisterMessage.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/newt/handleNewtRegisterMessage.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/badger/verifySession.ts Original: #dynamic/lib/billing Switched to: #open/lib/billing (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/newt/sync.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/integration.ts Original: #dynamic/middlewares Switched to: #open/middlewares (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/newt/targets.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifyResourceAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifyAdmin.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifySiteAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifySetResourceClients.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifySetResourceUsers.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifyClientAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifyTargetAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifyUserAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/olm/handleOlmPingMessage.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/newt/peers.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifyOrgAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/newt/handleNewtRegisterMessage.ts Original: #dynamic/lib/lock Switched to: #open/lib/lock (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/olm/peers.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifyApiKeyAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifyDomainAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifyRoleAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/badger/verifySession.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifyAccessTokenAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/gerbil/peers.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/middlewares/verifySiteResourceAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/idp/generateOidcUrl.ts Original: #dynamic/lib/billing Switched to: #open/lib/billing (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/newt/dockerSocket.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/calculateUserClientsForOrgs.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/olm/error.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/billing/usageService.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/blueprints/proxyResources.ts Original: #dynamic/routers/certificates/createCertificate Switched to: #open/routers/certificates/createCertificate (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/rebuildClientAssociations.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/blueprints/types.ts Original: #dynamic/lib/blueprints/MaintenanceSchema Switched to: #open/lib/blueprints/MaintenanceSchema (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/client/terminate.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/olm/sync.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/calculateUserClientsForOrgs.ts Original: #dynamic/lib/isLicencedOrSubscribed Switched to: #open/lib/isLicencedOrSubscribed (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/external.ts Original: #dynamic/lib/rateLimitStore Switched to: #open/lib/rateLimitStore (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/client/targets.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/blueprints/proxyResources.ts Original: #dynamic/lib/isLicencedOrSubscribed Switched to: #open/lib/isLicencedOrSubscribed (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/external.ts Original: #dynamic/middlewares Switched to: #open/middlewares (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/site/socketIntegration.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/auth/login.ts Original: #dynamic/lib/logAccessAudit Switched to: #open/lib/logAccessAudit (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/site/deleteSite.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/org/checkOrgUserAccess.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/org/deleteOrg.ts Original: #dynamic/routers/ws Switched to: #open/routers/ws (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/auth/signup.ts Original: #dynamic/lib/resend Switched to: #open/lib/resend (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/role/updateRole.ts Original: #dynamic/lib/isLicencedOrSubscribed Switched to: #open/lib/isLicencedOrSubscribed (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/org/updateOrg.ts Original: #dynamic/lib/billing Switched to: #open/lib/billing (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/site/pickSiteDefaults.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/org/createOrg.ts Original: #dynamic/lib/billing Switched to: #open/lib/billing (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/client/getClient.ts Original: #dynamic/lib/isLicencedOrSubscribed Switched to: #open/lib/isLicencedOrSubscribed (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/client/createUserClient.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/role/createRole.ts Original: #dynamic/lib/isLicencedOrSubscribed Switched to: #open/lib/isLicencedOrSubscribed (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/resource/updateResource.ts Original: #dynamic/routers/certificates/createCertificate Switched to: #open/routers/certificates/createCertificate (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/serverInfo/getServerInfo.ts Original: #dynamic/license/license Switched to: #open/license/license (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/resource/authWithWhitelist.ts Original: #dynamic/lib/logAccessAudit Switched to: #open/lib/logAccessAudit (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/resource/authWithPincode.ts Original: #dynamic/lib/logAccessAudit Switched to: #open/lib/logAccessAudit (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/resource/authWithPassword.ts Original: #dynamic/lib/logAccessAudit Switched to: #open/lib/logAccessAudit (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/resource/createResource.ts Original: #dynamic/routers/certificates/createCertificate Switched to: #open/routers/certificates/createCertificate (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/client/createClient.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/resource/getExchangeToken.ts Original: #dynamic/lib/checkOrgAccessPolicy Switched to: #open/lib/checkOrgAccessPolicy (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/site/createSite.ts Original: #dynamic/lib/exitNodes Switched to: #open/lib/exitNodes (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/resource/authWithAccessToken.ts Original: #dynamic/lib/logAccessAudit Switched to: #open/lib/logAccessAudit (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/org/updateOrg.ts Original: #dynamic/lib/isLicencedOrSubscribed Switched to: #open/lib/isLicencedOrSubscribed (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/resource/updateResource.ts Original: #dynamic/lib/isLicencedOrSubscribed Switched to: #open/lib/isLicencedOrSubscribed (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/lib/createUserAccountOrg.ts Original: #dynamic/lib/billing Switched to: #open/lib/billing (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/resource/getExchangeToken.ts Original: #dynamic/lib/logAccessAudit Switched to: #open/lib/logAccessAudit (build: oss) DYNAMIC IMPORT SWITCH: File: /opt/pangolin/server/routers/user/createOrgUser.ts Original: #dynamic/lib/billing Switched to: #open/lib/billing (build: oss) DYNAMIC IMPORT SUMMARY: Switched 94 import(s) for build type 'oss': 1. server/index.ts #dynamic/cleanup → #open/cleanup 2. server/index.ts #dynamic/license/license → #open/license/license 3. server/cleanup.ts #dynamic/routers/ws → #open/routers/ws 4. server/lib/cleanupLogs.ts #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit 5. server/lib/cleanupLogs.ts #dynamic/middlewares/logActionAudit → #open/middlewares/logActionAudit 6. server/integrationApiServer.ts #dynamic/routers/integration → #open/routers/integration 7. server/internalServer.ts #dynamic/routers/internal → #open/routers/internal 8. server/apiServer.ts #dynamic/routers/external → #open/routers/external 9. server/apiServer.ts #dynamic/routers/ws → #open/routers/ws 10. server/lib/traefik/TraefikConfigManager.ts #dynamic/lib/traefik → #open/lib/traefik 11. server/lib/traefik/TraefikConfigManager.ts #dynamic/lib/certificates → #open/lib/certificates 12. server/lib/traefik/TraefikConfigManager.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 13. server/apiServer.ts #dynamic/lib/rateLimitStore → #open/lib/rateLimitStore 14. server/apiServer.ts #dynamic/routers/hybrid → #open/routers/hybrid 15. server/apiServer.ts #dynamic/routers/billing/webhooks → #open/routers/billing/webhooks 16. server/routers/traefik/traefikConfigProvider.ts #dynamic/lib/traefik → #open/lib/traefik 17. server/routers/gerbil/getResolvedHostname.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 18. server/routers/newt/handleNewtPingMessage.ts #dynamic/routers/ws → #open/routers/ws 19. server/routers/newt/handleNewtPingRequestMessage.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 20. server/routers/gerbil/getConfig.ts #dynamic/routers/gerbil/createExitNode → #open/routers/gerbil/createExitNode 21. server/lib/blueprints/applyNewtDockerBlueprint.ts #dynamic/routers/ws → #open/routers/ws 22. server/routers/gerbil/receiveBandwidth.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 23. server/routers/gerbil/updateHolePunch.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 24. server/routers/olm/handleOlmPingMessage.ts #dynamic/routers/ws → #open/routers/ws 25. server/routers/newt/handleGetConfigMessage.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 26. server/routers/olm/handleOlmRegisterMessage.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 27. server/routers/newt/handleNewtRegisterMessage.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 28. server/routers/badger/verifySession.ts #dynamic/lib/billing → #open/lib/billing 29. server/routers/newt/sync.ts #dynamic/routers/ws → #open/routers/ws 30. server/routers/integration.ts #dynamic/middlewares → #open/middlewares 31. server/routers/newt/targets.ts #dynamic/routers/ws → #open/routers/ws 32. server/middlewares/verifyResourceAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 33. server/middlewares/verifyAdmin.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 34. server/middlewares/verifySiteAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 35. server/middlewares/verifySetResourceClients.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 36. server/middlewares/verifySetResourceUsers.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 37. server/middlewares/verifyClientAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 38. server/middlewares/verifyTargetAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 39. server/middlewares/verifyUserAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 40. server/routers/olm/handleOlmPingMessage.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 41. server/routers/newt/peers.ts #dynamic/routers/ws → #open/routers/ws 42. server/middlewares/verifyOrgAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 43. server/routers/newt/handleNewtRegisterMessage.ts #dynamic/lib/lock → #open/lib/lock 44. server/routers/olm/peers.ts #dynamic/routers/ws → #open/routers/ws 45. server/middlewares/verifyApiKeyAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 46. server/middlewares/verifyDomainAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 47. server/middlewares/verifyRoleAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 48. server/routers/badger/verifySession.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 49. server/middlewares/verifyAccessTokenAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 50. server/routers/gerbil/peers.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 51. server/middlewares/verifySiteResourceAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 52. server/routers/idp/generateOidcUrl.ts #dynamic/lib/billing → #open/lib/billing 53. server/routers/newt/dockerSocket.ts #dynamic/routers/ws → #open/routers/ws 54. server/lib/calculateUserClientsForOrgs.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 55. server/routers/olm/error.ts #dynamic/routers/ws → #open/routers/ws 56. server/lib/billing/usageService.ts #dynamic/routers/ws → #open/routers/ws 57. server/lib/blueprints/proxyResources.ts #dynamic/routers/certificates/createCertificate → #open/routers/certificates/createCertificate 58. server/lib/rebuildClientAssociations.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 59. server/lib/blueprints/types.ts #dynamic/lib/blueprints/MaintenanceSchema → #open/lib/blueprints/MaintenanceSchema 60. server/routers/client/terminate.ts #dynamic/routers/ws → #open/routers/ws 61. server/routers/olm/sync.ts #dynamic/routers/ws → #open/routers/ws 62. server/lib/calculateUserClientsForOrgs.ts #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed 63. server/routers/external.ts #dynamic/lib/rateLimitStore → #open/lib/rateLimitStore 64. server/routers/client/targets.ts #dynamic/routers/ws → #open/routers/ws 65. server/lib/blueprints/proxyResources.ts #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed 66. server/routers/external.ts #dynamic/middlewares → #open/middlewares 67. server/routers/site/socketIntegration.ts #dynamic/routers/ws → #open/routers/ws 68. server/routers/auth/login.ts #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit 69. server/routers/site/deleteSite.ts #dynamic/routers/ws → #open/routers/ws 70. server/routers/org/checkOrgUserAccess.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 71. server/routers/org/deleteOrg.ts #dynamic/routers/ws → #open/routers/ws 72. server/routers/auth/signup.ts #dynamic/lib/resend → #open/lib/resend 73. server/routers/role/updateRole.ts #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed 74. server/routers/org/updateOrg.ts #dynamic/lib/billing → #open/lib/billing 75. server/routers/site/pickSiteDefaults.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 76. server/routers/org/createOrg.ts #dynamic/lib/billing → #open/lib/billing 77. server/routers/client/getClient.ts #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed 78. server/routers/client/createUserClient.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 79. server/routers/role/createRole.ts #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed 80. server/routers/resource/updateResource.ts #dynamic/routers/certificates/createCertificate → #open/routers/certificates/createCertificate 81. server/routers/serverInfo/getServerInfo.ts #dynamic/license/license → #open/license/license 82. server/routers/resource/authWithWhitelist.ts #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit 83. server/routers/resource/authWithPincode.ts #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit 84. server/routers/resource/authWithPassword.ts #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit 85. server/routers/resource/createResource.ts #dynamic/routers/certificates/createCertificate → #open/routers/certificates/createCertificate 86. server/routers/client/createClient.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 87. server/routers/resource/getExchangeToken.ts #dynamic/lib/checkOrgAccessPolicy → #open/lib/checkOrgAccessPolicy 88. server/routers/site/createSite.ts #dynamic/lib/exitNodes → #open/lib/exitNodes 89. server/routers/resource/authWithAccessToken.ts #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit 90. server/routers/org/updateOrg.ts #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed 91. server/routers/resource/updateResource.ts #dynamic/lib/isLicencedOrSubscribed → #open/lib/isLicencedOrSubscribed 92. server/lib/createUserAccountOrg.ts #dynamic/lib/billing → #open/lib/billing 93. server/routers/resource/getExchangeToken.ts #dynamic/lib/logAccessAudit → #open/lib/logAccessAudit 94. server/routers/user/createOrgUser.ts #dynamic/lib/billing → #open/lib/billing Build completed successfully Dynamic import switcher using build type: oss Build completed successfully > @fosrl/pangolin@0.0.0 build:cli > node esbuild.mjs -e cli/index.ts -o dist/cli.mjs Dynamic import switcher using build type: oss Build completed successfully ✔️ Updated Pangolin ✔️ Restored config ✔️ Updated Badger plugin version ✔️ Started Services ✔️ Updated successfully! ``` ### 🖼️ Additional context (optional). _No response_
OVERLORD added the bugbugfix labels 2026-02-05 04:40:38 +03:00
Author
Owner

@darlezior commented on GitHub (Jan 25, 2026):

root@pangolin:~# journalctl -u pangolin -n 100 --no-pager

Jan 25 10:18:38 pangolin node[554]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}}
Jan 25 10:18:38 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE
Jan 25 10:18:38 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'.
Jan 25 10:18:38 pangolin systemd[1]: pangolin.service: Consumed 3.141s CPU time, 216.5M memory peak.
Jan 25 10:18:49 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 29.
Jan 25 10:18:49 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 25 10:18:51 pangolin node[570]: 2026-01-25T09:18:51+01:00 [error]: Uncaught Exception:
Jan 25 10:18:51 pangolin node[570]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json'
Jan 25 10:18:51 pangolin node[570]: at readFileSync (node:fs:440:20)
Jan 25 10:18:51 pangolin node[570]: at (/opt/pangolin/server/db/names.ts:31:5)
Jan 25 10:18:51 pangolin node[570]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25)
Jan 25 10:18:51 pangolin node[570]: at async onImport.tracePromise.proto (node:internal/modules/esm/loader:665:26)
Jan 25 10:18:51 pangolin node[570]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}}
Jan 25 10:18:52 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE
Jan 25 10:18:52 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'.
Jan 25 10:18:52 pangolin systemd[1]: pangolin.service: Consumed 3.127s CPU time, 212.7M memory peak.
Jan 25 10:19:02 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 30.
Jan 25 10:19:02 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 25 10:19:04 pangolin node[578]: 2026-01-25T09:19:04+01:00 [error]: Uncaught Exception:
Jan 25 10:19:04 pangolin node[578]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json'
Jan 25 10:19:04 pangolin node[578]: at readFileSync (node:fs:440:20)
Jan 25 10:19:04 pangolin node[578]: at (/opt/pangolin/server/db/names.ts:31:5)
Jan 25 10:19:04 pangolin node[578]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25)
Jan 25 10:19:04 pangolin node[578]: at async onImport.tracePromise.proto (node:internal/modules/esm/loader:665:26)
Jan 25 10:19:04 pangolin node[578]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}}
Jan 25 10:19:04 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE
Jan 25 10:19:04 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'.
Jan 25 10:19:04 pangolin systemd[1]: pangolin.service: Consumed 3.132s CPU time, 212.7M memory peak.
Jan 25 10:19:15 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 31.
Jan 25 10:19:15 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 25 10:19:17 pangolin node[586]: 2026-01-25T09:19:17+01:00 [error]: Uncaught Exception:
Jan 25 10:19:17 pangolin node[586]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json'
Jan 25 10:19:17 pangolin node[586]: at readFileSync (node:fs:440:20)
Jan 25 10:19:17 pangolin node[586]: at (/opt/pangolin/server/db/names.ts:31:5)
Jan 25 10:19:17 pangolin node[586]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25)
Jan 25 10:19:17 pangolin node[586]: at async onImport.tracePromise.proto (node:internal/modules/esm/loader:665:26)
Jan 25 10:19:17 pangolin node[586]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}}
Jan 25 10:19:18 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE
Jan 25 10:19:18 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'.
Jan 25 10:19:18 pangolin systemd[1]: pangolin.service: Consumed 3.153s CPU time, 215.9M memory peak.
Jan 25 10:19:28 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 32.
Jan 25 10:19:28 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 25 10:19:30 pangolin node[596]: 2026-01-25T09:19:30+01:00 [error]: Uncaught Exception:
Jan 25 10:19:30 pangolin node[596]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json'
Jan 25 10:19:30 pangolin node[596]: at readFileSync (node:fs:440:20)
Jan 25 10:19:30 pangolin node[596]: at (/opt/pangolin/server/db/names.ts:31:5)
Jan 25 10:19:30 pangolin node[596]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25)
Jan 25 10:19:30 pangolin node[596]: at async onImport.tracePromise.proto (node:internal/modules/esm/loader:665:26)
Jan 25 10:19:30 pangolin node[596]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}}
Jan 25 10:19:31 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE
Jan 25 10:19:31 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'.
Jan 25 10:19:31 pangolin systemd[1]: pangolin.service: Consumed 3.190s CPU time, 218.4M memory peak.
Jan 25 10:19:41 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 33.
Jan 25 10:19:41 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 25 10:19:44 pangolin node[604]: 2026-01-25T09:19:44+01:00 [error]: Uncaught Exception:
Jan 25 10:19:44 pangolin node[604]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json'
Jan 25 10:19:44 pangolin node[604]: at readFileSync (node:fs:440:20)
Jan 25 10:19:44 pangolin node[604]: at (/opt/pangolin/server/db/names.ts:31:5)
Jan 25 10:19:44 pangolin node[604]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25)
Jan 25 10:19:44 pangolin node[604]: at async onImport.tracePromise.proto (node:internal/modules/esm/loader:665:26)
Jan 25 10:19:44 pangolin node[604]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}}
Jan 25 10:19:44 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE
Jan 25 10:19:44 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'.
Jan 25 10:19:44 pangolin systemd[1]: pangolin.service: Consumed 3.246s CPU time, 215M memory peak.
Jan 25 10:19:54 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 34.
Jan 25 10:19:54 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 25 10:19:57 pangolin node[612]: 2026-01-25T09:19:57+01:00 [error]: Uncaught Exception:
Jan 25 10:19:57 pangolin node[612]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json'
Jan 25 10:19:57 pangolin node[612]: at readFileSync (node:fs:440:20)
Jan 25 10:19:57 pangolin node[612]: at (/opt/pangolin/server/db/names.ts:31:5)
Jan 25 10:19:57 pangolin node[612]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25)
Jan 25 10:19:57 pangolin node[612]: at async onImport.tracePromise.proto (node:internal/modules/esm/loader:665:26)
Jan 25 10:19:57 pangolin node[612]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}}
Jan 25 10:19:57 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE
Jan 25 10:19:57 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'.
Jan 25 10:19:57 pangolin systemd[1]: pangolin.service: Consumed 3.152s CPU time, 213.6M memory peak.
Jan 25 10:20:07 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 35.
Jan 25 10:20:07 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 25 10:20:09 pangolin node[620]: 2026-01-25T09:20:09+01:00 [error]: Uncaught Exception:
Jan 25 10:20:09 pangolin node[620]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json'
Jan 25 10:20:09 pangolin node[620]: at readFileSync (node:fs:440:20)
Jan 25 10:20:09 pangolin node[620]: at (/opt/pangolin/server/db/names.ts:31:5)
Jan 25 10:20:09 pangolin node[620]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25)
Jan 25 10:20:09 pangolin node[620]: at async onImport.tracePromise.proto (node:internal/modules/esm/loader:665:26)
Jan 25 10:20:09 pangolin node[620]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}}
Jan 25 10:20:09 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE
Jan 25 10:20:09 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'.
Jan 25 10:20:09 pangolin systemd[1]: pangolin.service: Consumed 3.165s CPU time, 215.7M memory peak.
Jan 25 10:20:20 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 36.
Jan 25 10:20:20 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 25 10:20:22 pangolin node[636]: 2026-01-25T09:20:22+01:00 [error]: Uncaught Exception:
Jan 25 10:20:22 pangolin node[636]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json'
Jan 25 10:20:22 pangolin node[636]: at readFileSync (node:fs:440:20)
Jan 25 10:20:22 pangolin node[636]: at (/opt/pangolin/server/db/names.ts:31:5)
Jan 25 10:20:22 pangolin node[636]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25)
Jan 25 10:20:22 pangolin node[636]: at async onImport.tracePromise.proto (node:internal/modules/esm/loader:665:26)
Jan 25 10:20:22 pangolin node[636]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}}
Jan 25 10:20:22 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE
Jan 25 10:20:22 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'.
Jan 25 10:20:22 pangolin systemd[1]: pangolin.service: Consumed 3.139s CPU time, 215.2M memory peak.

@darlezior commented on GitHub (Jan 25, 2026): ### **root@pangolin:~# journalctl -u pangolin -n 100 --no-pager** Jan 25 10:18:38 pangolin node[554]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}} Jan 25 10:18:38 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE Jan 25 10:18:38 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'. Jan 25 10:18:38 pangolin systemd[1]: pangolin.service: Consumed 3.141s CPU time, 216.5M memory peak. Jan 25 10:18:49 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 29. Jan 25 10:18:49 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 25 10:18:51 pangolin node[570]: 2026-01-25T09:18:51+01:00 [error]: Uncaught Exception: Jan 25 10:18:51 pangolin node[570]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json' Jan 25 10:18:51 pangolin node[570]: at readFileSync (node:fs:440:20) Jan 25 10:18:51 pangolin node[570]: at <anonymous> (/opt/pangolin/server/db/names.ts:31:5) Jan 25 10:18:51 pangolin node[570]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25) Jan 25 10:18:51 pangolin node[570]: at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:665:26) Jan 25 10:18:51 pangolin node[570]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}} Jan 25 10:18:52 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE Jan 25 10:18:52 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'. Jan 25 10:18:52 pangolin systemd[1]: pangolin.service: Consumed 3.127s CPU time, 212.7M memory peak. Jan 25 10:19:02 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 30. Jan 25 10:19:02 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 25 10:19:04 pangolin node[578]: 2026-01-25T09:19:04+01:00 [error]: Uncaught Exception: Jan 25 10:19:04 pangolin node[578]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json' Jan 25 10:19:04 pangolin node[578]: at readFileSync (node:fs:440:20) Jan 25 10:19:04 pangolin node[578]: at <anonymous> (/opt/pangolin/server/db/names.ts:31:5) Jan 25 10:19:04 pangolin node[578]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25) Jan 25 10:19:04 pangolin node[578]: at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:665:26) Jan 25 10:19:04 pangolin node[578]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}} Jan 25 10:19:04 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE Jan 25 10:19:04 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'. Jan 25 10:19:04 pangolin systemd[1]: pangolin.service: Consumed 3.132s CPU time, 212.7M memory peak. Jan 25 10:19:15 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 31. Jan 25 10:19:15 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 25 10:19:17 pangolin node[586]: 2026-01-25T09:19:17+01:00 [error]: Uncaught Exception: Jan 25 10:19:17 pangolin node[586]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json' Jan 25 10:19:17 pangolin node[586]: at readFileSync (node:fs:440:20) Jan 25 10:19:17 pangolin node[586]: at <anonymous> (/opt/pangolin/server/db/names.ts:31:5) Jan 25 10:19:17 pangolin node[586]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25) Jan 25 10:19:17 pangolin node[586]: at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:665:26) Jan 25 10:19:17 pangolin node[586]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}} Jan 25 10:19:18 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE Jan 25 10:19:18 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'. Jan 25 10:19:18 pangolin systemd[1]: pangolin.service: Consumed 3.153s CPU time, 215.9M memory peak. Jan 25 10:19:28 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 32. Jan 25 10:19:28 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 25 10:19:30 pangolin node[596]: 2026-01-25T09:19:30+01:00 [error]: Uncaught Exception: Jan 25 10:19:30 pangolin node[596]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json' Jan 25 10:19:30 pangolin node[596]: at readFileSync (node:fs:440:20) Jan 25 10:19:30 pangolin node[596]: at <anonymous> (/opt/pangolin/server/db/names.ts:31:5) Jan 25 10:19:30 pangolin node[596]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25) Jan 25 10:19:30 pangolin node[596]: at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:665:26) Jan 25 10:19:30 pangolin node[596]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}} Jan 25 10:19:31 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE Jan 25 10:19:31 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'. Jan 25 10:19:31 pangolin systemd[1]: pangolin.service: Consumed 3.190s CPU time, 218.4M memory peak. Jan 25 10:19:41 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 33. Jan 25 10:19:41 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 25 10:19:44 pangolin node[604]: 2026-01-25T09:19:44+01:00 [error]: Uncaught Exception: Jan 25 10:19:44 pangolin node[604]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json' Jan 25 10:19:44 pangolin node[604]: at readFileSync (node:fs:440:20) Jan 25 10:19:44 pangolin node[604]: at <anonymous> (/opt/pangolin/server/db/names.ts:31:5) Jan 25 10:19:44 pangolin node[604]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25) Jan 25 10:19:44 pangolin node[604]: at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:665:26) Jan 25 10:19:44 pangolin node[604]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}} Jan 25 10:19:44 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE Jan 25 10:19:44 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'. Jan 25 10:19:44 pangolin systemd[1]: pangolin.service: Consumed 3.246s CPU time, 215M memory peak. Jan 25 10:19:54 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 34. Jan 25 10:19:54 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 25 10:19:57 pangolin node[612]: 2026-01-25T09:19:57+01:00 [error]: Uncaught Exception: Jan 25 10:19:57 pangolin node[612]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json' Jan 25 10:19:57 pangolin node[612]: at readFileSync (node:fs:440:20) Jan 25 10:19:57 pangolin node[612]: at <anonymous> (/opt/pangolin/server/db/names.ts:31:5) Jan 25 10:19:57 pangolin node[612]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25) Jan 25 10:19:57 pangolin node[612]: at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:665:26) Jan 25 10:19:57 pangolin node[612]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}} Jan 25 10:19:57 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE Jan 25 10:19:57 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'. Jan 25 10:19:57 pangolin systemd[1]: pangolin.service: Consumed 3.152s CPU time, 213.6M memory peak. Jan 25 10:20:07 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 35. Jan 25 10:20:07 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 25 10:20:09 pangolin node[620]: 2026-01-25T09:20:09+01:00 [error]: Uncaught Exception: Jan 25 10:20:09 pangolin node[620]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json' Jan 25 10:20:09 pangolin node[620]: at readFileSync (node:fs:440:20) Jan 25 10:20:09 pangolin node[620]: at <anonymous> (/opt/pangolin/server/db/names.ts:31:5) Jan 25 10:20:09 pangolin node[620]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25) Jan 25 10:20:09 pangolin node[620]: at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:665:26) Jan 25 10:20:09 pangolin node[620]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}} Jan 25 10:20:09 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE Jan 25 10:20:09 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'. Jan 25 10:20:09 pangolin systemd[1]: pangolin.service: Consumed 3.165s CPU time, 215.7M memory peak. Jan 25 10:20:20 pangolin systemd[1]: pangolin.service: Scheduled restart job, restart counter is at 36. Jan 25 10:20:20 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 25 10:20:22 pangolin node[636]: 2026-01-25T09:20:22+01:00 [error]: Uncaught Exception: Jan 25 10:20:22 pangolin node[636]: Stack: Error: ENOENT: no such file or directory, open '/opt/pangolin/dist/ios_models.json' Jan 25 10:20:22 pangolin node[636]: at readFileSync (node:fs:440:20) Jan 25 10:20:22 pangolin node[636]: at <anonymous> (/opt/pangolin/server/db/names.ts:31:5) Jan 25 10:20:22 pangolin node[636]: at ModuleJob.run (node:internal/modules/esm/module_job:343:25) Jan 25 10:20:22 pangolin node[636]: at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:665:26) Jan 25 10:20:22 pangolin node[636]: at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {"error":{"errno":-2,"code":"ENOENT","syscall":"open","path":"/opt/pangolin/dist/ios_models.json"}} Jan 25 10:20:22 pangolin systemd[1]: pangolin.service: Main process exited, code=exited, status=1/FAILURE Jan 25 10:20:22 pangolin systemd[1]: pangolin.service: Failed with result 'exit-code'. Jan 25 10:20:22 pangolin systemd[1]: pangolin.service: Consumed 3.139s CPU time, 215.2M memory peak.
Author
Owner

@MickLesk commented on GitHub (Jan 25, 2026):

@tremor021

@MickLesk commented on GitHub (Jan 25, 2026): @tremor021
Author
Owner

@tremor021 commented on GitHub (Jan 25, 2026):

Dockerfile has changes, gonna look at it tonight. I'm away from PC whole day, if you wanna see whats changed @MickLesk or @CrazyWolf13

@tremor021 commented on GitHub (Jan 25, 2026): Dockerfile has changes, gonna look at it tonight. I'm away from PC whole day, if you wanna see whats changed @MickLesk or @CrazyWolf13
Author
Owner

@vhsdream commented on GitHub (Jan 25, 2026):

@darlezior if you don't wanna wait, you can pull down the pangolin.sh file and edit it yourself:

curl -fsSLO https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/pangolin.sh

Line 55

    cp server/db/names.json ./dist/names.json
    cp server/db/ios_models.json ./dist/ios_models.json
    cp server/db/mac_models.json ./dist/mac_models.json

Then run with bash pangolin.sh

@vhsdream commented on GitHub (Jan 25, 2026): @darlezior if you don't wanna wait, you can pull down the `pangolin.sh` file and edit it yourself: `curl -fsSLO https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/pangolin.sh` [Line 55](https://github.com/community-scripts/ProxmoxVE/blob/2a234829b8c0f0e3811a0161a7e369f75cc29724/ct/pangolin.sh#L55) ``` cp server/db/names.json ./dist/names.json cp server/db/ios_models.json ./dist/ios_models.json cp server/db/mac_models.json ./dist/mac_models.json ``` Then run with `bash pangolin.sh`
Author
Owner

@darlezior commented on GitHub (Jan 26, 2026):

Hello, I tried the new update script but I still get Bad Gateway on Pangolin ui

root@pangolin:~# journalctl -u pangolin -n 100 --no-pager
Jan 23 18:21:38 pangolin node[6733]: }
Jan 23 20:14:04 pangolin node[6733]: Error [AxiosError]: Request failed with status code 401
Jan 23 20:14:04 pangolin node[6733]:     at aE (.next/server/chunks/1094.js:12:113595)
Jan 23 20:14:04 pangolin node[6733]:     at IncomingMessage.<anonymous> (.next/server/chunks/1094.js:14:11740)
Jan 23 20:14:04 pangolin node[6733]:     at bL.request (.next/server/chunks/1094.js:14:24253)
Jan 23 20:14:04 pangolin node[6733]:     at async o (.next/server/app/[orgId]/settings/access/users/page.js:2:12809) {
Jan 23 20:14:04 pangolin node[6733]:   code: 'ERR_BAD_REQUEST',
Jan 23 20:14:04 pangolin node[6733]:   config: [Object],
Jan 23 20:14:04 pangolin node[6733]:   request: [ClientRequest],
Jan 23 20:14:04 pangolin node[6733]:   response: [Object],
Jan 23 20:14:04 pangolin node[6733]:   status: 401,
Jan 23 20:14:04 pangolin node[6733]:   constructor: [Function],
Jan 23 20:14:04 pangolin node[6733]:   toJSON: [Function: toJSON]
Jan 23 20:14:04 pangolin node[6733]: }
Jan 23 20:14:15 pangolin node[6733]: Making login request to: http://localhost:3000/api/v1/auth/login
Jan 23 20:14:17 pangolin node[6733]: Making login request to: http://localhost:3000/api/v1/auth/login
Jan 23 20:16:09 pangolin node[6733]: 2026-01-23T19:16:09+01:00 [warn]: Email client not configured, skipping email send
Jan 23 22:07:26 pangolin node[6733]: Making login request to: http://localhost:3000/api/v1/auth/login?forceLogin=true
Jan 23 22:07:30 pangolin node[6733]: Making login request to: http://localhost:3000/api/v1/auth/login?forceLogin=true
Jan 23 22:07:58 pangolin node[6733]: Making login request to: http://localhost:3000/api/v1/auth/login?forceLogin=true
Jan 23 22:08:38 pangolin node[6733]: 2026-01-23T21:08:38+01:00 [warn]: Olm not found for client 1, skipping peer updates
Jan 23 22:09:46 pangolin node[6733]: 2026-01-23T21:09:46+01:00 [info]: Establishing websocket connection
Jan 23 22:09:46 pangolin node[6733]: 2026-01-23T21:09:46+01:00 [info]: Client added to tracking - OLM ID: o3icb9d3xg56kid, Connection ID: 0a33ef1b-5396-427d-bd3e-2330b0503a90, Total connections: 1
Jan 23 22:09:46 pangolin node[6733]: 2026-01-23T21:09:46+01:00 [info]: WebSocket connection established - OLM ID: o3icb9d3xg56kid
Jan 23 22:09:46 pangolin node[6733]: 2026-01-23T21:09:46+01:00 [info]: Handling register olm message!
Jan 23 22:09:46 pangolin node[6733]: 2026-01-23T21:09:46+01:00 [info]: Public key mismatch. Updating public key and clearing session info...
Jan 23 22:10:23 pangolin node[6733]: 2026-01-23T21:10:23+01:00 [info]: All connections removed for OLM ID: o3icb9d3xg56kid
Jan 23 22:10:23 pangolin node[6733]: 2026-01-23T21:10:23+01:00 [info]: Client disconnected - OLM ID: o3icb9d3xg56kid
Jan 23 22:12:36 pangolin node[6733]: 2026-01-23T21:12:36+01:00 [info]: Kicking offline olm client 1 due to inactivity
-- Boot 35fe15367ab0491a96556a3b4ca02495 --
Jan 24 23:48:25 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 24 23:48:29 pangolin node[91]: 2026-01-24T22:48:29+01:00 [warn]: Email SMTP configuration is missing. Emails will not be sent.
Jan 24 23:48:30 pangolin node[91]: 2026-01-24T22:48:30+01:00 [info]: Pangolin gathers anonymous usage data to help us better understand how the software is used and guide future improvements and feature development. You can find more details, including instructions for opting out of this anonymous data collection, at: https://docs.pangolin.net/telemetry
Jan 24 23:48:30 pangolin node[91]: 2026-01-24T22:48:30+01:00 [info]: API server is running on http://localhost:3000
Jan 24 23:48:30 pangolin node[91]: 2026-01-24T22:48:30+01:00 [info]: Internal server is running on http://localhost:3001
Jan 24 23:48:31 pangolin node[91]: 2026-01-24T22:48:31+01:00 [info]: Updated exit node with reachableAt to http://192.168.1.111:3004
Jan 24 23:48:31 pangolin node[91]:  ⚠ "next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.
Jan 24 23:48:33 pangolin node[91]: 2026-01-24T22:48:33+01:00 [info]: Next.js server is running on http://localhost:3002
Jan 25 00:27:02 pangolin node[91]: [Error: Failed to find Server Action "x". This request might be from an older or newer deployment.
Jan 25 00:27:02 pangolin node[91]: Read more: https://nextjs.org/docs/messages/failed-to-find-server-action]
-- Boot c417583159474f0588ed137667d01484 --
Jan 25 10:37:05 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 25 10:37:09 pangolin node[92]: 2026-01-25T09:37:09+01:00 [warn]: Email SMTP configuration is missing. Emails will not be sent.
Jan 25 10:37:09 pangolin node[92]: 2026-01-25T09:37:09+01:00 [info]: Pangolin gathers anonymous usage data to help us better understand how the software is used and guide future improvements and feature development. You can find more details, including instructions for opting out of this anonymous data collection, at: https://docs.pangolin.net/telemetry
Jan 25 10:37:10 pangolin node[92]: 2026-01-25T09:37:10+01:00 [info]: API server is running on http://localhost:3000
Jan 25 10:37:10 pangolin node[92]: 2026-01-25T09:37:10+01:00 [info]: Internal server is running on http://localhost:3001
Jan 25 10:37:10 pangolin node[92]: 2026-01-25T09:37:10+01:00 [info]: Updated exit node with reachableAt to http://192.168.1.111:3004
Jan 25 10:37:11 pangolin node[92]:  ⚠ "next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.
Jan 25 10:37:12 pangolin node[92]: 2026-01-25T09:37:12+01:00 [info]: Next.js server is running on http://localhost:3002
-- Boot 18284f90718741d79e12818b53d8b5c6 --
Jan 26 13:25:51 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 26 13:25:56 pangolin node[91]: 2026-01-26T12:25:56+01:00 [warn]: Email SMTP configuration is missing. Emails will not be sent.
Jan 26 13:25:56 pangolin node[91]: 2026-01-26T12:25:56+01:00 [info]: Pangolin gathers anonymous usage data to help us better understand how the software is used and guide future improvements and feature development. You can find more details, including instructions for opting out of this anonymous data collection, at: https://docs.pangolin.net/telemetry
Jan 26 13:25:56 pangolin node[91]: 2026-01-26T12:25:56+01:00 [info]: API server is running on http://localhost:3000
Jan 26 13:25:56 pangolin node[91]: 2026-01-26T12:25:56+01:00 [info]: Internal server is running on http://localhost:3001
Jan 26 13:25:57 pangolin node[91]: 2026-01-26T12:25:57+01:00 [info]: Updated exit node with reachableAt to http://192.168.1.111:3004
Jan 26 13:25:57 pangolin node[91]:  ⚠ "next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.
Jan 26 13:25:59 pangolin node[91]: 2026-01-26T12:25:59+01:00 [info]: Next.js server is running on http://localhost:3002
Jan 26 14:31:39 pangolin node[91]: 2026-01-26T13:31:39+01:00 [info]: WebSocket cleanup completed
Jan 26 14:31:39 pangolin systemd[1]: Stopping pangolin.service - Pangolin Service...
Jan 26 14:31:40 pangolin systemd[1]: pangolin.service: Deactivated successfully.
Jan 26 14:31:40 pangolin systemd[1]: Stopped pangolin.service - Pangolin Service.
Jan 26 14:31:40 pangolin systemd[1]: pangolin.service: Consumed 3min 6.137s CPU time, 532.5M memory peak.
Jan 26 14:44:01 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 26 14:44:04 pangolin node[886]: 2026-01-26T13:44:04+01:00 [warn]: Email SMTP configuration is missing. Emails will not be sent.
Jan 26 14:44:04 pangolin node[886]: SqliteError: no such column: "requireDeviceApproval" - should this be a string literal in single-quotes?
Jan 26 14:44:04 pangolin node[886]:     at Database.prepare (/opt/pangolin/node_modules/better-sqlite3/lib/methods/wrappers.js:5:21)
Jan 26 14:44:04 pangolin node[886]:     at BetterSQLiteSession.prepareQuery (/opt/pangolin/node_modules/src/better-sqlite3/session.ts:60:28)
Jan 26 14:44:04 pangolin node[886]:     at BetterSQLiteSession.prepareOneTimeQuery (/opt/pangolin/node_modules/src/sqlite-core/session.ts:250:15)
Jan 26 14:44:04 pangolin node[886]:     at SQLiteSelectBase._prepare (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:916:85)
Jan 26 14:44:04 pangolin node[886]:     at SQLiteSelectBase.all (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:950:15)
Jan 26 14:44:04 pangolin node[886]:     at SQLiteSelectBase.execute (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:962:15)
Jan 26 14:44:04 pangolin node[886]:     at Function.<anonymous> (/opt/pangolin/server/setup/ensureActions.ts:26:14)
Jan 26 14:44:04 pangolin node[886]:     at async ensureActions (/opt/pangolin/server/setup/ensureActions.ts:8:5)
Jan 26 14:44:04 pangolin node[886]:     at async runSetupFunctions (/opt/pangolin/server/setup/index.ts:8:5)
Jan 26 14:44:04 pangolin node[886]:     at async startServers (/opt/pangolin/server/index.ts:35:5) {
Jan 26 14:44:04 pangolin node[886]:   code: 'SQLITE_ERROR'
Jan 26 14:44:04 pangolin node[886]: }
Jan 26 14:44:34 pangolin node[886]: 2026-01-26T13:44:34+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}}
Jan 26 14:45:04 pangolin node[886]: 2026-01-26T13:45:04+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}}
Jan 26 14:45:34 pangolin node[886]: 2026-01-26T13:45:34+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}}
Jan 26 14:46:04 pangolin node[886]: 2026-01-26T13:46:04+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}}
Jan 26 14:46:34 pangolin node[886]: 2026-01-26T13:46:34+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}}
Jan 26 14:46:36 pangolin systemd[1]: Stopping pangolin.service - Pangolin Service...
Jan 26 14:46:36 pangolin systemd[1]: pangolin.service: Deactivated successfully.
Jan 26 14:46:36 pangolin systemd[1]: Stopped pangolin.service - Pangolin Service.
Jan 26 14:46:36 pangolin systemd[1]: pangolin.service: Consumed 10.985s CPU time, 291.6M memory peak.
-- Boot 632bbb27b34a49b2a975f3d16d146d66 --
Jan 26 14:47:41 pangolin systemd[1]: Started pangolin.service - Pangolin Service.
Jan 26 14:47:46 pangolin node[91]: 2026-01-26T13:47:46+01:00 [warn]: Email SMTP configuration is missing. Emails will not be sent.
Jan 26 14:47:46 pangolin node[91]: SqliteError: no such column: "requireDeviceApproval" - should this be a string literal in single-quotes?
Jan 26 14:47:46 pangolin node[91]:     at Database.prepare (/opt/pangolin/node_modules/better-sqlite3/lib/methods/wrappers.js:5:21)
Jan 26 14:47:46 pangolin node[91]:     at BetterSQLiteSession.prepareQuery (/opt/pangolin/node_modules/src/better-sqlite3/session.ts:60:28)
Jan 26 14:47:46 pangolin node[91]:     at BetterSQLiteSession.prepareOneTimeQuery (/opt/pangolin/node_modules/src/sqlite-core/session.ts:250:15)
Jan 26 14:47:46 pangolin node[91]:     at SQLiteSelectBase._prepare (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:916:85)
Jan 26 14:47:46 pangolin node[91]:     at SQLiteSelectBase.all (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:950:15)
Jan 26 14:47:46 pangolin node[91]:     at SQLiteSelectBase.execute (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:962:15)
Jan 26 14:47:46 pangolin node[91]:     at Function.<anonymous> (/opt/pangolin/server/setup/ensureActions.ts:26:14)
Jan 26 14:47:46 pangolin node[91]:     at async ensureActions (/opt/pangolin/server/setup/ensureActions.ts:8:5)
Jan 26 14:47:46 pangolin node[91]:     at async runSetupFunctions (/opt/pangolin/server/setup/index.ts:8:5)
Jan 26 14:47:46 pangolin node[91]:     at async startServers (/opt/pangolin/server/index.ts:35:5) {
Jan 26 14:47:46 pangolin node[91]:   code: 'SQLITE_ERROR'
Jan 26 14:47:46 pangolin node[91]: }
Jan 26 14:48:16 pangolin node[91]: 2026-01-26T13:48:16+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}}
@darlezior commented on GitHub (Jan 26, 2026): Hello, I tried the new update script but I still get Bad Gateway on Pangolin ui ``` root@pangolin:~# journalctl -u pangolin -n 100 --no-pager Jan 23 18:21:38 pangolin node[6733]: } Jan 23 20:14:04 pangolin node[6733]: Error [AxiosError]: Request failed with status code 401 Jan 23 20:14:04 pangolin node[6733]: at aE (.next/server/chunks/1094.js:12:113595) Jan 23 20:14:04 pangolin node[6733]: at IncomingMessage.<anonymous> (.next/server/chunks/1094.js:14:11740) Jan 23 20:14:04 pangolin node[6733]: at bL.request (.next/server/chunks/1094.js:14:24253) Jan 23 20:14:04 pangolin node[6733]: at async o (.next/server/app/[orgId]/settings/access/users/page.js:2:12809) { Jan 23 20:14:04 pangolin node[6733]: code: 'ERR_BAD_REQUEST', Jan 23 20:14:04 pangolin node[6733]: config: [Object], Jan 23 20:14:04 pangolin node[6733]: request: [ClientRequest], Jan 23 20:14:04 pangolin node[6733]: response: [Object], Jan 23 20:14:04 pangolin node[6733]: status: 401, Jan 23 20:14:04 pangolin node[6733]: constructor: [Function], Jan 23 20:14:04 pangolin node[6733]: toJSON: [Function: toJSON] Jan 23 20:14:04 pangolin node[6733]: } Jan 23 20:14:15 pangolin node[6733]: Making login request to: http://localhost:3000/api/v1/auth/login Jan 23 20:14:17 pangolin node[6733]: Making login request to: http://localhost:3000/api/v1/auth/login Jan 23 20:16:09 pangolin node[6733]: 2026-01-23T19:16:09+01:00 [warn]: Email client not configured, skipping email send Jan 23 22:07:26 pangolin node[6733]: Making login request to: http://localhost:3000/api/v1/auth/login?forceLogin=true Jan 23 22:07:30 pangolin node[6733]: Making login request to: http://localhost:3000/api/v1/auth/login?forceLogin=true Jan 23 22:07:58 pangolin node[6733]: Making login request to: http://localhost:3000/api/v1/auth/login?forceLogin=true Jan 23 22:08:38 pangolin node[6733]: 2026-01-23T21:08:38+01:00 [warn]: Olm not found for client 1, skipping peer updates Jan 23 22:09:46 pangolin node[6733]: 2026-01-23T21:09:46+01:00 [info]: Establishing websocket connection Jan 23 22:09:46 pangolin node[6733]: 2026-01-23T21:09:46+01:00 [info]: Client added to tracking - OLM ID: o3icb9d3xg56kid, Connection ID: 0a33ef1b-5396-427d-bd3e-2330b0503a90, Total connections: 1 Jan 23 22:09:46 pangolin node[6733]: 2026-01-23T21:09:46+01:00 [info]: WebSocket connection established - OLM ID: o3icb9d3xg56kid Jan 23 22:09:46 pangolin node[6733]: 2026-01-23T21:09:46+01:00 [info]: Handling register olm message! Jan 23 22:09:46 pangolin node[6733]: 2026-01-23T21:09:46+01:00 [info]: Public key mismatch. Updating public key and clearing session info... Jan 23 22:10:23 pangolin node[6733]: 2026-01-23T21:10:23+01:00 [info]: All connections removed for OLM ID: o3icb9d3xg56kid Jan 23 22:10:23 pangolin node[6733]: 2026-01-23T21:10:23+01:00 [info]: Client disconnected - OLM ID: o3icb9d3xg56kid Jan 23 22:12:36 pangolin node[6733]: 2026-01-23T21:12:36+01:00 [info]: Kicking offline olm client 1 due to inactivity -- Boot 35fe15367ab0491a96556a3b4ca02495 -- Jan 24 23:48:25 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 24 23:48:29 pangolin node[91]: 2026-01-24T22:48:29+01:00 [warn]: Email SMTP configuration is missing. Emails will not be sent. Jan 24 23:48:30 pangolin node[91]: 2026-01-24T22:48:30+01:00 [info]: Pangolin gathers anonymous usage data to help us better understand how the software is used and guide future improvements and feature development. You can find more details, including instructions for opting out of this anonymous data collection, at: https://docs.pangolin.net/telemetry Jan 24 23:48:30 pangolin node[91]: 2026-01-24T22:48:30+01:00 [info]: API server is running on http://localhost:3000 Jan 24 23:48:30 pangolin node[91]: 2026-01-24T22:48:30+01:00 [info]: Internal server is running on http://localhost:3001 Jan 24 23:48:31 pangolin node[91]: 2026-01-24T22:48:31+01:00 [info]: Updated exit node with reachableAt to http://192.168.1.111:3004 Jan 24 23:48:31 pangolin node[91]: ⚠ "next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead. Jan 24 23:48:33 pangolin node[91]: 2026-01-24T22:48:33+01:00 [info]: Next.js server is running on http://localhost:3002 Jan 25 00:27:02 pangolin node[91]: [Error: Failed to find Server Action "x". This request might be from an older or newer deployment. Jan 25 00:27:02 pangolin node[91]: Read more: https://nextjs.org/docs/messages/failed-to-find-server-action] -- Boot c417583159474f0588ed137667d01484 -- Jan 25 10:37:05 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 25 10:37:09 pangolin node[92]: 2026-01-25T09:37:09+01:00 [warn]: Email SMTP configuration is missing. Emails will not be sent. Jan 25 10:37:09 pangolin node[92]: 2026-01-25T09:37:09+01:00 [info]: Pangolin gathers anonymous usage data to help us better understand how the software is used and guide future improvements and feature development. You can find more details, including instructions for opting out of this anonymous data collection, at: https://docs.pangolin.net/telemetry Jan 25 10:37:10 pangolin node[92]: 2026-01-25T09:37:10+01:00 [info]: API server is running on http://localhost:3000 Jan 25 10:37:10 pangolin node[92]: 2026-01-25T09:37:10+01:00 [info]: Internal server is running on http://localhost:3001 Jan 25 10:37:10 pangolin node[92]: 2026-01-25T09:37:10+01:00 [info]: Updated exit node with reachableAt to http://192.168.1.111:3004 Jan 25 10:37:11 pangolin node[92]: ⚠ "next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead. Jan 25 10:37:12 pangolin node[92]: 2026-01-25T09:37:12+01:00 [info]: Next.js server is running on http://localhost:3002 -- Boot 18284f90718741d79e12818b53d8b5c6 -- Jan 26 13:25:51 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 26 13:25:56 pangolin node[91]: 2026-01-26T12:25:56+01:00 [warn]: Email SMTP configuration is missing. Emails will not be sent. Jan 26 13:25:56 pangolin node[91]: 2026-01-26T12:25:56+01:00 [info]: Pangolin gathers anonymous usage data to help us better understand how the software is used and guide future improvements and feature development. You can find more details, including instructions for opting out of this anonymous data collection, at: https://docs.pangolin.net/telemetry Jan 26 13:25:56 pangolin node[91]: 2026-01-26T12:25:56+01:00 [info]: API server is running on http://localhost:3000 Jan 26 13:25:56 pangolin node[91]: 2026-01-26T12:25:56+01:00 [info]: Internal server is running on http://localhost:3001 Jan 26 13:25:57 pangolin node[91]: 2026-01-26T12:25:57+01:00 [info]: Updated exit node with reachableAt to http://192.168.1.111:3004 Jan 26 13:25:57 pangolin node[91]: ⚠ "next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead. Jan 26 13:25:59 pangolin node[91]: 2026-01-26T12:25:59+01:00 [info]: Next.js server is running on http://localhost:3002 Jan 26 14:31:39 pangolin node[91]: 2026-01-26T13:31:39+01:00 [info]: WebSocket cleanup completed Jan 26 14:31:39 pangolin systemd[1]: Stopping pangolin.service - Pangolin Service... Jan 26 14:31:40 pangolin systemd[1]: pangolin.service: Deactivated successfully. Jan 26 14:31:40 pangolin systemd[1]: Stopped pangolin.service - Pangolin Service. Jan 26 14:31:40 pangolin systemd[1]: pangolin.service: Consumed 3min 6.137s CPU time, 532.5M memory peak. Jan 26 14:44:01 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 26 14:44:04 pangolin node[886]: 2026-01-26T13:44:04+01:00 [warn]: Email SMTP configuration is missing. Emails will not be sent. Jan 26 14:44:04 pangolin node[886]: SqliteError: no such column: "requireDeviceApproval" - should this be a string literal in single-quotes? Jan 26 14:44:04 pangolin node[886]: at Database.prepare (/opt/pangolin/node_modules/better-sqlite3/lib/methods/wrappers.js:5:21) Jan 26 14:44:04 pangolin node[886]: at BetterSQLiteSession.prepareQuery (/opt/pangolin/node_modules/src/better-sqlite3/session.ts:60:28) Jan 26 14:44:04 pangolin node[886]: at BetterSQLiteSession.prepareOneTimeQuery (/opt/pangolin/node_modules/src/sqlite-core/session.ts:250:15) Jan 26 14:44:04 pangolin node[886]: at SQLiteSelectBase._prepare (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:916:85) Jan 26 14:44:04 pangolin node[886]: at SQLiteSelectBase.all (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:950:15) Jan 26 14:44:04 pangolin node[886]: at SQLiteSelectBase.execute (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:962:15) Jan 26 14:44:04 pangolin node[886]: at Function.<anonymous> (/opt/pangolin/server/setup/ensureActions.ts:26:14) Jan 26 14:44:04 pangolin node[886]: at async ensureActions (/opt/pangolin/server/setup/ensureActions.ts:8:5) Jan 26 14:44:04 pangolin node[886]: at async runSetupFunctions (/opt/pangolin/server/setup/index.ts:8:5) Jan 26 14:44:04 pangolin node[886]: at async startServers (/opt/pangolin/server/index.ts:35:5) { Jan 26 14:44:04 pangolin node[886]: code: 'SQLITE_ERROR' Jan 26 14:44:04 pangolin node[886]: } Jan 26 14:44:34 pangolin node[886]: 2026-01-26T13:44:34+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}} Jan 26 14:45:04 pangolin node[886]: 2026-01-26T13:45:04+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}} Jan 26 14:45:34 pangolin node[886]: 2026-01-26T13:45:34+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}} Jan 26 14:46:04 pangolin node[886]: 2026-01-26T13:46:04+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}} Jan 26 14:46:34 pangolin node[886]: 2026-01-26T13:46:34+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}} Jan 26 14:46:36 pangolin systemd[1]: Stopping pangolin.service - Pangolin Service... Jan 26 14:46:36 pangolin systemd[1]: pangolin.service: Deactivated successfully. Jan 26 14:46:36 pangolin systemd[1]: Stopped pangolin.service - Pangolin Service. Jan 26 14:46:36 pangolin systemd[1]: pangolin.service: Consumed 10.985s CPU time, 291.6M memory peak. -- Boot 632bbb27b34a49b2a975f3d16d146d66 -- Jan 26 14:47:41 pangolin systemd[1]: Started pangolin.service - Pangolin Service. Jan 26 14:47:46 pangolin node[91]: 2026-01-26T13:47:46+01:00 [warn]: Email SMTP configuration is missing. Emails will not be sent. Jan 26 14:47:46 pangolin node[91]: SqliteError: no such column: "requireDeviceApproval" - should this be a string literal in single-quotes? Jan 26 14:47:46 pangolin node[91]: at Database.prepare (/opt/pangolin/node_modules/better-sqlite3/lib/methods/wrappers.js:5:21) Jan 26 14:47:46 pangolin node[91]: at BetterSQLiteSession.prepareQuery (/opt/pangolin/node_modules/src/better-sqlite3/session.ts:60:28) Jan 26 14:47:46 pangolin node[91]: at BetterSQLiteSession.prepareOneTimeQuery (/opt/pangolin/node_modules/src/sqlite-core/session.ts:250:15) Jan 26 14:47:46 pangolin node[91]: at SQLiteSelectBase._prepare (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:916:85) Jan 26 14:47:46 pangolin node[91]: at SQLiteSelectBase.all (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:950:15) Jan 26 14:47:46 pangolin node[91]: at SQLiteSelectBase.execute (/opt/pangolin/node_modules/src/sqlite-core/query-builders/select.ts:962:15) Jan 26 14:47:46 pangolin node[91]: at Function.<anonymous> (/opt/pangolin/server/setup/ensureActions.ts:26:14) Jan 26 14:47:46 pangolin node[91]: at async ensureActions (/opt/pangolin/server/setup/ensureActions.ts:8:5) Jan 26 14:47:46 pangolin node[91]: at async runSetupFunctions (/opt/pangolin/server/setup/index.ts:8:5) Jan 26 14:47:46 pangolin node[91]: at async startServers (/opt/pangolin/server/index.ts:35:5) { Jan 26 14:47:46 pangolin node[91]: code: 'SQLITE_ERROR' Jan 26 14:47:46 pangolin node[91]: } Jan 26 14:48:16 pangolin node[91]: 2026-01-26T13:48:16+01:00 [error]: Error in offline checker interval {"error":{"code":"SQLITE_ERROR"}} ```
Author
Owner

@v3rm1n0 commented on GitHub (Jan 26, 2026):

Hello, I tried the new update script but I still get Bad Gateway on Pangolin ui

@darlezior check /opt/pangolin/config/-directory for a config.yml
Updating deleted mine completly i have to recreate it from scratch now

You can manually restore the config

tar -xzf /opt/pangolin_config_backup.tar.gz -C /opt/pangolin --overwrite
rm -f /opt/pangolin_config_backup.tar.gz

This worked for me

@v3rm1n0 commented on GitHub (Jan 26, 2026): > Hello, I tried the new update script but I still get Bad Gateway on Pangolin ui @darlezior check `/opt/pangolin/config/`-directory for a config.yml ~~Updating deleted mine completly i have to recreate it from scratch now~~ You can manually restore the config ``` tar -xzf /opt/pangolin_config_backup.tar.gz -C /opt/pangolin --overwrite rm -f /opt/pangolin_config_backup.tar.gz ``` This worked for me
Author
Owner

@darlezior commented on GitHub (Jan 26, 2026):

Hello, I tried the new update script but I still get Bad Gateway on Pangolin ui

@darlezior check /opt/pangolin/config/-directory for a config.yml Updating deleted mine completly i have to recreate it from scratch now

You can manually restore the config

tar -xzf /opt/pangolin_config_backup.tar.gz -C /opt/pangolin --overwrite
rm -f /opt/pangolin_config_backup.tar.gz

This worked for me

After updating, my config.yml is still there; it hasn't disappeared. I think I'm missing a database migration for the update from 1.4.x to 1.5.x to work.

@darlezior commented on GitHub (Jan 26, 2026): > > Hello, I tried the new update script but I still get Bad Gateway on Pangolin ui > > [@darlezior](https://github.com/darlezior) check `/opt/pangolin/config/`-directory for a config.yml ~Updating deleted mine completly i have to recreate it from scratch now~ > > You can manually restore the config > > ``` > tar -xzf /opt/pangolin_config_backup.tar.gz -C /opt/pangolin --overwrite > rm -f /opt/pangolin_config_backup.tar.gz > ``` > > This worked for me After updating, my config.yml is still there; it hasn't disappeared. I think I'm missing a database migration for the update from 1.4.x to 1.5.x to work.
Author
Owner

@v3rm1n0 commented on GitHub (Jan 26, 2026):

https://github.com/fosrl/pangolin/issues/2327

A workaround is described there

@v3rm1n0 commented on GitHub (Jan 26, 2026): https://github.com/fosrl/pangolin/issues/2327 A workaround is described there
Author
Owner

@v3rm1n0 commented on GitHub (Jan 26, 2026):

@darlezior

fosrl/pangolin#2327

A workaround is described there

This worked for me

@v3rm1n0 commented on GitHub (Jan 26, 2026): @darlezior > [fosrl/pangolin#2327](https://github.com/fosrl/pangolin/issues/2327) > > A workaround is described there This worked for me
Author
Owner

@darlezior commented on GitHub (Jan 26, 2026):

This worked for me too, but there is something strange, the update was to 1.15.1, but it seems updated to 1.15.0

sqlite> SELECT * FROM versionMigrations; 1.14.0|1769442702000 1.15.0|1769443445299

Also in the webui i see 1.15.0

@darlezior commented on GitHub (Jan 26, 2026): This worked for me too, but there is something strange, the update was to 1.15.1, but it seems updated to 1.15.0 `sqlite> SELECT * FROM versionMigrations; 1.14.0|1769442702000 1.15.0|1769443445299` Also in the webui i see 1.15.0
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ProxmoxVE#2387