Compare commits

..

4008 Commits

Author SHA1 Message Date
Owen
49001f6dda Fix not detecting rc release in sign and package 2026-01-21 15:45:20 -08:00
miloschwartz
db0f7cfbae add autoupdates to macos 2026-01-21 14:43:48 -08:00
Owen Schwartz
1724885371 New translations en-us.json (Norwegian Bokmal) 2026-01-21 14:41:55 -08:00
Owen Schwartz
a97e9ea8b1 New translations en-us.json (Chinese Simplified) 2026-01-21 14:41:55 -08:00
Owen Schwartz
9d30e97526 New translations en-us.json (Turkish) 2026-01-21 14:41:55 -08:00
Owen Schwartz
b91330a27a New translations en-us.json (Russian) 2026-01-21 14:41:55 -08:00
Owen Schwartz
744bc9ebe9 New translations en-us.json (Portuguese) 2026-01-21 14:41:55 -08:00
Owen Schwartz
89ed9e6d7f New translations en-us.json (Polish) 2026-01-21 14:41:55 -08:00
Owen Schwartz
b007e7f54a New translations en-us.json (Dutch) 2026-01-21 14:41:55 -08:00
Owen Schwartz
6651a6df42 New translations en-us.json (Korean) 2026-01-21 14:41:55 -08:00
Owen Schwartz
3f29b165aa New translations en-us.json (Italian) 2026-01-21 14:41:55 -08:00
Owen Schwartz
b13b91face New translations en-us.json (German) 2026-01-21 14:41:55 -08:00
Owen Schwartz
63c14fe2d5 New translations en-us.json (Czech) 2026-01-21 14:41:55 -08:00
Owen Schwartz
14e74ed02d New translations en-us.json (Bulgarian) 2026-01-21 14:41:55 -08:00
Owen Schwartz
7e30750618 New translations en-us.json (Spanish) 2026-01-21 14:41:55 -08:00
Owen Schwartz
4d1dd16be5 New translations en-us.json (French) 2026-01-21 14:41:55 -08:00
Owen Schwartz
fa49cf5eba New translations en-us.json (Norwegian Bokmal) 2026-01-21 14:41:55 -08:00
Owen Schwartz
26b39fc1c6 New translations en-us.json (Chinese Simplified) 2026-01-21 14:41:55 -08:00
Owen Schwartz
0d36e368ea New translations en-us.json (Turkish) 2026-01-21 14:41:55 -08:00
Owen Schwartz
859f265c68 New translations en-us.json (Russian) 2026-01-21 14:41:55 -08:00
Owen Schwartz
3219f520ba New translations en-us.json (Portuguese) 2026-01-21 14:41:55 -08:00
Owen Schwartz
97e27b6caf New translations en-us.json (Polish) 2026-01-21 14:41:55 -08:00
Owen Schwartz
09da83a72b New translations en-us.json (Dutch) 2026-01-21 14:41:55 -08:00
Owen Schwartz
d13b210e2f New translations en-us.json (Korean) 2026-01-21 14:41:55 -08:00
Owen Schwartz
09fb672718 New translations en-us.json (Italian) 2026-01-21 14:41:55 -08:00
Owen Schwartz
9797ad0e17 New translations en-us.json (German) 2026-01-21 14:41:55 -08:00
Owen Schwartz
8b3d61ac36 New translations en-us.json (Czech) 2026-01-21 14:41:55 -08:00
Owen Schwartz
7161c9547a New translations en-us.json (Bulgarian) 2026-01-21 14:41:55 -08:00
Owen Schwartz
60d4362a87 New translations en-us.json (Spanish) 2026-01-21 14:41:55 -08:00
Owen Schwartz
1836e0c8fc New translations en-us.json (French) 2026-01-21 14:41:55 -08:00
Owen Schwartz
d3344aeb34 New translations en-us.json (Norwegian Bokmal) 2026-01-21 14:41:55 -08:00
Owen Schwartz
cfeb093fa6 New translations en-us.json (Chinese Simplified) 2026-01-21 14:41:55 -08:00
Owen Schwartz
a469b3ffcc New translations en-us.json (Turkish) 2026-01-21 14:41:55 -08:00
Owen Schwartz
14b3a3fdd8 New translations en-us.json (Russian) 2026-01-21 14:41:55 -08:00
Owen Schwartz
94367ce387 New translations en-us.json (Portuguese) 2026-01-21 14:41:55 -08:00
Owen Schwartz
5be518aa50 New translations en-us.json (Polish) 2026-01-21 14:41:55 -08:00
Owen Schwartz
d059a8da9e New translations en-us.json (Dutch) 2026-01-21 14:41:55 -08:00
Owen Schwartz
1dcacbef7a New translations en-us.json (Korean) 2026-01-21 14:41:55 -08:00
Owen Schwartz
a25edeccf7 New translations en-us.json (Italian) 2026-01-21 14:41:55 -08:00
Owen Schwartz
315f73c77d New translations en-us.json (German) 2026-01-21 14:41:55 -08:00
Owen Schwartz
666288fccc New translations en-us.json (Czech) 2026-01-21 14:41:55 -08:00
Owen Schwartz
0ccf61c2a9 New translations en-us.json (Bulgarian) 2026-01-21 14:41:55 -08:00
Owen Schwartz
c16b1b27a3 New translations en-us.json (Spanish) 2026-01-21 14:41:55 -08:00
Owen Schwartz
ed9ba60be6 New translations en-us.json (French) 2026-01-21 14:41:55 -08:00
Owen
24d047e3d8 Merge branch 'main' into dev 2026-01-21 14:39:15 -08:00
miloschwartz
9671079ffb show alias address in private resources table 2026-01-21 14:30:42 -08:00
Owen
688892523c Bump version 2026-01-21 14:24:29 -08:00
miloschwartz
b02c341f62 add delete client/device cli command 2026-01-21 12:47:04 -08:00
miloschwartz
3e9bcada1e dont show pending/deny approvals in oss 2026-01-21 12:33:33 -08:00
Milo Schwartz
93d4bd6438 Merge pull request #2280 from Fredkiss3/feat/show-newt-install-command
feat: show install commands in sites & clients details page
2026-01-21 12:27:03 -08:00
miloschwartz
5146498b33 remove extra logs 2026-01-21 12:11:29 -08:00
miloschwartz
72da4f39a8 show disk encryption for mac 2026-01-21 11:49:25 -08:00
miloschwartz
a2b2fb804b show device model for ios and android 2026-01-21 11:49:25 -08:00
Owen
3eac80e666 We dont care if its archived when recovering the olm 2026-01-20 20:47:35 -08:00
Fred KISSIE
718d2122a4 ♻️ move olm install command to its own component 2026-01-21 05:22:49 +01:00
Fred KISSIE
310c6c90a3 Merge branch 'dev' into feat/show-newt-install-command 2026-01-21 03:26:52 +01:00
Fred KISSIE
9d80f62d58 ♻️ move newt install commands to its own component for reusing in details 2026-01-21 03:21:35 +01:00
Owen
77032fc989 Remove extranious file 2026-01-20 18:07:28 -08:00
miloschwartz
64e6086f0c set docs link for approvals 2026-01-20 17:50:07 -08:00
miloschwartz
3aa58fdc8f add display info for device posture 2026-01-20 17:47:01 -08:00
Owen Schwartz
93bc6ba615 New translations en-us.json (Norwegian Bokmal) 2026-01-20 16:46:05 -08:00
Owen Schwartz
36690d63cb New translations en-us.json (Chinese Simplified) 2026-01-20 16:46:05 -08:00
Owen Schwartz
9896e9799a New translations en-us.json (Turkish) 2026-01-20 16:46:05 -08:00
Owen Schwartz
27afc82b79 New translations en-us.json (Russian) 2026-01-20 16:46:05 -08:00
Owen Schwartz
1c8f01ce7b New translations en-us.json (Portuguese) 2026-01-20 16:46:05 -08:00
Owen Schwartz
4038ccff0d New translations en-us.json (Polish) 2026-01-20 16:46:05 -08:00
Owen Schwartz
5b41bc2f59 New translations en-us.json (Dutch) 2026-01-20 16:46:05 -08:00
Owen Schwartz
014ba760b5 New translations en-us.json (Korean) 2026-01-20 16:46:05 -08:00
Owen Schwartz
96a91ccf09 New translations en-us.json (Italian) 2026-01-20 16:46:05 -08:00
Owen Schwartz
347fbd2a48 New translations en-us.json (German) 2026-01-20 16:46:05 -08:00
Owen Schwartz
29723052ab New translations en-us.json (Czech) 2026-01-20 16:46:05 -08:00
Owen Schwartz
86415d675b New translations en-us.json (Bulgarian) 2026-01-20 16:46:05 -08:00
Owen Schwartz
8fc4a0dc48 New translations en-us.json (Spanish) 2026-01-20 16:46:05 -08:00
Owen Schwartz
e14670cdda New translations en-us.json (French) 2026-01-20 16:46:05 -08:00
Jan-Filip Grosse
4d73488f0c updated the sync and creation of new rules objects to include priorities passed by blueprints. 2026-01-20 15:22:12 -08:00
Jan-Filip Grosse
46e62b24cf Updated RuleSchema to include priority as optional int() value. Included validiation to make sure that no priorities are duplicated (including those which get auto-assigned). 2026-01-20 15:22:12 -08:00
Owen
17c3041fe9 Add migrations 2026-01-20 15:20:19 -08:00
Varun Narravula
d5ae381528 feat(fingerprint): clean up stale snapshots older than 1 year 2026-01-20 12:13:43 -08:00
Varun Narravula
e2e09527ec fix(fingerprint): set fingerprintId reference to null 2026-01-20 12:13:43 -08:00
Varun Narravula
3ce1afbcc9 feat(fingerprint): consolidate posture checks into fingerprint table 2026-01-20 12:13:43 -08:00
Varun Narravula
1f077d7ec2 refactor(fingerprint): start taking fingerprint snapshots in new table 2026-01-20 12:13:43 -08:00
miloschwartz
adf3d0347b remove icon 2026-01-20 11:02:06 -08:00
miloschwartz
7ed8b16a53 fix credenza dialog spacing on mobile 2026-01-20 10:18:17 -08:00
miloschwartz
9f7c162107 make approvals placeholder more mobile friendly 2026-01-19 22:02:02 -08:00
miloschwartz
fb15f8cde6 add placeholder approvals ui 2026-01-19 21:57:28 -08:00
miloschwartz
45ecfcc6bb add approve and deny actions to devices table 2026-01-19 21:41:12 -08:00
miloschwartz
c6f947e470 fix connected col translations 2026-01-19 21:34:14 -08:00
miloschwartz
adf5caf18a add product banner to approvals page 2026-01-19 21:30:29 -08:00
miloschwartz
0b8068e13d add pending approvals count to sidebar 2026-01-19 21:25:28 -08:00
miloschwartz
f143d2e214 make default filter in approvals be pending 2026-01-19 21:14:33 -08:00
miloschwartz
2e802301ae make client link work approval feed 2026-01-19 21:07:15 -08:00
miloschwartz
7305c721a6 format device approval message 2026-01-19 21:00:48 -08:00
miloschwartz
b299f3d6aa use display name function 2026-01-19 21:00:48 -08:00
Fred KISSIE
e09cd6c16c ♻️ reset firn 2026-01-19 20:39:24 -08:00
Fred KISSIE
b7df8b7319 ♻️ make logo URL optional 2026-01-19 20:39:24 -08:00
Fred KISSIE
c92b5942fc 💄 fix analytics refresh button align 2026-01-19 20:39:24 -08:00
Fred KISSIE
fe729ec762 🚧wip: command component 2026-01-20 05:21:18 +01:00
miloschwartz
915673798e update updateRole endpoint 2026-01-19 20:20:31 -08:00
miloschwartz
9527fe4f26 add update role openapi registry 2026-01-19 20:12:35 -08:00
miloschwartz
e8a8b3f664 remove beta tag for clients 2026-01-19 20:10:30 -08:00
Fred KISSIE
d6a829abc2 Merge branch 'dev' into feat/show-newt-install-command 2026-01-20 03:36:38 +01:00
Owen
1a36cd0317 Fix linting errors 2026-01-19 17:57:55 -08:00
Kolin
75005ccf81 Fix WireGuard QR code layout on mobile in site creation page 2026-01-19 17:52:21 -08:00
Kolin
fd6c600531 Fix WireGuard QR code layout on mobile in site credentials page 2026-01-19 17:52:21 -08:00
ThanatosDi
6996c2501e feat: zh-TW for v1.14.1 2026-01-19 17:51:30 -08:00
Owen
efbd9bdb56 Remove faker 2026-01-19 17:50:46 -08:00
dependabot[bot]
0d34213647 Bump the prod-minor-updates group across 1 directory with 12 updates
Bumps the prod-minor-updates group with 12 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@asteasolutions/zod-to-openapi](https://github.com/asteasolutions/zod-to-openapi) | `8.2.0` | `8.4.0` |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.955.0` | `3.971.0` |
| [@faker-js/faker](https://github.com/faker-js/faker) | `10.1.0` | `10.2.0` |
| [ioredis](https://github.com/luin/ioredis) | `5.8.2` | `5.9.2` |
| [next-intl](https://github.com/amannn/next-intl) | `4.6.1` | `4.7.0` |
| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.16.3` | `8.17.1` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.17.4` | `5.21.1` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.68.0` | `7.71.1` |
| [resend](https://github.com/resend/resend-node) | `6.6.0` | `6.7.0` |
| [stripe](https://github.com/stripe/stripe-node) | `20.1.0` | `20.2.0` |
| [ws](https://github.com/websockets/ws) | `8.18.3` | `8.19.0` |
| [zod](https://github.com/colinhacks/zod) | `4.2.1` | `4.3.5` |



Updates `@asteasolutions/zod-to-openapi` from 8.2.0 to 8.4.0
- [Release notes](https://github.com/asteasolutions/zod-to-openapi/releases)
- [Commits](https://github.com/asteasolutions/zod-to-openapi/compare/v8.2.0...v8.4.0)

Updates `@aws-sdk/client-s3` from 3.955.0 to 3.971.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.971.0/clients/client-s3)

Updates `@faker-js/faker` from 10.1.0 to 10.2.0
- [Release notes](https://github.com/faker-js/faker/releases)
- [Changelog](https://github.com/faker-js/faker/blob/next/CHANGELOG.md)
- [Commits](https://github.com/faker-js/faker/compare/v10.1.0...v10.2.0)

Updates `ioredis` from 5.8.2 to 5.9.2
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/redis/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.8.2...v5.9.2)

Updates `next-intl` from 4.6.1 to 4.7.0
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.6.1...v4.7.0)

Updates `pg` from 8.16.3 to 8.17.1
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.17.1/packages/pg)

Updates `posthog-node` from 5.17.4 to 5.21.1
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.21.1/packages/node)

Updates `react-hook-form` from 7.68.0 to 7.71.1
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.68.0...v7.71.1)

Updates `resend` from 6.6.0 to 6.7.0
- [Release notes](https://github.com/resend/resend-node/releases)
- [Commits](https://github.com/resend/resend-node/compare/v6.6.0...v6.7.0)

Updates `stripe` from 20.1.0 to 20.2.0
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v20.1.0...v20.2.0)

Updates `ws` from 8.18.3 to 8.19.0
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.18.3...8.19.0)

Updates `zod` from 4.2.1 to 4.3.5
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](https://github.com/colinhacks/zod/compare/v4.2.1...v4.3.5)

---
updated-dependencies:
- dependency-name: "@asteasolutions/zod-to-openapi"
  dependency-version: 8.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.971.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@faker-js/faker"
  dependency-version: 10.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: ioredis
  dependency-version: 5.9.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: next-intl
  dependency-version: 4.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: pg
  dependency-version: 8.17.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: posthog-node
  dependency-version: 5.21.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.71.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: resend
  dependency-version: 6.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: stripe
  dependency-version: 20.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: ws
  dependency-version: 8.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: zod
  dependency-version: 4.3.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 17:50:46 -08:00
dependabot[bot]
870b85d71b Bump the dev-minor-updates group across 1 directory with 3 updates
Bumps the dev-minor-updates group with 3 updates in the / directory: [prettier](https://github.com/prettier/prettier), [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `prettier` from 3.7.4 to 3.8.0
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.7.4...3.8.0)

Updates `react-email` from 5.0.7 to 5.2.5
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@5.2.5/packages/react-email)

Updates `typescript-eslint` from 8.49.0 to 8.53.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: react-email
  dependency-version: 5.2.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: typescript-eslint
  dependency-version: 8.53.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 17:42:02 -08:00
dependabot[bot]
86ba6b6f86 Bump golang.org/x/term in /install in the prod-minor-updates group
Bumps the prod-minor-updates group in /install with 1 update: [golang.org/x/term](https://github.com/golang/term).


Updates `golang.org/x/term` from 0.38.0 to 0.39.0
- [Commits](https://github.com/golang/term/compare/v0.38.0...v0.39.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-version: 0.39.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 17:39:29 -08:00
dependabot[bot]
02be3cd0c4 Bump qs from 6.14.0 to 6.14.1
Bumps [qs](https://github.com/ljharb/qs) from 6.14.0 to 6.14.1.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.14.0...v6.14.1)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.14.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 17:39:00 -08:00
dependabot[bot]
1b756ef9a0 Bump aws-actions/configure-aws-credentials from 2 to 5
Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from 2 to 5.
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws-actions/configure-aws-credentials/compare/v2...v5)

---
updated-dependencies:
- dependency-name: aws-actions/configure-aws-credentials
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 17:38:03 -08:00
dependabot[bot]
ceda06f9ae Bump actions/setup-go from 6.1.0 to 6.2.0
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](4dc6199c7b...7a3fe6cf4c)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 17:37:55 -08:00
dependabot[bot]
068eba015b Bump actions/setup-node from 6.1.0 to 6.2.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](395ad32622...6044e13b5d)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 17:37:46 -08:00
Owen
7ae6b2df05 Fix email parsing validation error? 2026-01-19 16:45:15 -08:00
Owen
6765d5ad26 Reorder setting the olm agent and version 2026-01-19 16:30:34 -08:00
Owen
35cfd6bec9 Move up figerprint so it happens before block 2026-01-19 14:59:00 -08:00
Owen
90f66baf85 Update config dir values to match install 2026-01-19 13:55:22 -08:00
miloschwartz
5edfed78f2 fix only show advanced toggle on newt sites 2026-01-19 11:50:56 -08:00
miloschwartz
fd6a3e5a17 fix default logo size 2026-01-19 11:47:14 -08:00
miloschwartz
14a4b1b4b4 add clear license key command to pangctl 2026-01-19 11:39:58 -08:00
Kolin
5743c0bb72 chore: add ru-RU, bg-BG and cs-CZ locales 2026-01-19 10:11:50 -08:00
miloschwartz
acca1b6a91 improve red alert colors 2026-01-18 22:10:34 -08:00
miloschwartz
355265cd1e show paid user alert on approvals 2026-01-18 21:49:15 -08:00
miloschwartz
6ec8d143fa hide pending approval filter in oss 2026-01-18 21:47:00 -08:00
miloschwartz
8ae327e8f5 fix org policy check 2026-01-18 21:24:17 -08:00
Owen
c03a61f613 Delete each of the site resources and rebuild 2026-01-18 15:00:08 -08:00
miloschwartz
89928c753c add server info endpoint 2026-01-18 12:19:07 -08:00
miloschwartz
a56fcc0fba add olm container install commands 2026-01-18 12:11:58 -08:00
miloschwartz
43c60bcdbc spacing and phrase improvement 2026-01-18 12:08:29 -08:00
miloschwartz
a3fa12f0e4 split org security settings to new tab 2026-01-18 12:03:01 -08:00
Owen
d696556097 Handle disconnecting message when stoppng 2026-01-18 11:55:41 -08:00
miloschwartz
6a45151741 show fingerprint popup and fix policy check errors 2026-01-18 11:55:24 -08:00
miloschwartz
34e2fbefb9 add view user device page with fingerprint and actions 2026-01-17 20:59:20 -08:00
Owen
f7cede4713 Use /etc/sysctl.d/99-podman.conf
Fixes #2253
2026-01-17 12:22:43 -08:00
Owen
610b20c1ff Use the right driver
Fixes #2254
2026-01-17 12:21:47 -08:00
miloschwartz
fb19e10cdc Merge branch 'dev' into bubble-errors-up 2026-01-17 12:00:55 -08:00
miloschwartz
2f1756ccf2 add more error messages for org access policy 2026-01-17 12:00:27 -08:00
Owen
ce632a25cf Consolidate the messages into the same enum 2026-01-17 11:41:10 -08:00
Fred KISSIE
ec10c37468 🚧wip 2026-01-17 02:09:59 +01:00
Fred KISSIE
5ee3e140ed 🔇 fix logs 2026-01-17 02:07:43 +01:00
Owen
888f5f8bb6 Dont terminate on archive 2026-01-16 17:06:16 -08:00
Owen
9114dd5992 Send terminate error messages 2026-01-16 14:57:54 -08:00
Owen
a126494c12 Add pending 2026-01-16 14:37:06 -08:00
Milo Schwartz
79ba804c88 Merge pull request #2252 from Fredkiss3/fix/request-analytics-loading-state
Fix: better loading state for analytics
2026-01-16 14:35:55 -08:00
Owen
e2cbe11a5f Send error codes down to olm 2026-01-16 14:19:36 -08:00
Owen
05748bf8ff Merge branch 'dev' into msg-delivery 2026-01-16 12:22:23 -08:00
Owen
f8c98bf6bf Fix log messages 2026-01-16 12:19:52 -08:00
Fred KISSIE
f4496bb23a ♻️ show all country list 2026-01-16 17:36:48 +01:00
Fred KISSIE
c93766bb48 💄fix countries list grid items 2026-01-16 17:35:17 +01:00
Owen
a1ea3f74b3 Move the query into the sync 2026-01-15 22:00:13 -08:00
Milo Schwartz
06aaa7c680 Merge pull request #2121 from Fredkiss3/feat/device-approvals
feat: device approvals
2026-01-15 21:33:31 -08:00
Owen
65e8bfc93e Message syncing works 2026-01-15 21:26:13 -08:00
miloschwartz
ff5e12655f add pretty apple device names 2026-01-15 17:59:45 -08:00
Fred KISSIE
1065004fa3 🚸 show a better loading state for analytics 2026-01-16 02:07:08 +01:00
Fred KISSIE
6d90d734f4 🏷️ fix types 2026-01-15 23:25:05 +01:00
Varun Narravula
6c8757f230 feat(olm): reset/send new olm secret if a matching fingerprint is detected 2026-01-15 12:33:26 -08:00
Milo Schwartz
40e37b1798 Merge pull request #2244 from water-sucks/add-fingerprint-and-posture-check-info
feat(fingerprint): store posture checks and fingerprint info
2026-01-15 12:05:41 -08:00
miloschwartz
8e1fd4474f fix whitelist hyrdration closes #2190 2026-01-14 22:09:56 -08:00
miloschwartz
bd87585396 fix whitelist hyrdration closes #2190 2026-01-14 22:08:16 -08:00
Varun Narravula
e9e935d6c4 feat(fingerprint): add platform fingerprint hash 2026-01-14 20:21:22 -08:00
miloschwartz
2f2c2b4222 improved org idp login flow 2026-01-14 19:15:19 -08:00
Fred KISSIE
9749a272ec 🏷️fix types 2026-01-15 03:46:25 +01:00
Fred KISSIE
b76a50238e 🏷️ fix types 2026-01-15 03:40:30 +01:00
Fred KISSIE
a4f3963a5a ♻️update approval filter & set approval to denied when blocked 2026-01-15 03:34:42 +01:00
Owen
d52bd65d21 Fix build 2026-01-14 17:54:34 -08:00
Fred KISSIE
fb51f42f35 ♻️ set approval & blocked work in tandem 2026-01-15 01:33:52 +01:00
Fred KISSIE
c910a715bd ♻️ set blocked to true if approvalState is set to denied 2026-01-15 01:12:38 +01:00
Fred KISSIE
9040f9b82a ♻️ set approval state nullable 2026-01-15 01:03:02 +01:00
Fred KISSIE
fc0ec0d754 🐛 remove unused approval state 2026-01-15 00:28:30 +01:00
Fred KISSIE
b3569174b6 🐛 fix sqlite type 2026-01-15 00:20:45 +01:00
Fred KISSIE
0cae624995 🏷️ fix types 2026-01-14 23:57:16 +01:00
Fred KISSIE
cbf184342b Merge branch 'dev' into feat/device-approvals 2026-01-14 23:08:40 +01:00
Fred KISSIE
ce123a7f1a 💬 make the message more descriptive 2026-01-14 03:37:47 +01:00
Fred KISSIE
0c5daa7173 process approvals on the frontend 2026-01-14 03:31:49 +01:00
Fred KISSIE
bc20a34a49 process approval endpoint 2026-01-14 03:00:40 +01:00
Fred KISSIE
d5b6a426a9 💄 filter by approval state 2026-01-14 02:24:11 +01:00
Fred KISSIE
4c78e93143 💄 show approval state in the user device uI 2026-01-14 01:59:51 +01:00
miloschwartz
5f184e9e5e support background image on org auth pages 2026-01-13 16:35:27 -08:00
miloschwartz
2201b0395d add optional tags field to idp 2026-01-13 16:21:40 -08:00
miloschwartz
51818044b1 fix broken redirect url on custom auth url login 2026-01-13 15:48:07 -08:00
Fred KISSIE
30943010e6 ♻️ sort by pending first 2026-01-14 00:37:48 +01:00
Fred KISSIE
dd5ca10226 ♻️ empty data 2026-01-14 00:35:35 +01:00
miloschwartz
a56b058858 fix role name missing in forward headers 2026-01-13 15:28:02 -08:00
miloschwartz
eade72e2c6 set text-destructive color 2026-01-13 09:36:53 -08:00
miloschwartz
e9bc9747b8 check if olm is blocked in get user olm 2026-01-12 22:08:58 -08:00
Owen
eb0cdda0f9 Merge branch 'dev' into msg-delivery 2026-01-12 21:17:38 -08:00
Owen
552adf3200 Properly handle blocked devices 2026-01-12 21:14:18 -08:00
Owen
eba25fcc4d Add increment options and slight cleanup 2026-01-12 20:48:18 -08:00
miloschwartz
673cd0fcd1 add block client 2026-01-12 20:37:53 -08:00
miloschwartz
b941b5571f add archive to org clients and add unarchive 2026-01-12 15:52:27 -08:00
Owen
ca026b41c0 Merge branch 'main' into dev 2026-01-11 14:19:59 -08:00
Owen
29a683a815 Copy all tags to github reg 2026-01-11 14:19:38 -08:00
Owen
69dbd20ea5 Use same regex for blueprint aliases
Closes #2218
Fixes #2216
2026-01-11 13:39:46 -08:00
miloschwartz
427ee026ac Merge branch 'org-only-idp' into dev 2026-01-11 10:47:57 -08:00
miloschwartz
0a537c6830 add org only idp to integration api 2026-01-11 10:47:19 -08:00
Owen
89682a2ee4 Try to intent:// into android app from tab 2026-01-11 10:39:39 -08:00
Owen
78b00a18cc Add retry to aquire 2026-01-11 10:39:28 -08:00
Owen
192702daf9 Quiet log 2026-01-11 10:39:18 -08:00
Varun Narravula
fcee735578 feat(fingerprints): receive fingerprints/postures from olm and add to db 2026-01-10 21:15:54 -08:00
miloschwartz
2ba49e84bb add archive device instead of delete 2026-01-09 18:00:00 -08:00
Fred KISSIE
262376aa75 approval list UI 2026-01-10 02:37:50 +01:00
miloschwartz
4c8d2266ec clean up login page 2026-01-09 14:41:22 -08:00
miloschwartz
bb98bf03aa Merge branch 'org-only-idp' into dev 2026-01-09 13:34:52 -08:00
Fred KISSIE
19c3efc9e9 🚧 working on the approval feed 2026-01-09 02:20:08 +01:00
Fred KISSIE
7164721ee0 🐛 insert timestamp correctly 2026-01-09 01:50:56 +01:00
Fred KISSIE
74b16809ec ♻️ update endpoint to only return relevant data 2026-01-09 01:40:15 +01:00
Fred KISSIE
220723d25f ♻️ component refactor 2026-01-09 01:33:52 +01:00
Fred KISSIE
fdb03c9626 ♻️ list approvals with client & user data 2026-01-09 01:33:40 +01:00
Fred KISSIE
a81bbb9192 create approval request and mark client approval as pending if the user's role requires it 2026-01-09 01:18:15 +01:00
Fred KISSIE
7a4aff8e4b 🗃️ use clientId and fix bad column name for decision and add userId 2026-01-09 01:17:05 +01:00
miloschwartz
2810632f4a add flag to enable org only idp in ee 2026-01-07 20:40:59 -08:00
Fred KISSIE
2d0dd067b8 ♻️ refactor 2026-01-08 03:41:09 +01:00
Fred KISSIE
3ab25f5ff1 ♻️ refactor 2026-01-08 03:38:55 +01:00
Fred KISSIE
39bebea5f7 create & update role with device approval 2026-01-08 03:33:03 +01:00
miloschwartz
57681dcd3d remove artificial delay 2026-01-07 12:06:50 -08:00
miloschwartz
168ce549f7 remove guards form list idp for integration api 2026-01-06 13:20:18 -05:00
Owen
9ec94441f3 Try to open apps 2026-01-05 21:46:38 -05:00
Owen
53e7b99605 Quiet up logs 2026-01-05 21:25:15 -05:00
Fred KISSIE
abfe476cb9 🚧 wip 2026-01-06 02:02:09 +01:00
Fred KISSIE
bbca200ceb 🙈 do not include claude.md in gitignore 2026-01-06 01:51:54 +01:00
Fred KISSIE
cb21cab117 🚧 add device approval in the roles page 2026-01-06 01:51:33 +01:00
Fred KISSIE
1f80845a7a 🗃️ move approval state to client directly where it makes more sense 2026-01-05 22:49:42 +01:00
Owen
20088ef82b Log in to ecr 2026-01-05 11:31:29 -05:00
Owen
1e0b1a3607 Add missing \ 2026-01-05 11:23:10 -05:00
Owen
24e8455c73 Remove aws cli call 2026-01-05 11:20:25 -05:00
Owen
e42a732e93 Add saas workflow 2026-01-05 11:16:30 -05:00
Fred KISSIE
0f2b94307f Merge branch 'dev' into feat/device-approvals 2026-01-05 16:54:18 +01:00
Owen
d333cb5199 Add encoded chars to default traefik config
Closes #2176
2026-01-05 10:37:18 -05:00
Owen
a6db4f20ad Expand where org id is pulled for subscription 2026-01-05 10:34:11 -05:00
Jack Myers
9ed9472c01 Fix spelling mistake in installer version prompt 2026-01-02 10:18:21 -05:00
Owen
f7fcde8312 Add max recursion depth to matchSegments 2025-12-31 10:40:16 -05:00
Owen
6660c850f3 Try to bound logs
Ref #2120
2025-12-31 10:31:40 -05:00
Owen
8a08bdf9f0 Add OCI labels
Fixes #2170
2025-12-29 12:29:27 -05:00
Owen
87807e22e0 Add encoded chars to default traefik config
Closes #2176
2025-12-29 10:49:32 -05:00
Owen
0eb39abdb4 Set hc to unknown when changing to local site
Fixes #2181
2025-12-29 10:22:06 -05:00
miloschwartz
a499ebc158 add badger to dyn config example 2025-12-29 10:17:26 -05:00
ruxenburg
9467e6c032 improve delete confirmation logic 2025-12-27 22:20:50 -05:00
ruxenburg
9d849a0ced Fix confirm delete button to require confirmation text before enabling it. 2025-12-27 22:20:50 -05:00
Owen Schwartz
2ca400ab16 New translations en-us.json (French) 2025-12-24 16:14:26 -05:00
Owen Schwartz
4183067c77 New translations en-us.json (Norwegian Bokmal) 2025-12-24 16:14:26 -05:00
Owen Schwartz
5eb4691973 New translations en-us.json (Chinese Simplified) 2025-12-24 16:14:26 -05:00
Owen Schwartz
d14dfbf360 New translations en-us.json (Turkish) 2025-12-24 16:14:26 -05:00
Owen Schwartz
493a5ad02a New translations en-us.json (Russian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
481beff028 New translations en-us.json (Portuguese) 2025-12-24 16:14:26 -05:00
Owen Schwartz
f1f7e438b4 New translations en-us.json (Polish) 2025-12-24 16:14:26 -05:00
Owen Schwartz
00f84c9d8e New translations en-us.json (Dutch) 2025-12-24 16:14:26 -05:00
Owen Schwartz
f75b9c6c86 New translations en-us.json (Korean) 2025-12-24 16:14:26 -05:00
Owen Schwartz
31bc6d5773 New translations en-us.json (Italian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
51dc1450d3 New translations en-us.json (German) 2025-12-24 16:14:26 -05:00
Owen Schwartz
fcbea08c87 New translations en-us.json (Czech) 2025-12-24 16:14:26 -05:00
Owen Schwartz
8d60a87aa1 New translations en-us.json (Bulgarian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
956aa64519 New translations en-us.json (Spanish) 2025-12-24 16:14:26 -05:00
Owen Schwartz
fd1cb6ca23 New translations en-us.json (French) 2025-12-24 16:14:26 -05:00
Owen Schwartz
37082ae436 New translations en-us.json (Norwegian Bokmal) 2025-12-24 16:14:26 -05:00
Owen Schwartz
bb47ca3d2e New translations en-us.json (Chinese Simplified) 2025-12-24 16:14:26 -05:00
Owen Schwartz
0dd3c84b24 New translations en-us.json (Turkish) 2025-12-24 16:14:26 -05:00
Owen Schwartz
848fca7e1b New translations en-us.json (Russian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
2500f99722 New translations en-us.json (Portuguese) 2025-12-24 16:14:26 -05:00
Owen Schwartz
c7737c444f New translations en-us.json (Polish) 2025-12-24 16:14:26 -05:00
Owen Schwartz
4d1a7ed69b New translations en-us.json (Dutch) 2025-12-24 16:14:26 -05:00
Owen Schwartz
626d5df67e New translations en-us.json (Korean) 2025-12-24 16:14:26 -05:00
Owen Schwartz
e4c369deec New translations en-us.json (Italian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
307209e73f New translations en-us.json (German) 2025-12-24 16:14:26 -05:00
Owen Schwartz
dc84935ee6 New translations en-us.json (Czech) 2025-12-24 16:14:26 -05:00
Owen Schwartz
998c1f52ca New translations en-us.json (Bulgarian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
2766758c66 New translations en-us.json (Spanish) 2025-12-24 16:14:26 -05:00
Owen Schwartz
258d1d82f3 New translations en-us.json (French) 2025-12-24 16:14:26 -05:00
Owen Schwartz
46aaadb76a New translations en-us.json (Norwegian Bokmal) 2025-12-24 16:14:26 -05:00
Owen Schwartz
ea7a618810 New translations en-us.json (Chinese Simplified) 2025-12-24 16:14:26 -05:00
Owen Schwartz
c0e503b31f New translations en-us.json (Turkish) 2025-12-24 16:14:26 -05:00
Owen Schwartz
55f5a41752 New translations en-us.json (Russian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
b0be82be86 New translations en-us.json (Portuguese) 2025-12-24 16:14:26 -05:00
Owen Schwartz
96a9bdb700 New translations en-us.json (Polish) 2025-12-24 16:14:26 -05:00
Owen Schwartz
74e6d39c24 New translations en-us.json (Dutch) 2025-12-24 16:14:26 -05:00
Owen Schwartz
61dfa00222 New translations en-us.json (Korean) 2025-12-24 16:14:26 -05:00
Owen Schwartz
476281db2b New translations en-us.json (Italian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
f32e31c73d New translations en-us.json (Czech) 2025-12-24 16:14:26 -05:00
Owen Schwartz
ea72279080 New translations en-us.json (Bulgarian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
16ba56af84 New translations en-us.json (Spanish) 2025-12-24 16:14:26 -05:00
Owen Schwartz
f13ddde988 New translations en-us.json (Norwegian Bokmal) 2025-12-24 16:14:26 -05:00
Owen Schwartz
67dc10dfe9 New translations en-us.json (Chinese Simplified) 2025-12-24 16:14:26 -05:00
Owen Schwartz
5fd216adc2 New translations en-us.json (Turkish) 2025-12-24 16:14:26 -05:00
Owen Schwartz
6f0268f6c0 New translations en-us.json (Russian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
2996dfb33a New translations en-us.json (Portuguese) 2025-12-24 16:14:26 -05:00
Owen Schwartz
c92f2cd4ba New translations en-us.json (Polish) 2025-12-24 16:14:26 -05:00
Owen Schwartz
8164d5c1ad New translations en-us.json (Dutch) 2025-12-24 16:14:26 -05:00
Owen Schwartz
d9d8d85f6e New translations en-us.json (Korean) 2025-12-24 16:14:26 -05:00
Owen Schwartz
d49720703f New translations en-us.json (Italian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
2362a9b4dd New translations en-us.json (German) 2025-12-24 16:14:26 -05:00
Owen Schwartz
a8265a5286 New translations en-us.json (Czech) 2025-12-24 16:14:26 -05:00
Owen Schwartz
9ea7431b73 New translations en-us.json (Bulgarian) 2025-12-24 16:14:26 -05:00
Owen Schwartz
37e6f320fe New translations en-us.json (Spanish) 2025-12-24 16:14:26 -05:00
miloschwartz
c0c0d48edf ui enhancements 2025-12-24 16:14:26 -05:00
Owen
284cccbe17 Attempt to fix loginPageOrg undefined error 2025-12-24 16:14:26 -05:00
Owen
81a9a94264 Try to remove deadlocks on client updates 2025-12-24 16:14:26 -05:00
Owen
dccf101554 Allow all in country in blueprints
Fixes #2163
2025-12-24 16:14:26 -05:00
Owen
a01c06bbc7 Respect http status for url & maintenance mode
Fixes #2164
2025-12-24 16:14:26 -05:00
miloschwartz
db43cf1b30 add sticky actions col to org idp table 2025-12-24 16:14:26 -05:00
miloschwartz
2f561b5604 adjustments to mobile header css closes #1930 2025-12-24 16:14:26 -05:00
miloschwartz
5a30f036ff fade mobile footer 2025-12-24 16:14:26 -05:00
miloschwartz
768b9ffd09 fix server admin spacing on mobile sidebar 2025-12-24 16:14:26 -05:00
miloschwartz
8732e50047 add flag to disable product help banners 2025-12-24 16:14:26 -05:00
miloschwartz
d6e0024c96 improved button loading animation 2025-12-24 16:14:26 -05:00
miloschwartz
9759e86921 add stripPortFromHost and reuse everywhere 2025-12-24 16:14:26 -05:00
Owen Schwartz
982c692c40 New translations en-us.json (French) 2025-12-24 16:12:11 -05:00
Owen Schwartz
0c3ce7836c New translations en-us.json (Norwegian Bokmal) 2025-12-24 16:12:11 -05:00
Owen Schwartz
7ef86c5707 New translations en-us.json (Chinese Simplified) 2025-12-24 16:12:11 -05:00
Owen Schwartz
f62b88b930 New translations en-us.json (Turkish) 2025-12-24 16:12:11 -05:00
Owen Schwartz
03a326c841 New translations en-us.json (Russian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
4df4cafd70 New translations en-us.json (Portuguese) 2025-12-24 16:12:11 -05:00
Owen Schwartz
4b9539cc6d New translations en-us.json (Polish) 2025-12-24 16:12:11 -05:00
Owen Schwartz
87135c90bd New translations en-us.json (Dutch) 2025-12-24 16:12:11 -05:00
Owen Schwartz
853d416b2f New translations en-us.json (Korean) 2025-12-24 16:12:11 -05:00
Owen Schwartz
bfd14b87bd New translations en-us.json (Italian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
88aba4e169 New translations en-us.json (German) 2025-12-24 16:12:11 -05:00
Owen Schwartz
99e2fcb2e8 New translations en-us.json (Czech) 2025-12-24 16:12:11 -05:00
Owen Schwartz
1f138ab68c New translations en-us.json (Bulgarian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
99ded7454e New translations en-us.json (Spanish) 2025-12-24 16:12:11 -05:00
Owen Schwartz
f82cacac6d New translations en-us.json (French) 2025-12-24 16:12:11 -05:00
Owen Schwartz
a548f61ea6 New translations en-us.json (Norwegian Bokmal) 2025-12-24 16:12:11 -05:00
Owen Schwartz
bfae715076 New translations en-us.json (Chinese Simplified) 2025-12-24 16:12:11 -05:00
Owen Schwartz
358e25b7c2 New translations en-us.json (Turkish) 2025-12-24 16:12:11 -05:00
Owen Schwartz
2c3fa54933 New translations en-us.json (Russian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
00cdd5833e New translations en-us.json (Portuguese) 2025-12-24 16:12:11 -05:00
Owen Schwartz
52b1164e58 New translations en-us.json (Polish) 2025-12-24 16:12:11 -05:00
Owen Schwartz
657bc9cdf0 New translations en-us.json (Dutch) 2025-12-24 16:12:11 -05:00
Owen Schwartz
ec6bcd41b0 New translations en-us.json (Korean) 2025-12-24 16:12:11 -05:00
Owen Schwartz
1721cce040 New translations en-us.json (Italian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
e41a5ad6b0 New translations en-us.json (German) 2025-12-24 16:12:11 -05:00
Owen Schwartz
ee1eca9e66 New translations en-us.json (Czech) 2025-12-24 16:12:11 -05:00
Owen Schwartz
d049369172 New translations en-us.json (Bulgarian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
6280a68d51 New translations en-us.json (Spanish) 2025-12-24 16:12:11 -05:00
Owen Schwartz
32054dc4f6 New translations en-us.json (French) 2025-12-24 16:12:11 -05:00
Owen Schwartz
831c631048 New translations en-us.json (Norwegian Bokmal) 2025-12-24 16:12:11 -05:00
Owen Schwartz
e23711bcce New translations en-us.json (Chinese Simplified) 2025-12-24 16:12:11 -05:00
Owen Schwartz
440bff57d0 New translations en-us.json (Turkish) 2025-12-24 16:12:11 -05:00
Owen Schwartz
7345cc81c1 New translations en-us.json (Russian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
164ab26069 New translations en-us.json (Portuguese) 2025-12-24 16:12:11 -05:00
Owen Schwartz
4b6ace80d3 New translations en-us.json (Polish) 2025-12-24 16:12:11 -05:00
Owen Schwartz
653127a0f7 New translations en-us.json (Dutch) 2025-12-24 16:12:11 -05:00
Owen Schwartz
bf3a1e20fc New translations en-us.json (Korean) 2025-12-24 16:12:11 -05:00
Owen Schwartz
d7a44e7589 New translations en-us.json (Italian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
6c0d583557 New translations en-us.json (Czech) 2025-12-24 16:12:11 -05:00
Owen Schwartz
13f0fb25da New translations en-us.json (Bulgarian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
818aca9ec8 New translations en-us.json (Spanish) 2025-12-24 16:12:11 -05:00
Owen Schwartz
1c7fb476b0 New translations en-us.json (Norwegian Bokmal) 2025-12-24 16:12:11 -05:00
Owen Schwartz
93843ed733 New translations en-us.json (Chinese Simplified) 2025-12-24 16:12:11 -05:00
Owen Schwartz
0973313703 New translations en-us.json (Turkish) 2025-12-24 16:12:11 -05:00
Owen Schwartz
bfbfbe8b11 New translations en-us.json (Russian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
8c62d9fe78 New translations en-us.json (Portuguese) 2025-12-24 16:12:11 -05:00
Owen Schwartz
d5558f55ed New translations en-us.json (Polish) 2025-12-24 16:12:11 -05:00
Owen Schwartz
a96ad6bd07 New translations en-us.json (Dutch) 2025-12-24 16:12:11 -05:00
Owen Schwartz
00d9482a99 New translations en-us.json (Korean) 2025-12-24 16:12:11 -05:00
Owen Schwartz
0f90e2a30f New translations en-us.json (Italian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
3eed636404 New translations en-us.json (German) 2025-12-24 16:12:11 -05:00
Owen Schwartz
a67f88381f New translations en-us.json (Czech) 2025-12-24 16:12:11 -05:00
Owen Schwartz
808fd856d1 New translations en-us.json (Bulgarian) 2025-12-24 16:12:11 -05:00
Owen Schwartz
5b9b532458 New translations en-us.json (Spanish) 2025-12-24 16:12:11 -05:00
miloschwartz
9fba9bd6b7 ui enhancements 2025-12-24 15:53:08 -05:00
Owen
c5ece144d0 Attempt to fix loginPageOrg undefined error 2025-12-24 12:25:11 -05:00
Owen
b64e2e11db Try to remove deadlocks on client updates 2025-12-24 12:20:22 -05:00
Owen
0ccd5714f9 Seperating out functions 2025-12-24 11:50:27 -05:00
Owen
e2dfc3eb20 Merge branch 'dev' into msg-delivery 2025-12-24 11:33:41 -05:00
Owen
40eeb9b7cb Allow all in country in blueprints
Fixes #2163
2025-12-24 10:49:18 -05:00
Owen
8fa62a0908 Respect http status for url & maintenance mode
Fixes #2164
2025-12-24 10:47:01 -05:00
Owen
446eba8bc9 Orging how we are going to make the sync 2025-12-24 10:38:44 -05:00
Owen
18579c0647 Merge branch 'dev' into msg-delivery 2025-12-23 16:57:17 -05:00
Owen
2bb94e24eb Merge branch 'main' into dev 2025-12-23 16:57:01 -05:00
Owen
0d37e08638 Merge branch 'dev' into msg-delivery 2025-12-23 16:56:50 -05:00
Owen
ca89c5feca Reorder when the redirect gets in there 2025-12-23 16:02:52 -05:00
Owen
729c2adb3f Dont allow maintence page on remote nodes 2025-12-23 15:24:26 -05:00
miloschwartz
a21f49cb02 add sticky actions col to org idp table 2025-12-23 14:58:58 -05:00
miloschwartz
ef697c4864 adjustments to mobile header css closes #1930 2025-12-23 13:57:44 -05:00
miloschwartz
2652dea09a fade mobile footer 2025-12-23 13:41:11 -05:00
miloschwartz
efa9312fca fix server admin spacing on mobile sidebar 2025-12-23 13:37:48 -05:00
miloschwartz
074ee70025 add flag to disable product help banners 2025-12-23 13:33:24 -05:00
miloschwartz
77117e48e3 improved button loading animation 2025-12-23 12:51:38 -05:00
miloschwartz
da112d3417 add stripPortFromHost and reuse everywhere 2025-12-23 12:35:03 -05:00
Owen
ddaaf34dbd Merge branch 'dev' 2025-12-22 23:12:13 -05:00
miloschwartz
373e35324e Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-12-22 21:58:32 -05:00
miloschwartz
09b2f27749 show both redirect urls for org idp 2025-12-22 21:58:21 -05:00
Owen
7e9f18bf24 Update migration to allow all ports 2025-12-22 21:57:14 -05:00
Owen
ab3be26790 Working on remote nodes 2025-12-22 21:53:57 -05:00
Owen
5c67a1cb12 Format 2025-12-22 16:28:41 -05:00
Owen
e28ab19ed4 Add header 2025-12-22 16:28:19 -05:00
Owen
59f8334cfd Fix ee export of MaintenanceSchema 2025-12-22 16:27:54 -05:00
Milo Schwartz
718bec4bbc Merge pull request #2151 from fosrl/dev
1.14.0 ready
2025-12-22 13:16:30 -08:00
miloschwartz
2d731cb24b Merge branch 'main' into dev 2025-12-22 16:15:28 -05:00
miloschwartz
1905936950 parse request ip in exchange session 2025-12-22 15:48:24 -05:00
miloschwartz
c362bc673c add min version to product updates 2025-12-22 15:28:44 -05:00
miloschwartz
4da0a752ef make auto redirect to idp a select input 2025-12-22 15:03:57 -05:00
Owen
221ee6a1c2 Remove warning for limit 2025-12-22 14:07:49 -05:00
Owen
2e60ecec87 Add maintence options to blueprints 2025-12-22 14:00:50 -05:00
miloschwartz
71386d3b05 fix request ip port strip issue with badger >=1.3.0 2025-12-22 12:35:40 -05:00
Jacky Fong
89a7e2e4dc handle olm as well 2025-12-22 10:25:30 -05:00
Jacky Fong
27440700a5 fix: Don't treat newt release-candidate as a "update" in the site list 2025-12-22 10:25:30 -05:00
Owen
b5019cef12 Ignore the -arm64 and -amd64 tags 2025-12-21 21:21:24 -05:00
Owen
7e48cbe1aa Set file location 2025-12-21 21:16:57 -05:00
Owen
4b2c570e73 Fix bad rc check 2025-12-21 21:15:22 -05:00
Owen
972febf0ea Fix regex 2025-12-21 20:36:19 -05:00
Owen
6060b1d60d Merge branch 'main' into dev 2025-12-21 20:31:38 -05:00
miloschwartz
c91b4beac5 fix resource queries 2025-12-21 19:42:03 -05:00
Owen Schwartz
3577b5efb9 New translations en-us.json (Norwegian Bokmal) 2025-12-21 18:34:26 -05:00
Owen Schwartz
6069b84e58 New translations en-us.json (Chinese Simplified) 2025-12-21 18:34:26 -05:00
Owen Schwartz
cbccea0bbc New translations en-us.json (Turkish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
e17212c584 New translations en-us.json (Russian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
e38102b022 New translations en-us.json (Portuguese) 2025-12-21 18:34:26 -05:00
Owen Schwartz
5749704cf1 New translations en-us.json (Polish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
f584cba6be New translations en-us.json (Dutch) 2025-12-21 18:34:26 -05:00
Owen Schwartz
0661a950c7 New translations en-us.json (Korean) 2025-12-21 18:34:26 -05:00
Owen Schwartz
8f5ac1282a New translations en-us.json (Italian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
232a178e0f New translations en-us.json (German) 2025-12-21 18:34:26 -05:00
Owen Schwartz
4f64db1d82 New translations en-us.json (Czech) 2025-12-21 18:34:26 -05:00
Owen Schwartz
d91356574b New translations en-us.json (Bulgarian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
bd666d46b2 New translations en-us.json (Spanish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
881346c31a New translations en-us.json (French) 2025-12-21 18:34:26 -05:00
Owen Schwartz
ec1b41ebbb New translations en-us.json (Norwegian Bokmal) 2025-12-21 18:34:26 -05:00
Owen Schwartz
abe7bbf068 New translations en-us.json (Chinese Simplified) 2025-12-21 18:34:26 -05:00
Owen Schwartz
a1d33f8103 New translations en-us.json (Turkish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
b55386e301 New translations en-us.json (Russian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
59fc5713ca New translations en-us.json (Portuguese) 2025-12-21 18:34:26 -05:00
Owen Schwartz
b9bd6433a7 New translations en-us.json (Polish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
6b2e77262e New translations en-us.json (Dutch) 2025-12-21 18:34:26 -05:00
Owen Schwartz
8904db8dd1 New translations en-us.json (Korean) 2025-12-21 18:34:26 -05:00
Owen Schwartz
0da15ae1e6 New translations en-us.json (Italian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
0086818928 New translations en-us.json (German) 2025-12-21 18:34:26 -05:00
Owen Schwartz
d7abf9369e New translations en-us.json (Czech) 2025-12-21 18:34:26 -05:00
Owen Schwartz
5fcc7bbff4 New translations en-us.json (Bulgarian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
e90d87f26d New translations en-us.json (Spanish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
46a6d2be9e New translations en-us.json (French) 2025-12-21 18:34:26 -05:00
Owen Schwartz
f6709c1bdf New translations en-us.json (German) 2025-12-21 18:34:26 -05:00
Owen Schwartz
c2a721791f New translations en-us.json (German) 2025-12-21 18:34:26 -05:00
Owen Schwartz
ec1f5eff19 New translations en-us.json (Norwegian Bokmal) 2025-12-21 18:34:26 -05:00
Owen Schwartz
10463e5b55 New translations en-us.json (Chinese Simplified) 2025-12-21 18:34:26 -05:00
Owen Schwartz
30fa048637 New translations en-us.json (Turkish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
6bae89023b New translations en-us.json (Russian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
874aac010e New translations en-us.json (Portuguese) 2025-12-21 18:34:26 -05:00
Owen Schwartz
465a007f2e New translations en-us.json (Polish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
a678a18bcf New translations en-us.json (Dutch) 2025-12-21 18:34:26 -05:00
Owen Schwartz
dbb0979e86 New translations en-us.json (Korean) 2025-12-21 18:34:26 -05:00
Owen Schwartz
2571ade633 New translations en-us.json (Italian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
38bae0dc6a New translations en-us.json (German) 2025-12-21 18:34:26 -05:00
Owen Schwartz
7409d44923 New translations en-us.json (Czech) 2025-12-21 18:34:26 -05:00
Owen Schwartz
84b4f15ed4 New translations en-us.json (Bulgarian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
412c4717ad New translations en-us.json (Spanish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
88d3e76c44 New translations en-us.json (French) 2025-12-21 18:34:26 -05:00
Owen Schwartz
8626454811 New translations en-us.json (Norwegian Bokmal) 2025-12-21 18:34:26 -05:00
Owen Schwartz
f7c0a6875c New translations en-us.json (Chinese Simplified) 2025-12-21 18:34:26 -05:00
Owen Schwartz
f89f3398fa New translations en-us.json (Turkish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
32898eb5d3 New translations en-us.json (Russian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
9fe05b7af4 New translations en-us.json (Portuguese) 2025-12-21 18:34:26 -05:00
Owen Schwartz
f8be34370d New translations en-us.json (Polish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
91bd38227e New translations en-us.json (Dutch) 2025-12-21 18:34:26 -05:00
Owen Schwartz
101ee581e8 New translations en-us.json (Korean) 2025-12-21 18:34:26 -05:00
Owen Schwartz
8d099c51e1 New translations en-us.json (Italian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
939264014b New translations en-us.json (German) 2025-12-21 18:34:26 -05:00
Owen Schwartz
bbeb4c029c New translations en-us.json (Czech) 2025-12-21 18:34:26 -05:00
Owen Schwartz
59a37cc606 New translations en-us.json (Bulgarian) 2025-12-21 18:34:26 -05:00
Owen Schwartz
ce3962f97a New translations en-us.json (Spanish) 2025-12-21 18:34:26 -05:00
Owen Schwartz
3c20fd0a55 New translations en-us.json (French) 2025-12-21 18:34:26 -05:00
Owen
e320f9f16e Handle the rc 2025-12-21 17:23:35 -05:00
Owen
11200b99d3 Use image tools to combine the tags 2025-12-21 17:17:02 -05:00
Dhananjay Mahtha
7507806aaa Fix: Support public-resources and private-resources in Docker blueprint labels
- Add support for pangolin.public-resources.* labels as alias for proxy-resources
- Add support for pangolin.private-resources.* labels as alias for client-resources
- Update processContainerLabels to parse all four resource type prefixes
- Update early-exit check in applyNewtDockerBlueprint to consider all four resource keys
- ConfigSchema transformation will merge public/private into proxy/client as designed

Fixes #2125
2025-12-21 17:09:01 -05:00
Dhananjay Mahtha
90c48f20e0 Fix: Prevent cache memory leak by adding maxKeys limit and conditional caching
- Add maxKeys limit (10,000) to NodeCache to prevent unbounded memory growth
- Skip caching undefined values when GeoIP/ASN lookups fail (e.g., when MaxMind DB not configured)
- Add periodic cache statistics logging every 5 minutes for monitoring
- Fixes memory leak where cache would grow indefinitely with high request volumes

The maxKeys limit uses LRU eviction, so oldest entries are automatically removed
when the limit is reached. With ~10k requests/day and 5min TTL, 10k keys provides
ample headroom while preventing OOM issues.

Fixes #2120
2025-12-21 17:08:27 -05:00
Owen
9e68c6c004 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-21 16:59:55 -05:00
Owen
130c890678 Merge branch 'main' into dev 2025-12-21 16:58:13 -05:00
Owen Schwartz
5e183911e1 Revert "Bump recharts from 2.15.4 to 3.5.1"
This reverts commit 9d9401d2ee.
2025-12-21 16:50:08 -05:00
miloschwartz
74479c984c update traefik config with new badger version 2025-12-21 16:48:50 -05:00
Owen
1d5d856799 Make extendedCompatibility on by default 2025-12-21 16:38:28 -05:00
Owen
8ea6b0cd9e Adjust algo for showing maintence page 2025-12-21 16:38:27 -05:00
miloschwartz
90d07f9794 use cammel case in cli args 2025-12-21 16:26:06 -05:00
miloschwartz
e9a29e7db2 improvements to create private resource modal 2025-12-21 16:07:32 -05:00
miloschwartz
b2df8eb72e add advanced toggle to sites and clients create 2025-12-21 16:02:09 -05:00
miloschwartz
3f81b88073 add advanced section to org create form 2025-12-21 15:56:57 -05:00
miloschwartz
dedc13ab98 bump version 2025-12-21 15:45:12 -05:00
miloschwartz
2f8ecf17ed add postgres migration 2025-12-21 15:43:38 -05:00
miloschwartz
81149085fa add sqlite migration 2025-12-21 15:32:43 -05:00
miloschwartz
0aa56d441e fix scroll bar 2025-12-20 22:31:50 -05:00
miloschwartz
757b735d98 separate maintenance section 2025-12-20 22:29:22 -05:00
miloschwartz
4af7900dae auto focus 2fa 2025-12-20 22:06:53 -05:00
miloschwartz
a3610b7dde add badger middleware to api and dashboard routes 2025-12-20 21:49:18 -05:00
Owen
af4f85a081 Fix api call 2025-12-20 21:14:48 -05:00
Owen
6a5939599c Remove maintence mode internal vars and use server 2025-12-20 17:28:39 -05:00
Owen
51ef859349 Dont print env var; confusing user 2025-12-20 17:28:30 -05:00
Owen
e477a5a1b5 Add ee install option 2025-12-20 17:28:07 -05:00
miloschwartz
4a98061a62 visual enhancements 2025-12-20 16:50:05 -05:00
Owen
be20289140 Resolve some warnings 2025-12-20 16:38:03 -05:00
Owen
3ce0cc1992 Add missing semicolon 2025-12-20 16:35:16 -05:00
Owen
a9a0fbe244 Merge UI into new screen 2025-12-20 16:35:16 -05:00
Owen
03d1f4bbb9 Update lock 2025-12-20 16:35:16 -05:00
Owen
9b3d066a91 Fix merge issues 2025-12-20 16:35:16 -05:00
miloschwartz
ccd4f9b65c restyle maintenance mode screen 2025-12-20 16:35:16 -05:00
Owen
d8344988c0 Restrict license 2025-12-20 16:35:16 -05:00
Owen
bb5594ab2f Update form 2025-12-20 16:35:16 -05:00
Owen
19f8cda3d9 Make private 2025-12-20 16:35:16 -05:00
Pallavi Kumari
d3c4688c0f redirect everything to maintenance page 2025-12-20 16:35:16 -05:00
Pallavi Kumari
2d92111f1d add to priv route 2025-12-20 16:35:16 -05:00
Owen
b8ffc601d4 add backend API maintenance screen 2025-12-20 16:35:16 -05:00
Pallavi Kumari
8af95ea1ca Lazy-Load DB for maintenance-screen 2025-12-20 16:35:16 -05:00
Pallavi Kumari
beddb0d187 Skip config fetch during build 2025-12-20 16:35:16 -05:00
Pallavi Kumari
bd20bb0dd1 add logger 2025-12-20 16:35:16 -05:00
Owen
662e63317b add tooltip 2025-12-20 16:35:16 -05:00
Pallavi Kumari
d82535d3e1 point the resource to the nextjs server for maintenance screen 2025-12-20 16:35:16 -05:00
Pallavi Kumari
1d862131dd remove maintenance mode from oss traefik config generator 2025-12-20 16:35:16 -05:00
Pallavi Kumari
150c51c9eb move settings into a new SettingsSection card 2025-12-20 16:35:16 -05:00
Owen
8618a5c2fd add en-Us strings 2025-12-20 16:35:16 -05:00
Pallavi Kumari
795302a351 refactor files and add func to private traefik config generator file 2025-12-20 16:35:16 -05:00
Pallavi Kumari
096a2bfa10 fix maintenance router name 2025-12-20 16:35:16 -05:00
Pallavi Kumari
188994ce84 add pg schema 2025-12-20 16:35:16 -05:00
Owen
800bdcb277 generate traefik config for maintenance ui 2025-12-20 16:35:16 -05:00
Pallavi Kumari
c033fd4e8b backend for updating maintenance screen 2025-12-20 16:35:16 -05:00
Owen
d2fa55dd11 ui to enable down for maintenance screen 2025-12-20 16:35:16 -05:00
Owen
7e047d9e34 db schema for maintenance 2025-12-20 16:35:16 -05:00
dependabot[bot]
9d9401d2ee Bump recharts from 2.15.4 to 3.5.1
Bumps [recharts](https://github.com/recharts/recharts) from 2.15.4 to 3.5.1.
- [Release notes](https://github.com/recharts/recharts/releases)
- [Changelog](https://github.com/recharts/recharts/blob/main/CHANGELOG.md)
- [Commits](https://github.com/recharts/recharts/compare/v2.15.4...v3.5.1)

---
updated-dependencies:
- dependency-name: recharts
  dependency-version: 3.5.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 15:35:30 -05:00
dependabot[bot]
9a621044d8 Bump aws-actions/configure-aws-credentials from 2 to 5
Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from 2 to 5.
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws-actions/configure-aws-credentials/compare/v2...v5)

---
updated-dependencies:
- dependency-name: aws-actions/configure-aws-credentials
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 15:35:24 -05:00
dependabot[bot]
3a6fbb67a5 Bump actions/upload-artifact from 5.0.0 to 6.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](330a01c490...b7c566a772)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 15:35:15 -05:00
Owen
c7c70fa736 Merge branch 'jln-brtn-dev' into dev 2025-12-20 15:34:53 -05:00
Owen
eafcefbe45 Merge branch 'dev' of github.com:jln-brtn/pangolin into jln-brtn-dev 2025-12-20 15:34:32 -05:00
miloschwartz
8ed13b41d9 Merge branch 'dev' into cicd 2025-12-20 12:32:15 -05:00
Owen
b80757a129 Add blueprint validation 2025-12-20 12:16:31 -05:00
Owen
13ddf30781 Add hybrid route 2025-12-20 12:16:31 -05:00
Owen
4ecca88856 Add asn option to blueprint type 2025-12-20 12:16:31 -05:00
Thomas Wilde
4f154d212e Add ASN-based resource rule matching
- Add MaxMind ASN database integration
- Implement ASN lookup and matching in resource rule verification
- Add curated list of 100+ major ASNs (cloud, ISP, CDN, mobile carriers)
- Add ASN dropdown selector in resource rules UI with search functionality
- Support custom ASN input for unlisted ASNs
- Add 'ALL ASNs' special case handling (AS0)
- Cache ASN lookups with 5-minute TTL for performance
- Update validation schemas to support ASN match type

This allows administrators to create resource access rules based on
Autonomous System Numbers, similar to existing country-based rules.
Useful for restricting access by ISP, cloud provider, or mobile carrier.
2025-12-20 12:16:31 -05:00
dependabot[bot]
981d777a65 Bump the prod-patch-updates group across 1 directory with 6 updates
Bumps the prod-patch-updates group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components) | `1.0.1` | `1.0.2` |
| [@react-email/tailwind](https://github.com/resend/react-email/tree/HEAD/packages/tailwind) | `2.0.1` | `2.0.2` |
| [@tailwindcss/forms](https://github.com/tailwindlabs/tailwindcss-forms) | `0.5.10` | `0.5.11` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.45.0` | `0.45.1` |
| [eslint](https://github.com/eslint/eslint) | `9.39.1` | `9.39.2` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.17.2` | `5.17.4` |



Updates `@react-email/components` from 1.0.1 to 1.0.2
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/components/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@1.0.2/packages/components)

Updates `@react-email/tailwind` from 2.0.1 to 2.0.2
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/tailwind/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/tailwind@2.0.2/packages/tailwind)

Updates `@tailwindcss/forms` from 0.5.10 to 0.5.11
- [Release notes](https://github.com/tailwindlabs/tailwindcss-forms/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-forms/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.10...v0.5.11)

Updates `drizzle-orm` from 0.45.0 to 0.45.1
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.45.0...0.45.1)

Updates `eslint` from 9.39.1 to 9.39.2
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.39.1...v9.39.2)

Updates `posthog-node` from 5.17.2 to 5.17.4
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.17.4/packages/node)

---
updated-dependencies:
- dependency-name: "@react-email/components"
  dependency-version: 1.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@react-email/tailwind"
  dependency-version: 2.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@tailwindcss/forms"
  dependency-version: 0.5.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: drizzle-orm
  dependency-version: 0.45.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: eslint
  dependency-version: 9.39.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: posthog-node
  dependency-version: 5.17.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 12:16:31 -05:00
dependabot[bot]
dd13758085 Bump the dev-patch-updates group across 1 directory with 4 updates
Bumps the dev-patch-updates group with 4 updates in the / directory: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx), [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss), [esbuild](https://github.com/evanw/esbuild) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss).


Updates `@dotenvx/dotenvx` from 1.51.1 to 1.51.2
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.51.1...v1.51.2)

Updates `@tailwindcss/postcss` from 4.1.17 to 4.1.18
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.18/packages/@tailwindcss-postcss)

Updates `esbuild` from 0.27.1 to 0.27.2
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.1...v0.27.2)

Updates `tailwindcss` from 4.1.17 to 4.1.18
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.18/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.51.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.27.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 12:16:30 -05:00
dependabot[bot]
3d8153aeb1 Bump the prod-minor-updates group across 1 directory with 7 updates
Bumps the prod-minor-updates group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.948.0` | `3.955.0` |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.0.8` | `16.1.0` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.559.0` | `0.562.0` |
| [next-intl](https://github.com/amannn/next-intl) | `4.5.8` | `4.6.1` |
| [react-day-picker](https://github.com/gpbl/react-day-picker) | `9.12.0` | `9.13.0` |
| [stripe](https://github.com/stripe/stripe-node) | `20.0.0` | `20.1.0` |
| [zod](https://github.com/colinhacks/zod) | `4.1.13` | `4.2.1` |



Updates `@aws-sdk/client-s3` from 3.948.0 to 3.955.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.955.0/clients/client-s3)

Updates `eslint-config-next` from 16.0.8 to 16.1.0
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v16.1.0/packages/eslint-config-next)

Updates `lucide-react` from 0.559.0 to 0.562.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.562.0/packages/lucide-react)

Updates `next-intl` from 4.5.8 to 4.6.1
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.5.8...v4.6.1)

Updates `react-day-picker` from 9.12.0 to 9.13.0
- [Release notes](https://github.com/gpbl/react-day-picker/releases)
- [Changelog](https://github.com/gpbl/react-day-picker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gpbl/react-day-picker/compare/v9.12.0...v9.13.0)

Updates `stripe` from 20.0.0 to 20.1.0
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v20.0.0...v20.1.0)

Updates `zod` from 4.1.13 to 4.2.1
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](https://github.com/colinhacks/zod/compare/v4.1.13...v4.2.1)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.955.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint-config-next
  dependency-version: 16.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.562.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: next-intl
  dependency-version: 4.6.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-day-picker
  dependency-version: 9.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: stripe
  dependency-version: 20.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: zod
  dependency-version: 4.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 12:16:30 -05:00
Owen
ce3cb98422 Add blueprint validation 2025-12-20 12:16:00 -05:00
Owen
ae5bdcd88b Add hybrid route 2025-12-20 12:16:00 -05:00
Owen
428a76d742 Add asn option to blueprint type 2025-12-20 12:16:00 -05:00
Thomas Wilde
8d2955475b Add ASN-based resource rule matching
- Add MaxMind ASN database integration
- Implement ASN lookup and matching in resource rule verification
- Add curated list of 100+ major ASNs (cloud, ISP, CDN, mobile carriers)
- Add ASN dropdown selector in resource rules UI with search functionality
- Support custom ASN input for unlisted ASNs
- Add 'ALL ASNs' special case handling (AS0)
- Cache ASN lookups with 5-minute TTL for performance
- Update validation schemas to support ASN match type

This allows administrators to create resource access rules based on
Autonomous System Numbers, similar to existing country-based rules.
Useful for restricting access by ISP, cloud provider, or mobile carrier.
2025-12-20 12:16:00 -05:00
miloschwartz
9ffa391416 improve clean redirects 2025-12-20 12:00:58 -05:00
dependabot[bot]
1f4ebf1907 Bump the prod-patch-updates group across 1 directory with 6 updates
Bumps the prod-patch-updates group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components) | `1.0.1` | `1.0.2` |
| [@react-email/tailwind](https://github.com/resend/react-email/tree/HEAD/packages/tailwind) | `2.0.1` | `2.0.2` |
| [@tailwindcss/forms](https://github.com/tailwindlabs/tailwindcss-forms) | `0.5.10` | `0.5.11` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.45.0` | `0.45.1` |
| [eslint](https://github.com/eslint/eslint) | `9.39.1` | `9.39.2` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.17.2` | `5.17.4` |



Updates `@react-email/components` from 1.0.1 to 1.0.2
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/components/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@1.0.2/packages/components)

Updates `@react-email/tailwind` from 2.0.1 to 2.0.2
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/tailwind/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/tailwind@2.0.2/packages/tailwind)

Updates `@tailwindcss/forms` from 0.5.10 to 0.5.11
- [Release notes](https://github.com/tailwindlabs/tailwindcss-forms/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-forms/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.10...v0.5.11)

Updates `drizzle-orm` from 0.45.0 to 0.45.1
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.45.0...0.45.1)

Updates `eslint` from 9.39.1 to 9.39.2
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.39.1...v9.39.2)

Updates `posthog-node` from 5.17.2 to 5.17.4
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.17.4/packages/node)

---
updated-dependencies:
- dependency-name: "@react-email/components"
  dependency-version: 1.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@react-email/tailwind"
  dependency-version: 2.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@tailwindcss/forms"
  dependency-version: 0.5.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: drizzle-orm
  dependency-version: 0.45.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: eslint
  dependency-version: 9.39.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: posthog-node
  dependency-version: 5.17.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 11:56:46 -05:00
dependabot[bot]
4cb5c22268 Bump the dev-patch-updates group across 1 directory with 4 updates
Bumps the dev-patch-updates group with 4 updates in the / directory: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx), [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss), [esbuild](https://github.com/evanw/esbuild) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss).


Updates `@dotenvx/dotenvx` from 1.51.1 to 1.51.2
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.51.1...v1.51.2)

Updates `@tailwindcss/postcss` from 4.1.17 to 4.1.18
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.18/packages/@tailwindcss-postcss)

Updates `esbuild` from 0.27.1 to 0.27.2
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.1...v0.27.2)

Updates `tailwindcss` from 4.1.17 to 4.1.18
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.18/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.51.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.27.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 11:43:27 -05:00
dependabot[bot]
b7b65bb295 Bump the prod-minor-updates group across 1 directory with 7 updates
Bumps the prod-minor-updates group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.948.0` | `3.955.0` |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.0.8` | `16.1.0` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.559.0` | `0.562.0` |
| [next-intl](https://github.com/amannn/next-intl) | `4.5.8` | `4.6.1` |
| [react-day-picker](https://github.com/gpbl/react-day-picker) | `9.12.0` | `9.13.0` |
| [stripe](https://github.com/stripe/stripe-node) | `20.0.0` | `20.1.0` |
| [zod](https://github.com/colinhacks/zod) | `4.1.13` | `4.2.1` |



Updates `@aws-sdk/client-s3` from 3.948.0 to 3.955.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.955.0/clients/client-s3)

Updates `eslint-config-next` from 16.0.8 to 16.1.0
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v16.1.0/packages/eslint-config-next)

Updates `lucide-react` from 0.559.0 to 0.562.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.562.0/packages/lucide-react)

Updates `next-intl` from 4.5.8 to 4.6.1
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.5.8...v4.6.1)

Updates `react-day-picker` from 9.12.0 to 9.13.0
- [Release notes](https://github.com/gpbl/react-day-picker/releases)
- [Changelog](https://github.com/gpbl/react-day-picker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gpbl/react-day-picker/compare/v9.12.0...v9.13.0)

Updates `stripe` from 20.0.0 to 20.1.0
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v20.0.0...v20.1.0)

Updates `zod` from 4.1.13 to 4.2.1
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](https://github.com/colinhacks/zod/compare/v4.1.13...v4.2.1)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.955.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint-config-next
  dependency-version: 16.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.562.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: next-intl
  dependency-version: 4.6.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-day-picker
  dependency-version: 9.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: stripe
  dependency-version: 20.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: zod
  dependency-version: 4.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 11:43:06 -05:00
Owen
75b9703793 Seperate config gen into functions 2025-12-20 11:41:23 -05:00
miloschwartz
afc19f192b visual enhancements to sidebar 2025-12-19 21:57:44 -05:00
Fred KISSIE
e983e1166a 🚧 wip: approval tables in DB 2025-12-20 00:05:33 +01:00
miloschwartz
5587bd9d59 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-12-19 17:06:57 -05:00
miloschwartz
b5f8e8feb2 add org auth slug with device auth support 2025-12-19 17:04:37 -05:00
Owen
322f3bfb1d Add version and send it down 2025-12-19 16:44:57 -05:00
Jacky Fong
9bd66fa306 add back the blueprints api - draft 2025-12-19 15:01:33 -05:00
Owen
fea4d43920 Make utility subnet configurable 2025-12-19 14:45:00 -05:00
Fred KISSIE
009b86c33b Merge branch 'dev' into feat/device-approvals 2025-12-19 20:03:05 +01:00
miloschwartz
d414617f9d add color to product updates 2025-12-19 10:45:45 -05:00
miloschwartz
1d7e55bf98 add gradient to saas 2025-12-18 18:16:22 -05:00
miloschwartz
bc45e16109 improve local table state 2025-12-18 18:08:07 -05:00
Fred KISSIE
a5775a0f4f 🗃️ create approvals table 2025-12-19 00:00:10 +01:00
miloschwartz
4f1dc19569 sidebar enhancements 2025-12-18 17:54:29 -05:00
miloschwartz
1af938d7ea Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-12-18 17:47:59 -05:00
miloschwartz
fc924f707c add banners 2025-12-18 17:47:54 -05:00
Owen
6e7ba1dc52 Prevent overlapping resources with org subnets 2025-12-18 17:08:50 -05:00
Owen
3e01bfef7d Move primaryDb into driver 2025-12-18 17:08:50 -05:00
miloschwartz
d8b662496b Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-12-18 16:49:48 -05:00
miloschwartz
e0de003c2c Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-12-18 16:49:44 -05:00
miloschwartz
6e35c182b0 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-12-18 16:13:59 -05:00
miloschwartz
2479a3c53c improved private resource modal 2025-12-18 16:13:15 -05:00
Owen
6b609bb078 Force big queries onto primary db to prevent 40001 2025-12-18 16:03:15 -05:00
Owen
9c21e3da16 Merge branch 'main' into dev 2025-12-18 15:00:13 -05:00
Owen
7ccde11e3e Fix crowdsec healthcheck
Fixes #2118
2025-12-18 13:49:55 -05:00
miloschwartz
56b0185c8f visual adjustments 2025-12-18 10:58:16 -05:00
Milo Schwartz
8b47b2aabe Merge pull request #1989 from Fredkiss3/refactor/save-button-positions
refactor: save button positionning
2025-12-18 07:28:47 -08:00
miloschwartz
416fd914cb visual enhacements 2025-12-18 10:26:28 -05:00
depado
16653dd524 fix(database): filter dates evaluated at module load time 2025-12-18 10:06:31 -05:00
Fred KISSIE
e2d3d172af Merge branch 'dev' into refactor/save-button-positions 2025-12-18 04:39:17 +01:00
Fred KISSIE
137d6c2523 🏷️ fix typescript error 2025-12-18 04:36:09 +01:00
Fred KISSIE
1a976c78ef ♻️ separate org settings page into multiple forms 2025-12-18 04:27:24 +01:00
miloschwartz
e309a125f5 move blueprints on sidebar 2025-12-17 22:23:35 -05:00
Owen
2bdb1ddb6f Update lock 2025-12-17 22:14:57 -05:00
Owen
8ff588407c Fix various small issues; blueprints working 2025-12-17 22:12:16 -05:00
Owen
c2e06725a8 Keep the same site resource id 2025-12-17 22:12:16 -05:00
Owen
bb43e0c325 Handle changing site by recreating site resource 2025-12-17 22:12:16 -05:00
Owen
35ea01610a Update API routes and ui 2025-12-17 22:12:16 -05:00
miloschwartz
79eefc0ac7 blueprints enhancements 2025-12-17 22:05:36 -05:00
miloschwartz
3a781f9ac4 add contrast to sidebar 2025-12-17 21:28:46 -05:00
Owen
cc1e551f43 Fix deleting site not terminating newt 2025-12-17 21:23:25 -05:00
miloschwartz
68191d5921 fix refresh button doesnt work for users table 2025-12-17 21:19:50 -05:00
Fred KISSIE
2b3d065650 Merge branch 'dev' into refactor/save-button-positions 2025-12-18 01:46:13 +01:00
Fred KISSIE
7ae80d2cad ♻️ apply domain picker from dev 2025-12-18 00:20:19 +01:00
miloschwartz
acf08e3ef6 simplify idp create selector 2025-12-17 16:56:31 -05:00
miloschwartz
6f50fb8a4f remote node changes 2025-12-17 16:50:39 -05:00
miloschwartz
a5b203af27 add rotate server secret command 2025-12-17 16:23:11 -05:00
miloschwartz
443b53ee37 add clear exit nodes pangctl command 2025-12-17 16:01:55 -05:00
miloschwartz
e033c10021 simplify animation 2025-12-17 15:52:12 -05:00
miloschwartz
ad4c44c325 visual adjustments 2025-12-17 15:34:36 -05:00
miloschwartz
4aef7ca8d5 small branding fixes and adjustments 2025-12-17 15:02:39 -05:00
Owen
f892acbc4c Add tcp, udp ports, and icmp to blueprints 2025-12-17 11:58:45 -05:00
Milo Schwartz
9010ed6237 Merge pull request #1846 from Fredkiss3/feat/login-page-customization
feat: login page customization
2025-12-17 08:42:55 -08:00
miloschwartz
9f29657570 Merge branch 'dev' into feat/login-page-customization 2025-12-17 11:41:17 -05:00
Milo Schwartz
1b13132845 Merge pull request #2033 from buggystick/feature/oidc-email-error
Add OIDC authentication error response support
2025-12-17 08:21:06 -08:00
Milo Schwartz
553fda265c Merge branch 'dev' into feature/oidc-email-error 2025-12-17 08:20:40 -08:00
miloschwartz
0f79826535 fix useEffect re-render too many times 2025-12-17 11:18:30 -05:00
miloschwartz
14438bd2b4 remove desc text 2025-12-17 10:47:51 -05:00
Milo Schwartz
c4445c329f Merge pull request #2034 from Fredkiss3/refactor/domain-picker-default-value
refactor:  Update `<DomainPicker />` to accept default values
2025-12-17 07:40:46 -08:00
miloschwartz
5c032ee0c3 add larger header text 2025-12-17 10:34:49 -05:00
Fred KISSIE
d3d5a1c204 🚸 trigger null domain change if the user switches from another domain type to free domain option to prevent the modal from registering it as a valid value 2025-12-17 05:22:04 +01:00
miloschwartz
809bb4a7b4 adjustments to dialog spacing 2025-12-16 23:19:18 -05:00
miloschwartz
e8f763a77f fix broken link 2025-12-16 23:06:12 -05:00
Fred KISSIE
3ad4a76f03 ♻️ pass default subdomain value to org auth page settings 2025-12-17 05:05:30 +01:00
Fred KISSIE
b133593ea2 🚸 now the domain picker is deterministic 2025-12-17 04:57:16 +01:00
Owen
43fb06084f Alias should not get double regex 2025-12-16 21:54:14 -05:00
Owen
9de39dbe42 Support wildcard resources 2025-12-16 21:54:14 -05:00
Fred KISSIE
c98d61a8fb ♻️ pass default value to domain picker 2025-12-17 02:36:29 +01:00
Fred KISSIE
fccff9c23a Merge branch 'dev' into refactor/domain-picker-default-value 2025-12-17 00:52:32 +01:00
Fred KISSIE
e02fa7c148 ♻️ pass the default domainId instead of the base domain 2025-12-17 00:52:12 +01:00
Owen
a21029582e Always send the relay port config 2025-12-16 18:38:20 -05:00
Fred KISSIE
9ef7faace7 🚧 wip 2025-12-16 23:45:53 +01:00
Owen
3d5ae9dd5c Disable icmp packets over private resources 2025-12-16 17:20:18 -05:00
miloschwartz
6072ee93fa add remove invitation to integration api 2025-12-16 17:17:03 -05:00
Owen
7f7f6eeaea Check the postgres string first
Fixes #2092
2025-12-16 10:42:32 -05:00
Owen
1b4884afd8 Make sure to push changes 2025-12-15 22:13:56 -05:00
Owen
0c0ad7029f Batch and delay for large amounts of targets 2025-12-15 22:13:56 -05:00
Owen
10f1437496 Small visual adjustments 2025-12-15 22:13:56 -05:00
Owen
c44c1a5518 Add UI, update API, send to newt 2025-12-15 22:13:56 -05:00
Owen Schwartz
48110ccda3 Merge pull request #2080 from water-sucks/server-setup-token-env-var
feat(setup): allow declaring a server setup token through env variable
2025-12-15 21:04:05 -05:00
Varun Narravula
e94f21bc05 ci: parallelize test workflow 2025-12-15 21:03:47 -05:00
Owen Schwartz
65f8a414be Merge pull request #2084 from water-sucks/parallelize-test-ci-workflow
ci: parallelize test workflow
2025-12-15 20:57:48 -05:00
Fred KISSIE
8dad38775c 🐛 use /resource instead of /site-resource 2025-12-16 01:53:20 +01:00
Fred KISSIE
0d14cb853e ♻️ invalidate everything & fix use effect condition 2025-12-16 01:53:06 +01:00
Fred KISSIE
778e6bf623 💄 lower margin y 2025-12-16 00:27:24 +01:00
miloschwartz
5a960649db fix generate password reset code only shows for non internal users 2025-12-15 18:06:29 -05:00
Fred KISSIE
23a7688789 💄 more margin top 2025-12-15 23:51:06 +01:00
Owen
0e3b6b90b7 Send reply to email in support requests 2025-12-15 17:43:45 -05:00
Fred KISSIE
872bb557c2 💄 put save org settings button into the form 2025-12-15 23:36:13 +01:00
Fred KISSIE
9125a7bccb 🚧 org settings form 2025-12-15 23:18:28 +01:00
Fred KISSIE
5a0a8893e8 Merge branch 'dev' into refactor/save-button-positions 2025-12-15 17:04:58 +01:00
Varun Narravula
abe76e5002 ci: parallelize test workflow 2025-12-15 05:30:43 -08:00
Varun Narravula
474b9a685d feat(setup): allow declaring a server setup token through env variable 2025-12-14 16:24:17 -08:00
Owen
97631c068c Clean key
Ref #1806
2025-12-14 15:58:29 -05:00
Owen Schwartz
98c77ad7e2 Update README.md 2025-12-14 03:09:45 -05:00
Owen Schwartz
3915df3200 Merge pull request #2068 from mgruszkiewicz/fix-missing-gpg-in-installer
Fix: Add missing gnupg utility during Docker installation
2025-12-13 14:28:04 -05:00
Mateusz Gruszkiewicz
9b98acb553 fix missing gpg dependency which is preventing docker from installing correctly 2025-12-13 19:27:15 +01:00
Owen
a767a31c21 Quiet log message 2025-12-13 12:28:44 -05:00
Owen
f2d4c2f83c Remove duplicate target 2025-12-13 12:16:11 -05:00
Owen
25fed23758 Speed up build 2025-12-13 12:13:33 -05:00
Owen Schwartz
5cb3fa1127 Merge pull request #2066 from fosrl/dev
Dev
2025-12-13 12:09:22 -05:00
Owen
deac26bad2 Bump version 2025-12-13 12:07:35 -05:00
miloschwartz
c7747fd4b4 add license watermark 2025-12-13 11:45:15 -05:00
Owen
1aaad43871 Format 2025-12-13 11:36:53 -05:00
Owen
143175bde7 Update react-dom 2025-12-13 11:34:58 -05:00
Owen
9f55d6b20a Try to fix issue not sending newt commands 2025-12-13 11:19:42 -05:00
miloschwartz
4366ca5836 add spacing to delete modal 2025-12-13 10:57:24 -05:00
miloschwartz
9cb95576d0 Merge branch 'dev' into cicd 2025-12-12 23:08:06 -05:00
miloschwartz
d5307adef0 fix bug preventing save resource priority closes #2063 2025-12-12 22:52:00 -05:00
miloschwartz
3d857c3b52 fix client side pagination issue 2025-12-12 22:41:10 -05:00
Owen
a012369f83 Make sure to always check retention first
Fixes #2061
2025-12-12 18:39:13 -05:00
Fred KISSIE
9cee3d9c79 ♻️ refactor 2025-12-12 23:35:24 +01:00
Fred KISSIE
8257dca340 ♻️ refactor 2025-12-12 23:34:35 +01:00
Fred KISSIE
5e0a1cf9c5 💡remove comment 2025-12-12 22:09:37 +01:00
miloschwartz
b3ec9dfda2 split builds based on arch 2025-12-12 15:56:42 -05:00
Fred KISSIE
93d4f60314 ♻️correctly init the form 2025-12-12 21:55:23 +01:00
Fred KISSIE
769d20cea1 Merge branch 'dev' into refactor/save-button-positions 2025-12-12 21:42:06 +01:00
Fred KISSIE
124ba208de ♻️ use react querty 2025-12-12 21:40:49 +01:00
Owen
ba99614d58 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-12 14:54:59 -05:00
Owen
27db77bca4 Format 2025-12-12 14:53:26 -05:00
miloschwartz
29b924230f add runner restart action 2025-12-12 14:48:49 -05:00
Owen
8eb3f6aacc Bump next and react again
CVE-2025-55184 and CVE-2025-67779
2025-12-12 09:55:52 -05:00
Fred KISSIE
7f07ccea44 Merge branch 'dev' into refactor/save-button-positions 2025-12-12 00:32:02 +01:00
Fred KISSIE
c13bfc709f Merge branch 'dev' into refactor/save-button-positions 2025-12-11 23:35:00 +01:00
Fred KISSIE
6fc54bcc9e ♻️ set default value on domain picker modal in proxy resource page 2025-12-11 22:51:02 +01:00
Owen
5d6ee45125 Merge branch 'dev' 2025-12-11 16:49:40 -05:00
Owen Schwartz
fceaedfcd8 Merge pull request #2045 from Fredkiss3/fix/update-full-domain-on-resource-page
fix: full domain should be updated when the form is saved on resource proxy page
2025-12-11 16:49:22 -05:00
Fred KISSIE
181612ce25 🐛 full domain should be updated when the form is saved 2025-12-11 22:26:38 +01:00
Owen
224b78fc64 Update consts 2025-12-11 16:13:33 -05:00
Owen
757e540be6 Merge branch 'main' into dev 2025-12-11 16:12:08 -05:00
Milo Schwartz
bf1675686c Update README.md 2025-12-11 15:44:47 -05:00
miloschwartz
f81909489a add client telmetry and fix missing openapi on prefault 2025-12-11 10:38:48 -05:00
miloschwartz
963468d7fa remove top border from dialog 2025-12-11 10:17:17 -05:00
miloschwartz
f67f4f8834 update screenshots and readme 2025-12-10 21:13:09 -05:00
Owen
4c819d264b Only permit ipv4 for now 2025-12-10 20:40:22 -05:00
Owen Schwartz
cbcb23ccea Merge pull request #2036 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-316ddb12fb
Bump @types/pg from 8.15.6 to 8.16.0 in the dev-minor-updates group
2025-12-10 20:35:49 -05:00
Owen Schwartz
d8b27de5ac Merge pull request #2038 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-0a59212de9
Bump the prod-minor-updates group across 1 directory with 4 updates
2025-12-10 20:35:43 -05:00
Owen
01f7842fd5 Fix function rename issue 2025-12-10 20:34:40 -05:00
Owen Schwartz
d409e58186 Merge pull request #2020 from Fredkiss3/fix/log-analytics-adjustments
refactor: adjustments for logs pages
2025-12-10 20:33:12 -05:00
Owen Schwartz
c9e1c4da1c Merge pull request #2026 from fosrl/crowdin_dev
New Crowdin updates
2025-12-10 20:25:31 -05:00
dependabot[bot]
9c38f65ad4 Bump the prod-minor-updates group across 1 directory with 4 updates
Bumps the prod-minor-updates group with 4 updates in the / directory: [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3), [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react), [npm](https://github.com/npm/cli) and [resend](https://github.com/resend/resend-node).


Updates `@aws-sdk/client-s3` from 3.947.0 to 3.948.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.948.0/clients/client-s3)

Updates `lucide-react` from 0.556.0 to 0.559.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.559.0/packages/lucide-react)

Updates `npm` from 11.6.4 to 11.7.0
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v11.6.4...v11.7.0)

Updates `resend` from 6.5.2 to 6.6.0
- [Release notes](https://github.com/resend/resend-node/releases)
- [Commits](https://github.com/resend/resend-node/compare/v6.5.2...v6.6.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.948.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.559.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: npm
  dependency-version: 11.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: resend
  dependency-version: 6.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 01:21:19 +00:00
dependabot[bot]
2316462721 Bump @types/pg from 8.15.6 to 8.16.0 in the dev-minor-updates group
Bumps the dev-minor-updates group with 1 update: [@types/pg](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pg).


Updates `@types/pg` from 8.15.6 to 8.16.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/pg)

---
updated-dependencies:
- dependency-name: "@types/pg"
  dependency-version: 8.16.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 01:19:20 +00:00
Owen Schwartz
7cc990107a Merge pull request #2035 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-3ea7ca757b
Bump react-email from 5.0.6 to 5.0.7 in the dev-patch-updates group
2025-12-10 20:19:00 -05:00
dependabot[bot]
9917a569ac Bump react-email from 5.0.6 to 5.0.7 in the dev-patch-updates group
Bumps the dev-patch-updates group with 1 update: [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email).


Updates `react-email` from 5.0.6 to 5.0.7
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@5.0.7/packages/react-email)

---
updated-dependencies:
- dependency-name: react-email
  dependency-version: 5.0.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 01:18:06 +00:00
Fred KISSIE
aab0471b6b 🏷️ fix typescript errors 2025-12-10 21:26:55 +01:00
Fred KISSIE
de684b212f 🔇 remove console.log 2025-12-10 21:26:46 +01:00
Fred KISSIE
fbd3802e46 ♻️ Update domain picker component to accept default values 2025-12-10 21:17:00 +01:00
Fred KISSIE
4e842a660a 🚧 wip: refactor proxy resource page 2025-12-10 21:15:42 +01:00
Fred KISSIE
ce6b609ca2 ♻️ Update domain picker component to accept default values 2025-12-10 21:15:26 +01:00
David Reed
78369b6f6a Add OIDC authentication error response support 2025-12-10 11:13:04 -08:00
Fred KISSIE
ea43bf97c7 Merge branch 'dev' into refactor/save-button-positions 2025-12-10 20:04:59 +01:00
Owen
c56574e431 Send site add in case the client does not have the site 2025-12-10 11:57:45 -05:00
Fred KISSIE
f9c0e0ec3d 💬 updated text 2025-12-10 03:56:08 +01:00
Fred KISSIE
85986dcccb Merge branch 'dev' into fix/log-analytics-adjustments 2025-12-10 03:49:40 +01:00
Fred KISSIE
c9779254c3 💄add time range tooltip to explain it better 2025-12-10 03:44:46 +01:00
Fred KISSIE
5b620469c7 ♻️ set export logs limits to 50 000 everywhere 2025-12-10 03:42:53 +01:00
Fred KISSIE
df4b9de334 🚧 wip: export limits 2025-12-10 03:24:32 +01:00
Fred KISSIE
d490cab48c Merge dev into fix/log-analytics-adjustments 2025-12-10 03:19:14 +01:00
miloschwartz
b68c0962c6 visual enhancements 2025-12-09 20:58:45 -05:00
Owen
ee2a438602 Merge branch 'main' into dev 2025-12-09 16:26:21 -05:00
Owen
74dd3fdc9f Update packages 2025-12-09 16:18:20 -05:00
Owen
314da3ee3e Update formatting to work with ipv6 2025-12-09 16:11:12 -05:00
Owen Schwartz
68cfc84249 New translations en-us.json (German) 2025-12-09 14:09:22 -05:00
Owen
0bcf5c2b42 Update packages 2025-12-09 12:09:23 -05:00
Owen
9210e005e9 Merge branch 'main' into dev 2025-12-09 12:08:32 -05:00
Owen
f245632371 Fix expires at not updating 2025-12-09 11:50:48 -05:00
miloschwartz
6453b070bb add more resiliency to the license check 2025-12-09 11:26:11 -05:00
Owen Schwartz
8c4db93a93 Merge pull request #2024 from fosrl/dependabot/npm_and_yarn/multi-1eaea4558a
Bump next and @react-email/preview-server
2025-12-09 10:57:54 -05:00
Owen
f9b03943c3 Format all files 2025-12-09 10:56:14 -05:00
Owen
fa839a811f Merge branch 'Fredkiss3-chore/some-dx-changes' into dev 2025-12-09 10:54:35 -05:00
Owen
88d2c2eac8 Merge branch 'chore/some-dx-changes' of github.com:Fredkiss3/pangolin into Fredkiss3-chore/some-dx-changes 2025-12-09 10:54:28 -05:00
dependabot[bot]
c84cc1815b Bump next and @react-email/preview-server
Bumps [next](https://github.com/vercel/next.js) to 15.5.7 and updates ancestor dependency [@react-email/preview-server](https://github.com/resend/react-email/tree/HEAD/packages/preview-server). These dependencies need to be updated together.


Updates `next` from 15.5.2 to 15.5.7
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.5.2...v15.5.7)

Updates `@react-email/preview-server` from 4.3.2 to 5.0.6
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/preview-server/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/preview-server@5.0.6/packages/preview-server)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.5.7
  dependency-type: indirect
- dependency-name: "@react-email/preview-server"
  dependency-version: 5.0.6
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 15:50:48 +00:00
Owen
2c23ffd178 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-09 10:50:33 -05:00
Owen Schwartz
da3f7ae404 Merge pull request #2018 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-a5bcaae1b2
Bump the prod-minor-updates group across 1 directory with 4 updates
2025-12-09 10:49:02 -05:00
Owen Schwartz
f460559a4b Merge pull request #2021 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-cd2d8c1767
Bump @types/node from 24.10.1 to 24.10.2 in the dev-patch-updates group
2025-12-09 10:48:10 -05:00
Owen Schwartz
0c9deeb2d7 Merge pull request #2022 from fosrl/dependabot/go_modules/install/prod-minor-updates-f9eb33633d
Bump golang.org/x/term from 0.37.0 to 0.38.0 in /install in the prod-minor-updates group
2025-12-09 10:48:02 -05:00
Owen Schwartz
1289b99f14 Merge pull request #2009 from fosrl/dependabot/npm_and_yarn/stripe-20.0.0
Bump stripe from 18.2.1 to 20.0.0
2025-12-09 10:47:54 -05:00
Owen Schwartz
1a7a6e5b6f Merge pull request #2007 from fosrl/dependabot/npm_and_yarn/react-email/render-2.0.0
Bump @react-email/render from 1.4.0 to 2.0.0
2025-12-09 10:47:00 -05:00
Owen Schwartz
f56135eed3 Merge pull request #2011 from Lokowitz/fix-dev
Update packages
2025-12-09 10:46:32 -05:00
Owen
23e9a61f3e Fixing various bugs 2025-12-09 10:31:43 -05:00
Lokowitz
5428ad1009 merge upstream 2025-12-09 11:40:57 +00:00
Lokowitz
bba28bc5f2 Merge remote-tracking branch 'upstream/dev' into fix-dev 2025-12-09 11:40:04 +00:00
Owen
18498a32ce Quite log messages 2025-12-08 22:07:17 -05:00
Owen
887af85db1 Fix removing remote subnet on remove site resource 2025-12-08 22:06:37 -05:00
Owen
a306aa971b Pick client endpoint as part of the transation 2025-12-08 21:37:17 -05:00
Owen
0a9b19ecfc Try to fix deadlocks again
Fixes FOU-284
2025-12-08 21:26:23 -05:00
Owen
e011580b96 Update and add server version 2025-12-08 21:26:23 -05:00
miloschwartz
048ce850a8 get coutry using maxmind and clear stale device codes 2025-12-08 21:12:19 -05:00
dependabot[bot]
2ca1f15add Bump the prod-minor-updates group across 1 directory with 4 updates
Bumps the prod-minor-updates group with 4 updates in the / directory: [@asteasolutions/zod-to-openapi](https://github.com/asteasolutions/zod-to-openapi), [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3), [react-day-picker](https://github.com/gpbl/react-day-picker) and [winston](https://github.com/winstonjs/winston).


Updates `@asteasolutions/zod-to-openapi` from 8.1.0 to 8.2.0
- [Release notes](https://github.com/asteasolutions/zod-to-openapi/releases)
- [Commits](https://github.com/asteasolutions/zod-to-openapi/compare/v8.1.0...v8.2.0)

Updates `@aws-sdk/client-s3` from 3.943.0 to 3.946.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.946.0/clients/client-s3)

Updates `react-day-picker` from 9.11.3 to 9.12.0
- [Release notes](https://github.com/gpbl/react-day-picker/releases)
- [Changelog](https://github.com/gpbl/react-day-picker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gpbl/react-day-picker/compare/v9.11.3...v9.12.0)

Updates `winston` from 3.18.3 to 3.19.0
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.18.3...v3.19.0)

---
updated-dependencies:
- dependency-name: "@asteasolutions/zod-to-openapi"
  dependency-version: 8.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.946.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-day-picker
  dependency-version: 9.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: winston
  dependency-version: 3.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 01:23:08 +00:00
dependabot[bot]
05ebd547b5 Bump golang.org/x/term in /install in the prod-minor-updates group
Bumps the prod-minor-updates group in /install with 1 update: [golang.org/x/term](https://github.com/golang/term).


Updates `golang.org/x/term` from 0.37.0 to 0.38.0
- [Commits](https://github.com/golang/term/compare/v0.37.0...v0.38.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-version: 0.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 01:21:11 +00:00
dependabot[bot]
5a8b1383a4 Bump @types/node from 24.10.1 to 24.10.2 in the dev-patch-updates group
Bumps the dev-patch-updates group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/node` from 24.10.1 to 24.10.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 01:20:03 +00:00
miloschwartz
ede51bebb5 use semver to compare versions in product updates 2025-12-08 19:51:32 -05:00
Owen Schwartz
fd29071d57 Merge pull request #2004 from fosrl/dependabot/github_actions/actions/checkout-6.0.1
Bump actions/checkout from 6.0.0 to 6.0.1
2025-12-08 19:48:01 -05:00
Owen Schwartz
8e1af79dc4 Merge pull request #2003 from fosrl/dependabot/github_actions/actions/setup-node-6.1.0
Bump actions/setup-node from 6.0.0 to 6.1.0
2025-12-08 19:47:48 -05:00
Owen Schwartz
dc8c28626d Merge pull request #2002 from fosrl/dependabot/github_actions/actions/stale-10.1.1
Bump actions/stale from 10.1.0 to 10.1.1
2025-12-08 19:47:40 -05:00
Fred KISSIE
9db2feff77 ♻️ set default time to 7 days ago in API too 2025-12-09 00:17:34 +01:00
Fred KISSIE
adf76bfb53 ♻️ set default start time to 7 days ago 2025-12-08 23:56:28 +01:00
Fred KISSIE
e0a79b7d4d ♻️ set default log analytics time range to. 7days ago 2025-12-08 22:57:05 +01:00
Owen
b63a8fd3ed Merge branch 'dev' 2025-12-08 15:16:12 -05:00
Owen
ada3c6f2ef Update and add server version 2025-12-08 15:16:05 -05:00
Owen
aafca7694d Update and add server version 2025-12-08 15:15:42 -05:00
dependabot[bot]
9ea3914a93 Bump @react-email/render from 1.4.0 to 2.0.0
Bumps [@react-email/render](https://github.com/resend/react-email/tree/HEAD/packages/render) from 1.4.0 to 2.0.0.
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/render/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/render@2.0.0/packages/render)

---
updated-dependencies:
- dependency-name: "@react-email/render"
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 19:13:04 +00:00
miloschwartz
4345669793 remove file 2025-12-08 14:12:46 -05:00
miloschwartz
1aeb31be04 remove file 2025-12-08 14:12:10 -05:00
Milo Schwartz
66cae9802d Merge pull request #2017 from fosrl/dev
1.13.0-rc.0
2025-12-08 11:10:36 -08:00
Fred KISSIE
64120ea878 🔨Add format script and install prettier 2025-12-08 19:57:08 +01:00
Fred KISSIE
0003ec021b 🔨add default vscode options for new contributors 2025-12-08 19:56:53 +01:00
Owen Schwartz
2325e30f26 Merge pull request #2015 from fosrl/crowdin_dev
New Crowdin updates
2025-12-08 11:57:17 -05:00
Owen Schwartz
d1c98cf650 New translations en-us.json (Norwegian Bokmal) 2025-12-08 11:56:43 -05:00
Owen Schwartz
d06cd9b5be New translations en-us.json (Chinese Simplified) 2025-12-08 11:56:42 -05:00
Owen Schwartz
2eb440d019 New translations en-us.json (Turkish) 2025-12-08 11:56:40 -05:00
Owen Schwartz
4084c85c00 New translations en-us.json (Russian) 2025-12-08 11:56:39 -05:00
Owen Schwartz
4fee65e5a4 New translations en-us.json (Portuguese) 2025-12-08 11:56:37 -05:00
Owen Schwartz
17ee51249c New translations en-us.json (Polish) 2025-12-08 11:56:36 -05:00
Owen Schwartz
f239c4370e New translations en-us.json (Dutch) 2025-12-08 11:56:34 -05:00
Owen Schwartz
c2a32a50cd New translations en-us.json (Korean) 2025-12-08 11:56:32 -05:00
Owen Schwartz
7229bfa51b New translations en-us.json (Italian) 2025-12-08 11:56:31 -05:00
Owen Schwartz
080e2f0a3a New translations en-us.json (German) 2025-12-08 11:56:28 -05:00
Owen Schwartz
64e5cc172d New translations en-us.json (Czech) 2025-12-08 11:56:27 -05:00
Owen Schwartz
c51a1c9c4d New translations en-us.json (Bulgarian) 2025-12-08 11:56:25 -05:00
Owen Schwartz
79958be380 New translations en-us.json (Spanish) 2025-12-08 11:56:22 -05:00
Owen Schwartz
05daedc6ad New translations en-us.json (French) 2025-12-08 11:56:21 -05:00
miloschwartz
0234234108 fix settings footer buttons break point on mobile 2025-12-08 10:38:29 -05:00
miloschwartz
f9b15b9156 add color to health check 2025-12-08 10:31:53 -05:00
miloschwartz
37830d211d use static.pangolin.net 2025-12-08 10:23:11 -05:00
Lokowitz
c9a1da210f revert my fix 2025-12-08 08:27:05 +00:00
Lokowitz
ace402af2d update packages 2025-12-08 08:23:32 +00:00
Lokowitz
e60dce25c9 Merge remote-tracking branch 'upstream/dev' into fix-dev
merge dev
2025-12-08 08:21:19 +00:00
Owen
24cdac95cd Fix not rebuilding site resources from blueprint 2025-12-07 22:13:26 -05:00
Owen
e10f7efcbe Fix blueprints zod update 2025-12-07 22:00:55 -05:00
Owen
1d7f4322e3 Migrations working 2025-12-07 21:14:36 -05:00
dependabot[bot]
ccfff030e5 Bump stripe from 18.2.1 to 20.0.0
Bumps [stripe](https://github.com/stripe/stripe-node) from 18.2.1 to 20.0.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v18.2.1...v20.0.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-version: 20.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 01:25:10 +00:00
dependabot[bot]
00765c1faf Bump actions/checkout from 6.0.0 to 6.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](1af3b93b68...8e8c483db8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 01:16:59 +00:00
dependabot[bot]
f6bbdeadb9 Bump actions/setup-node from 6.0.0 to 6.1.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](2028fbc5c2...395ad32622)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 01:16:53 +00:00
dependabot[bot]
9cf520574a Bump actions/stale from 10.1.0 to 10.1.1
Bumps [actions/stale](https://github.com/actions/stale) from 10.1.0 to 10.1.1.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](5f858e3efb...997185467f)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 01:16:48 +00:00
Owen
e8f10b049e Generate resources for remote subnets 2025-12-07 20:04:30 -05:00
Owen
a3ba4fff54 Bump version to 1.13.0-rc.0 2025-12-07 17:57:22 -05:00
miloschwartz
eecfcd640c add pg and modify sqlite 2025-12-07 15:30:10 -05:00
Owen
40c38fa070 Clear the associations first 2025-12-07 15:19:40 -05:00
Owen
042c88ccb8 Calc session id correctly 2025-12-07 15:01:18 -05:00
Owen
5a60f66ae0 Update sqlite migration to update caches 2025-12-07 14:47:20 -05:00
Owen
4d665e8596 Try to fix the expires at problem 2025-12-07 14:30:06 -05:00
miloschwartz
9221bcf889 add disconnect button to clients 2025-12-07 13:50:05 -05:00
miloschwartz
2418813902 add sqlite migration 2025-12-07 12:58:01 -05:00
miloschwartz
f66a9bdd33 only show updates number if more than one 2025-12-07 11:47:19 -05:00
miloschwartz
bc7a1f4673 change translation 2025-12-07 11:45:58 -05:00
miloschwartz
9010803046 fix verifySiteAccess middleware 2025-12-07 11:40:06 -05:00
miloschwartz
311233b9f7 update remote node version col 2025-12-07 11:13:43 -05:00
miloschwartz
38203a0e7c adjustments to update notification 2025-12-07 11:10:44 -05:00
Owen
5e9d660e26 We need to generate a niceId every time we make a client 2025-12-07 11:07:08 -05:00
Owen
110e950476 Send site name 2025-12-07 10:51:38 -05:00
Lokowitz
f8ab5b7af7 update packages 2025-12-07 14:03:34 +00:00
Owen
4e7843c1f3 Fix null subdomain causing overwriting
Fixes #1645
2025-12-06 21:59:03 -05:00
miloschwartz
502d15b9dc fix newt version styling 2025-12-06 21:39:58 -05:00
Owen
71db29c09c Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-06 21:37:24 -05:00
Owen
8cced5011b Fix empty strip preventing create 2025-12-06 21:37:10 -05:00
Owen
a812dde026 Update lock 2025-12-06 21:37:05 -05:00
Owen Schwartz
58374f77c9 Merge pull request #1996 from fosrl/crowdin_dev
New Crowdin updates
2025-12-06 21:35:43 -05:00
miloschwartz
8df3fa0ac0 make product update text a more readable 2025-12-06 21:31:12 -05:00
Owen Schwartz
840e9914cb New translations en-us.json (Norwegian Bokmal) 2025-12-06 21:30:08 -05:00
Owen Schwartz
f30a4f3cfd New translations en-us.json (Chinese Simplified) 2025-12-06 21:30:07 -05:00
Owen Schwartz
27004f9d0c New translations en-us.json (Turkish) 2025-12-06 21:30:05 -05:00
Owen Schwartz
427638ed3d New translations en-us.json (Russian) 2025-12-06 21:30:04 -05:00
Owen Schwartz
350379b0c7 New translations en-us.json (Portuguese) 2025-12-06 21:30:03 -05:00
Owen Schwartz
cf80c9d45c New translations en-us.json (Polish) 2025-12-06 21:30:02 -05:00
Owen Schwartz
2d801b8ea5 New translations en-us.json (Dutch) 2025-12-06 21:30:00 -05:00
Owen Schwartz
f82d01d39b New translations en-us.json (Korean) 2025-12-06 21:29:59 -05:00
Owen Schwartz
e959ce1698 New translations en-us.json (Italian) 2025-12-06 21:29:58 -05:00
Owen Schwartz
25e176e8d5 New translations en-us.json (German) 2025-12-06 21:29:57 -05:00
Owen Schwartz
8df01eb13a New translations en-us.json (Czech) 2025-12-06 21:29:55 -05:00
Owen Schwartz
8d87f31bec New translations en-us.json (Bulgarian) 2025-12-06 21:29:54 -05:00
Owen Schwartz
2b3594a5ea New translations en-us.json (Spanish) 2025-12-06 21:29:52 -05:00
Owen Schwartz
72b7c8de0c New translations en-us.json (French) 2025-12-06 21:29:51 -05:00
miloschwartz
b329dbb585 add agent to table 2025-12-06 21:21:39 -05:00
miloschwartz
56d30ad6bd clean up targets input a little 2025-12-06 21:00:57 -05:00
Owen
e24a13fb11 Implement previous year delete 2025-12-06 20:49:53 -05:00
miloschwartz
d7e06161a8 use niceId for client routes 2025-12-06 20:31:20 -05:00
Owen
8a8c0edad3 Speed up writing to not block io operations 2025-12-06 17:54:39 -05:00
Owen
66fc8529c2 Update blueprints to support new clients 2025-12-06 17:32:49 -05:00
Owen
0beaadf512 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-06 17:24:16 -05:00
Owen
58177f4a02 Add niceid 2025-12-06 17:24:00 -05:00
miloschwartz
28725dd164 update logging 2025-12-06 16:18:44 -05:00
miloschwartz
1714140ee7 fix branding favicon and subtitle texts 2025-12-06 16:16:42 -05:00
Owen
6329c3d140 Merge branch 'main' into dev 2025-12-06 16:11:28 -05:00
Owen Schwartz
44113ad93a Merge pull request #1995 from fosrl/copilot/fix-crowdsec-setup-token
Fix: Display setup token after CrowdSec installation
2025-12-06 16:10:20 -05:00
Owen
ee1af459cc Add default to path for hc
Fixes #1905
2025-12-06 16:07:47 -05:00
copilot-swe-agent[bot]
69561caa74 Fix setup token display condition to include CrowdSec installation
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-12-06 20:57:57 +00:00
Owen Schwartz
6f03d099b8 New translations en-us.json (Norwegian Bokmal) 2025-12-06 15:43:29 -05:00
Owen Schwartz
1581b5cb74 New translations en-us.json (Chinese Simplified) 2025-12-06 15:43:28 -05:00
Owen Schwartz
e09ec56fad New translations en-us.json (Turkish) 2025-12-06 15:43:26 -05:00
Owen Schwartz
8bcad76eb5 New translations en-us.json (Russian) 2025-12-06 15:43:25 -05:00
Owen Schwartz
ff4a6b1d3f New translations en-us.json (Portuguese) 2025-12-06 15:43:24 -05:00
Owen Schwartz
07b04b2603 New translations en-us.json (Polish) 2025-12-06 15:43:23 -05:00
Owen Schwartz
54471c703c New translations en-us.json (Dutch) 2025-12-06 15:43:21 -05:00
Owen Schwartz
8a160ec0fe New translations en-us.json (Korean) 2025-12-06 15:43:20 -05:00
Owen Schwartz
15da2f130b New translations en-us.json (Italian) 2025-12-06 15:43:19 -05:00
Owen Schwartz
d64d2d6916 New translations en-us.json (German) 2025-12-06 15:43:18 -05:00
Owen Schwartz
68928843a5 New translations en-us.json (Czech) 2025-12-06 15:43:16 -05:00
Owen Schwartz
1228fddb01 New translations en-us.json (Bulgarian) 2025-12-06 15:43:15 -05:00
Owen Schwartz
3fa0b01c41 New translations en-us.json (Spanish) 2025-12-06 15:43:14 -05:00
Owen Schwartz
a4884f90a9 New translations en-us.json (French) 2025-12-06 15:43:12 -05:00
copilot-swe-agent[bot]
d7311ad947 Add setup token printing after CrowdSec installation
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-12-06 20:38:40 +00:00
copilot-swe-agent[bot]
1aa155a0af Initial plan 2025-12-06 20:35:40 +00:00
Owen Schwartz
4f1c207083 Merge pull request #1993 from fosrl/copilot/fix-install-script-no-reply-email
Make no-reply email address required in install script
2025-12-06 15:21:18 -05:00
Owen
dc6ee70eba Update lock, downgrade to node 24 2025-12-06 15:12:58 -05:00
miloschwartz
0f9f4dfaeb fix orgs query 2025-12-06 13:21:58 -05:00
miloschwartz
22941c0653 show credentials tab in oss 2025-12-06 13:11:53 -05:00
miloschwartz
d714f7d52c remove old component 2025-12-06 12:51:57 -05:00
Milo Schwartz
4f2dd92e81 Merge pull request #1988 from Fredkiss3/refactor/show-product-updates-conditionnally
refactor: Only show the product updates to an org admin or owner
2025-12-06 09:39:48 -08:00
Milo Schwartz
090706c816 Merge branch 'dev' into refactor/show-product-updates-conditionnally 2025-12-06 09:38:39 -08:00
miloschwartz
f449fdc7ec add optial disconnect on regenerate credentials 2025-12-06 12:36:31 -05:00
copilot-swe-agent[bot]
394d1503dd Make no-reply email address required when email is enabled
- Added helpful hint in prompt suggesting to use SMTP username
- Added validation to ensure no-reply email is not empty when email is enabled
- Applied gofmt formatting improvements

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-12-06 17:35:11 +00:00
copilot-swe-agent[bot]
60380b70ed Initial plan 2025-12-06 17:27:20 +00:00
Owen Schwartz
cece7a59bf Merge pull request #1992 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-affb329a3f
Bump the prod-patch-updates group across 1 directory with 5 updates
2025-12-06 12:17:04 -05:00
miloschwartz
00174be8c0 show id in credential regen 2025-12-06 12:07:43 -05:00
miloschwartz
1d303feca2 restyle client regen credentials 2025-12-06 11:47:58 -05:00
Owen
3f4fae8f09 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-06 11:46:18 -05:00
Owen
dab795e94a Merge branch 'main' into dev 2025-12-06 11:45:46 -05:00
miloschwartz
bd2165c553 prevent modal flash 2025-12-06 11:44:47 -05:00
miloschwartz
646497cda0 improve site regenerate cred ui 2025-12-06 11:40:28 -05:00
Owen Schwartz
dbc046397b Merge pull request #1949 from marcschaeferger-org/fix-security/other
Fix multiple reported Security Issues
2025-12-06 11:24:01 -05:00
dependabot[bot]
fbafb48562 Bump the prod-patch-updates group across 1 directory with 5 updates
Bumps the prod-patch-updates group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.0.3` | `16.0.7` |
| [http-errors](https://github.com/jshttp/http-errors) | `2.0.0` | `2.0.1` |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.0` | `19.2.1` |
| [react-day-picker](https://github.com/gpbl/react-day-picker) | `9.11.1` | `9.11.3` |
| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.0` | `19.2.1` |



Updates `eslint-config-next` from 16.0.3 to 16.0.7
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v16.0.7/packages/eslint-config-next)

Updates `http-errors` from 2.0.0 to 2.0.1
- [Release notes](https://github.com/jshttp/http-errors/releases)
- [Changelog](https://github.com/jshttp/http-errors/blob/master/HISTORY.md)
- [Commits](https://github.com/jshttp/http-errors/compare/v2.0.0...v2.0.1)

Updates `react` from 19.2.0 to 19.2.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.1/packages/react)

Updates `react-day-picker` from 9.11.1 to 9.11.3
- [Release notes](https://github.com/gpbl/react-day-picker/releases)
- [Changelog](https://github.com/gpbl/react-day-picker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gpbl/react-day-picker/compare/v9.11.1...v9.11.3)

Updates `react-dom` from 19.2.0 to 19.2.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.1/packages/react-dom)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-version: 16.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: http-errors
  dependency-version: 2.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: react
  dependency-version: 19.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: react-day-picker
  dependency-version: 9.11.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: react-dom
  dependency-version: 19.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-06 16:21:43 +00:00
Owen Schwartz
ccb17cdbbf Merge pull request #1991 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-0afe584c4c
Bump the dev-patch-updates group across 1 directory with 4 updates
2025-12-06 11:21:33 -05:00
Owen Schwartz
c56512dc7d Merge pull request #1881 from fosrl/dependabot/npm_and_yarn/react-email/tailwind-2.0.1
Bump @react-email/tailwind from 1.2.2 to 2.0.1
2025-12-06 11:20:50 -05:00
Owen Schwartz
a92edf519e Merge pull request #1900 from fosrl/copilot/fix-hc-health-status-unknown
Reset hcHealth to "unknown" when health check is disabled
2025-12-06 11:20:38 -05:00
dependabot[bot]
6cd3f2df1b Bump the dev-patch-updates group across 1 directory with 4 updates
Bumps the dev-patch-updates group with 4 updates in the / directory: [@types/nodemailer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/nodemailer), [@types/yargs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/yargs), [drizzle-kit](https://github.com/drizzle-team/drizzle-orm) and [esbuild](https://github.com/evanw/esbuild).


Updates `@types/nodemailer` from 7.0.3 to 7.0.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/nodemailer)

Updates `@types/yargs` from 17.0.34 to 17.0.35
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/yargs)

Updates `drizzle-kit` from 0.31.6 to 0.31.8
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/drizzle-kit@0.31.6...drizzle-kit@0.31.8)

Updates `esbuild` from 0.27.0 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.0...v0.27.1)

---
updated-dependencies:
- dependency-name: "@types/nodemailer"
  dependency-version: 7.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/yargs"
  dependency-version: 17.0.35
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: drizzle-kit
  dependency-version: 0.31.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-06 16:19:59 +00:00
Owen Schwartz
b9c0089fac Merge pull request #1913 from fosrl/dependabot/github_actions/actions/setup-go-6.1.0
Bump actions/setup-go from 6.0.0 to 6.1.0
2025-12-06 11:17:30 -05:00
Owen Schwartz
b2f78c9149 Merge pull request #1914 from fosrl/dependabot/github_actions/actions/checkout-6.0.0
Bump actions/checkout from 5.0.0 to 6.0.0
2025-12-06 11:17:23 -05:00
Owen Schwartz
2a361b010f Merge pull request #1962 from fosrl/dependabot/npm_and_yarn/nodemailer-7.0.11
Bump nodemailer from 7.0.10 to 7.0.11
2025-12-06 11:17:11 -05:00
Owen Schwartz
7bfa732a90 Merge pull request #1983 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-42b6b37ac0
Bump the dev-minor-updates group across 1 directory with 2 updates
2025-12-06 11:16:53 -05:00
Owen Schwartz
c554364001 Merge pull request #1985 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-35f2f5c31e
Bump the prod-minor-updates group across 1 directory with 6 updates
2025-12-06 11:16:33 -05:00
Owen
5e52c48e77 Fix import 2025-12-05 21:48:45 -05:00
Owen
c233fc564e Fix credentials 2025-12-05 21:28:41 -05:00
Fred KISSIE
72bc26f0f8 💬 update texts to be more specific 2025-12-06 01:14:15 +01:00
Fred KISSIE
151cd3e6de Trigger Build 2025-12-06 01:01:48 +01:00
Fred KISSIE
97489b9564 ♻️ check by current Org 2025-12-06 00:58:11 +01:00
Fred KISSIE
d263d282ee Merge branch 'dev' into refactor/show-product-updates-conditionnally 2025-12-06 00:55:18 +01:00
Fred KISSIE
2ec2295cd6 ♻️ separate proxy page into multiple forms 2025-12-06 00:51:36 +01:00
Owen
d1c7832e40 Update rekey endpoints and pages 2025-12-05 18:30:43 -05:00
Owen
313d3c72da Fix query logging 2025-12-05 18:30:43 -05:00
Owen
c8ec94c307 Fix session test for olm and show proper alert for ee 2025-12-05 18:30:43 -05:00
Owen
4809b64f7d Reset package lock 2025-12-05 18:30:43 -05:00
miloschwartz
26e49ca39d simplify sidebar titles 2025-12-05 17:33:30 -05:00
miloschwartz
bb1472d25c prefill alias if enter hostname in destination 2025-12-05 17:14:39 -05:00
Fred KISSIE
a0a369dc43 ♻️ refactor reverse proxy targets page 2025-12-05 23:10:10 +01:00
Owen
8ea7b2ce02 Merge branch 'clients-user' into dev 2025-12-05 16:40:56 -05:00
Owen
1ee70e04ed Fix a couple things wiht destinations 2025-12-05 16:40:43 -05:00
Fred KISSIE
d0157ea7a5 Merge branch 'dev' into feat/login-page-customization 2025-12-05 22:38:07 +01:00
miloschwartz
d90f3bb6be remember sidebar expand 2025-12-05 16:34:44 -05:00
miloschwartz
149f4c1332 remove org id from olm command 2025-12-05 16:28:34 -05:00
miloschwartz
8e3b5688d5 allow server admins to generate password reset code 2025-12-05 16:27:08 -05:00
Fred KISSIE
bfd1293847 🚨 fix lint errors 2025-12-05 22:16:55 +01:00
Fred KISSIE
f4701f3da5 🐛 fix lockfile bugs with node version 2025-12-05 22:12:44 +01:00
Fred KISSIE
93af09ee97 📦 update lockfile 2025-12-05 21:56:01 +01:00
Fred KISSIE
897ddbec01 📦 fix lockfile 2025-12-05 21:41:52 +01:00
Fred KISSIE
889b381e96 ♻️ only show product updates if the user is an admin or the owner 2025-12-05 21:33:35 +01:00
miloschwartz
54c05c8345 show contact admin on forgot password if no smtp server 2025-12-05 15:23:26 -05:00
miloschwartz
a3b852ef45 Merge branch 'dev' into clients-user 2025-12-05 15:17:32 -05:00
miloschwartz
53bb4efbb2 change tunnel to site 2025-12-05 14:58:09 -05:00
miloschwartz
96dbec9352 small fixes from testing 2025-12-05 14:48:33 -05:00
miloschwartz
2d3fbb9704 translate setup page 2025-12-05 12:19:40 -05:00
miloschwartz
d3be1fbf4c update descriptions and add adress back 2025-12-05 12:09:13 -05:00
Owen
89ee57cdf9 Enforce fqdn 2025-12-05 12:03:00 -05:00
miloschwartz
bdfc7fbcdb change phrase 2025-12-05 11:53:13 -05:00
miloschwartz
8726a7f931 remove device code ip check and fix edit resource dialog state issue 2025-12-05 11:47:59 -05:00
miloschwartz
1cae815be5 split install and run commands 2025-12-05 10:51:38 -05:00
Owen Schwartz
8d62fb3865 Merge pull request #1986 from marcschaeferger/fix-ci
Fix Github CI Action
2025-12-05 10:25:09 -05:00
miloschwartz
c5befee134 fix close button spacing on mobile 2025-12-05 10:08:35 -05:00
miloschwartz
9cf2dbc2cc fix login page spacing on mobile 2025-12-05 10:04:12 -05:00
Marc Schäfer
6217086cd5 Add login step for GitHub Container Registry
Added GitHub Container Registry login step for cosign.
2025-12-05 15:54:59 +01:00
dependabot[bot]
6fbe25e91f Bump the prod-minor-updates group across 1 directory with 6 updates
Bumps the prod-minor-updates group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.922.0` | `3.943.0` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.44.7` | `0.45.0` |
| [express](https://github.com/expressjs/express) | `5.1.0` | `5.2.1` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.552.0` | `0.556.0` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.66.0` | `7.68.0` |
| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.3.1` | `3.4.0` |



Updates `@aws-sdk/client-s3` from 3.922.0 to 3.943.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.943.0/clients/client-s3)

Updates `drizzle-orm` from 0.44.7 to 0.45.0
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.44.7...0.45.0)

Updates `express` from 5.1.0 to 5.2.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/v5.1.0...v5.2.1)

Updates `lucide-react` from 0.552.0 to 0.556.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.556.0/packages/lucide-react)

Updates `react-hook-form` from 7.66.0 to 7.68.0
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.66.0...v7.68.0)

Updates `tailwind-merge` from 3.3.1 to 3.4.0
- [Release notes](https://github.com/dcastil/tailwind-merge/releases)
- [Commits](https://github.com/dcastil/tailwind-merge/compare/v3.3.1...v3.4.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.943.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: drizzle-orm
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: express
  dependency-version: 5.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.556.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.68.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: tailwind-merge
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-05 14:49:26 +00:00
dependabot[bot]
57b3f49819 Bump the dev-minor-updates group across 1 directory with 2 updates
Bumps the dev-minor-updates group with 2 updates in the / directory: [esbuild-node-externals](https://github.com/pradel/esbuild-node-externals) and [tsx](https://github.com/privatenumber/tsx).


Updates `esbuild-node-externals` from 1.19.1 to 1.20.1
- [Release notes](https://github.com/pradel/esbuild-node-externals/releases)
- [Commits](https://github.com/pradel/esbuild-node-externals/compare/esbuild-node-externals-v1.19.1...esbuild-node-externals-v1.20.1)

Updates `tsx` from 4.20.6 to 4.21.0
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.20.6...v4.21.0)

---
updated-dependencies:
- dependency-name: esbuild-node-externals
  dependency-version: 1.20.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: tsx
  dependency-version: 4.21.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-05 14:45:55 +00:00
Owen
35f9c67cfe Merge branch 'main' into dev 2025-12-05 09:45:17 -05:00
Owen
6707b3c7fe Merge branch 'main' of github.com:fosrl/pangolin 2025-12-05 09:42:58 -05:00
Owen Schwartz
dfb85f2c89 Merge pull request #1980 from bjoernch/patch-1
Update de-DE.json
2025-12-05 09:42:30 -05:00
Björn Felgner
17dec6cf0b Update de-DE.json
I noticed an odd translation in the Pangolin dashboard for the Client feature. It is currently translated into German as “Kunden”, which actually means customers. In German, there is no 1:1 translation for the IT term client, so this wording is misleading. I would suggest removing the translation entirely and leaving it as "Client" which correctly conveys the meaning of client devices.
2025-12-05 10:41:54 +01:00
miloschwartz
8ee4ee7baf remove bg-muted on target sep 2025-12-04 22:11:27 -05:00
Owen
b1b0702886 Make query optional 2025-12-04 22:07:48 -05:00
Owen
92aed108cd Update package 2025-12-04 22:07:48 -05:00
miloschwartz
2dcc94cd14 fix hc port NaN issue 2025-12-04 22:03:37 -05:00
miloschwartz
a7185ff913 add auth info tip 2025-12-04 21:28:42 -05:00
miloschwartz
04e73515b8 add alias to client resources table 2025-12-04 21:21:48 -05:00
miloschwartz
2bad9daaea move edit resource to proxy subpath 2025-12-04 21:18:17 -05:00
miloschwartz
54670e150d simplify create site wizard 2025-12-04 21:12:14 -05:00
miloschwartz
761ed1de9a ensure unique niceId for site resources and normal resources 2025-12-04 21:07:14 -05:00
Fred KISSIE
d89f5279bf ♻️address PR feedback 2025-12-05 01:08:02 +01:00
Fred KISSIE
744305ab39 ♻️ refactor 2025-12-05 00:02:13 +01:00
Fred KISSIE
ba9048a377 Merge branch 'dev' into feat/login-page-customization 2025-12-04 23:56:16 +01:00
miloschwartz
078692c818 invalidate queries on save 2025-12-04 17:56:11 -05:00
Owen
53ab51691a update packages 2025-12-04 17:26:24 -05:00
Milo Schwartz
54e2d95b55 Merge pull request #1977 from Fredkiss3/fix/some-fixes
fix: bugs introduced in `separate-tables`
2025-12-04 14:25:30 -08:00
miloschwartz
6e6fa77625 bump version 2025-12-04 17:10:59 -05:00
Owen
5c0c12cabe Update lock 2025-12-04 17:02:45 -05:00
Owen
b3ed7c0129 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-04 17:00:54 -05:00
miloschwartz
10a00ff225 update next version 2025-12-04 16:56:39 -05:00
Fred KISSIE
ba09479827 ♻️ organize imports 2025-12-04 22:50:17 +01:00
Fred KISSIE
1c5c36fc12 ♻️ set the staleTime to Zero for queries so that they are refetched everytime 2025-12-04 22:50:04 +01:00
Fred KISSIE
d37ff6e15b 🐛 resource rols & resource clients shouldn't have the same query key 2025-12-04 22:49:40 +01:00
Owen Schwartz
9288575341 Merge pull request #1971 from water-sucks/add-tls-server-name-to-health-check-fields
feat(healthcheck): add SNI support for target healthchecks
2025-12-04 14:42:25 -05:00
Fred KISSIE
0ceed4c812 📦 update lockfile 2025-12-04 20:30:41 +01:00
Owen
4b61a38501 Merge branch 'add-tls-server-name-to-health-check-fields' of github.com:water-sucks/pangolin into dev 2025-12-04 12:11:41 -05:00
Varun Narravula
ca9273c9ea feat(healthcheck): add SNI input field to target healthcheck config 2025-12-04 12:11:25 -05:00
Owen
810704e190 Merge branch 'add-tls-server-name-to-health-check-fields' of github.com:water-sucks/pangolin into dev 2025-12-04 12:00:51 -05:00
Varun Narravula
f33be1434b feat(schema): add TLS server name column to target healthcheck tables 2025-12-04 12:00:40 -05:00
Varun Narravula
82a9f2b24f feat(healthcheck): add SNI input field to target healthcheck config 2025-12-04 12:00:40 -05:00
Owen
7204b5f0de Merge branch 'add-tls-server-name-to-health-check-fields' of github.com:water-sucks/pangolin into dev 2025-12-04 12:00:04 -05:00
Owen
9b372780bd Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-04 11:59:53 -05:00
Varun Narravula
9065385b87 feat(healthcheck): add SNI input field to target healthcheck config 2025-12-04 11:59:18 -05:00
miloschwartz
77306e8c97 add integration routes 2025-12-04 11:48:01 -05:00
miloschwartz
a746ef36a8 Merge branch 'dev' into clients-user 2025-12-04 11:38:05 -05:00
Owen
6e565f1331 Merge branch 'add-tls-server-name-to-health-check-fields' of github.com:water-sucks/pangolin into dev 2025-12-04 11:28:47 -05:00
Varun Narravula
84c608c2cf feat(healthcheck): add SNI input field to target healthcheck config 2025-12-04 11:27:18 -05:00
Milo Schwartz
6da7f58ced Merge pull request #1897 from Fredkiss3/feat/log-analytics
feat: request log analytics
2025-12-04 07:38:54 -08:00
Varun Narravula
351097b04d feat(healthcheck): add SNI input field to target healthcheck config 2025-12-04 10:33:01 -05:00
Varun Narravula
bd3d339905 feat(schema): add TLS server name column to target healthcheck tables 2025-12-04 10:18:20 -05:00
miloschwartz
c6ad36d78e update to next 15.5.7 2025-12-04 09:58:21 -05:00
miloschwartz
eaeb65e9b4 update wording 2025-12-03 22:26:22 -05:00
miloschwartz
4176bdbc81 clarify rules action types closes #1679 2025-12-03 21:30:44 -05:00
miloschwartz
a2cdd8484c changes to wording 2025-12-03 21:17:10 -05:00
Milo Schwartz
23ab76ae08 Merge pull request #1967 from Fredkiss3/refactor/separate-tables-2
Refactor: separate tables (2)
2025-12-03 17:31:46 -08:00
Owen
8eec122114 Fixing holepunching and other bugs 2025-12-03 20:31:37 -05:00
Fred KISSIE
79ccbc8e92 ♻️ compute everything in useQueries 2025-12-04 00:51:56 +01:00
Fred KISSIE
d70da2aa70 🐛 fix paths 2025-12-04 00:51:40 +01:00
Fred KISSIE
c695f50122 ♻️ use Queries 2025-12-04 00:42:59 +01:00
Fred KISSIE
1b09e5b9f9 🚚 move subpages to correct paths 2025-12-04 00:42:50 +01:00
miloschwartz
7efc947e26 auto collapse sidebar on small screens 2025-12-03 18:33:46 -05:00
miloschwartz
4b580105cd change default sort on logs tables closes #1907 2025-12-03 18:20:28 -05:00
miloschwartz
a61c82570a add logs routes to integration api routes closes #1963 2025-12-03 17:45:19 -05:00
Fred KISSIE
6734003d85 ⬆️ upgrade react & next to fix **CVE-2025-55182** 2025-12-03 22:58:02 +01:00
miloschwartz
e49d796b06 fix headers getting cleared on resource save and hide domain type without pangolin dns 2025-12-03 16:04:44 -05:00
miloschwartz
4ab4029625 ease expand animation a little 2025-12-03 15:53:41 -05:00
miloschwartz
5afff3c662 add extra org policy checks to middlewares 2025-12-03 15:50:24 -05:00
miloschwartz
9be5a01173 add niceId col back to table but hide by default 2025-12-03 15:27:58 -05:00
miloschwartz
357f297a3e remove enable_clients flag from config 2025-12-03 15:02:39 -05:00
miloschwartz
e1edbe6067 remove double clients permissions check boxes 2025-12-03 14:56:10 -05:00
miloschwartz
5a859aad29 update create client description 2025-12-03 14:52:57 -05:00
miloschwartz
a28b15a81d update descriptions 2025-12-03 14:47:59 -05:00
miloschwartz
e62186f395 change olm creds text 2025-12-03 14:46:57 -05:00
miloschwartz
11c1efc19c refactor to use DataTable component 2025-12-03 14:45:21 -05:00
Milo Schwartz
8b0491eb52 Merge pull request #1960 from Fredkiss3/refactor/separate-tables
refactor: separate tables
2025-12-03 11:28:21 -08:00
miloschwartz
0032634004 add owner devices to org on create org 2025-12-03 14:19:18 -05:00
miloschwartz
4af10c8108 change to --disable-clients flag 2025-12-03 14:12:53 -05:00
miloschwartz
56cb685813 fix spinner 2025-12-03 14:05:02 -05:00
miloschwartz
ccfe1f7d0a update description text for subnets 2025-12-03 14:01:13 -05:00
Fred KISSIE
bf987d867c 🚧 WIP 2025-12-03 19:28:07 +01:00
Fred KISSIE
3870ced635 Merge branch 'clients-user' into refactor/separate-tables 2025-12-03 17:01:50 +01:00
Fred KISSIE
cb3861a5c8 🚚 rename react-query-provider to TanstackQueryProvider 2025-12-03 16:58:40 +01:00
Fred KISSIE
f5bfddd262 🚨 run eslint --fix 2025-12-03 16:58:12 +01:00
Fred KISSIE
f060063f53 💬 update text 2025-12-02 19:24:02 +01:00
Fred KISSIE
6eb6b44f41 💬 update some text labels 2025-12-02 19:22:43 +01:00
Fred KISSIE
c93ab34021 ♻️ some refactors 2025-12-02 19:08:35 +01:00
Fred KISSIE
06a31bb716 ♻️ separate machine client & user devices tables + move common functions into hooks 2025-12-02 18:58:51 +01:00
Owen
152fb47ca4 Handle unrelay and relaying better 2025-12-02 11:17:08 -05:00
Fred KISSIE
3d400b2321 ♻️ ignore hydrateSaas script and exit(0) on PG migrations 2025-12-02 16:06:10 +01:00
dependabot[bot]
2cdc23d63e Bump nodemailer from 7.0.10 to 7.0.11
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 7.0.10 to 7.0.11.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v7.0.10...v7.0.11)

---
updated-dependencies:
- dependency-name: nodemailer
  dependency-version: 7.0.11
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-02 03:55:03 +00:00
Fred KISSIE
45a82f3ecc 🚧WIP: Separate user & machine clients 2025-12-02 03:14:02 +01:00
Fred KISSIE
342bedc012 🎨 format with prettier 2025-12-02 02:40:50 +01:00
Fred KISSIE
18db4a11c8 ♻️ separate client & proxy resources tables 2025-12-02 02:33:43 +01:00
Owen
a7e32d4013 Fix bugs with updating a resource 2025-12-01 19:57:23 -05:00
Owen
beea28daf3 Handle hp oddities 2025-12-01 16:20:10 -05:00
Owen
b5e94d44ae Fix switching orgs having connections from other orgs 2025-12-01 15:44:25 -05:00
Owen
a623604e96 Improve holepunching 2025-12-01 13:54:30 -05:00
miloschwartz
8c62dfa706 respond with relative code expiration time 2025-12-01 12:36:13 -05:00
Fred KISSIE
610e46f2d5 🚧 WIP: separate proxy & client resources 2025-12-01 18:26:32 +01:00
Julien Breton
46ed27a218 Fix: Extend Basic Auth compatibility with browsers 2025-12-01 01:18:09 +01:00
Owen
92125611e9 Add validation and fix thrown error from updatePeerData 2025-11-30 17:49:55 -05:00
Owen
096da391e5 Add a utility subnet 2025-11-30 17:38:12 -05:00
Owen
dd6b1d88d3 Update peer data when HP changes 2025-11-30 11:39:40 -05:00
Owen
79f0d60533 Start working on HP IP changes 2025-11-30 11:39:40 -05:00
Owen
67665864c2 Clarify that PP is only for TCP 2025-11-29 22:58:09 -05:00
Marc Schäfer
336d31ce39 fix(validators): restore 2+ char domain label requirement
- Replace (?:[a-z\\d-]{0,61}[a-z\\d])? with (?:[a-z\\d-]{1,61}[a-z\\d]) to keep labels 2–63 chars
- Avoid unintentionally allowing single-character labels (e.g. a.com) introduced by the previous regex change

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-30 02:41:03 +01:00
Marc Schäfer
8df62e8b6a Potential fix for code scanning alert no. 19: Inefficient regular expression
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-11-29 23:40:20 +01:00
Marc Schäfer
3eab3b0827 Potential fix for code scanning alert no. 8: DOM text reinterpreted as HTML
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-11-29 23:39:54 +01:00
Marc Schäfer
fbbab60956 Potential fix for code scanning alert no. 7: Insecure randomness
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-11-29 23:39:41 +01:00
Owen Schwartz
c4de617751 Merge pull request #1940 from fosrl/dependabot/npm_and_yarn/multi-4aa959df0f
Bump dompurify and monaco-editor
2025-11-29 13:15:49 -05:00
Owen Schwartz
19e3c5045e Merge pull request #1942 from fosrl/dependabot/npm_and_yarn/multi-f170272c46
Bump glob and npm
2025-11-29 13:15:30 -05:00
Owen Schwartz
9f63d8bb5b Merge pull request #1941 from fosrl/dependabot/npm_and_yarn/multi-b50d6d7a59
Bump tar and npm
2025-11-29 13:15:09 -05:00
dependabot[bot]
49348c6ab7 Bump glob and npm
Bumps [glob](https://github.com/isaacs/node-glob) to 11.1.0 and updates ancestor dependencies [glob](https://github.com/isaacs/node-glob) and [npm](https://github.com/npm/cli). These dependencies need to be updated together.


Updates `glob` from 11.0.3 to 11.1.0
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.3...v11.1.0)

Updates `glob` from 10.4.5 to 10.5.0
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.3...v11.1.0)

Updates `npm` from 11.6.2 to 11.6.4
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v11.6.2...v11.6.4)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 11.1.0
  dependency-type: direct:production
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: indirect
- dependency-name: npm
  dependency-version: 11.6.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-29 18:11:23 +00:00
dependabot[bot]
0961ac1da1 Bump tar and npm
Removes [tar](https://github.com/isaacs/node-tar). It's no longer used after updating ancestor dependency [npm](https://github.com/npm/cli). These dependencies need to be updated together.


Removes `tar`

Updates `npm` from 11.6.2 to 11.6.4
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v11.6.2...v11.6.4)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 
  dependency-type: indirect
- dependency-name: npm
  dependency-version: 11.6.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-29 18:11:22 +00:00
dependabot[bot]
6a79436516 Bump dompurify and monaco-editor
Bumps [dompurify](https://github.com/cure53/DOMPurify) and [monaco-editor](https://github.com/microsoft/monaco-editor). These dependencies needed to be updated together.

Updates `dompurify` from 3.1.7 to 3.2.7
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.1.7...3.2.7)

Updates `monaco-editor` from 0.54.0 to 0.55.1
- [Release notes](https://github.com/microsoft/monaco-editor/releases)
- [Changelog](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/microsoft/monaco-editor/compare/v0.54.0...v0.55.1)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.2.7
  dependency-type: indirect
- dependency-name: monaco-editor
  dependency-version: 0.55.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-29 18:11:10 +00:00
Owen Schwartz
85b46392e1 Merge pull request #1922 from fosrl/dependabot/npm_and_yarn/body-parser-2.2.1
Bump body-parser from 2.2.0 to 2.2.1
2025-11-29 13:10:02 -05:00
Owen Schwartz
f721c983aa Merge pull request #1936 from PavanendraBaahubali/Pavan/fix-custom-header-reset
Fix: prevent custom headers from being cleared on save
2025-11-29 11:00:46 -05:00
Pavan Kumar
ff0b30fc2e Merge branch 'main' of https://github.com/fosrl/pangolin into fix-custom-header-reset 2025-11-28 19:06:42 +05:30
Pavan Kumar
18070a37a8 fix: keep custom header values when editing resource 2025-11-28 19:06:09 +05:30
miloschwartz
5bd31f87f0 only allow one device auth per session 2025-11-26 15:48:49 -05:00
Owen
de83cf9d8c Handle delete org and checking org policy 2025-11-26 15:35:33 -05:00
Owen
ceae787cf5 Attempt to handle creating/deleting clients and role 2025-11-25 18:20:02 -05:00
Owen
ce6afd0019 Merge branch 'clients-user' of github.com:fosrl/pangolin into clients-user 2025-11-25 15:47:19 -05:00
miloschwartz
d977d57b2a use border instead of bg 2025-11-25 15:45:32 -05:00
dependabot[bot]
7bcd6adf01 Bump body-parser from 2.2.0 to 2.2.1
Bumps [body-parser](https://github.com/expressjs/body-parser) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/v2.2.0...v2.2.1)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-version: 2.2.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 18:31:04 +00:00
miloschwartz
ac68dbd545 add my-device and force login 2025-11-25 10:51:53 -05:00
Owen Schwartz
d450e2c3ab Merge pull request #1920 from ThanatosDi/feat/add-zh-tw-language
feat: Add zh-TW language
2025-11-25 10:17:46 -05:00
古丁丁
9440a4f879 feat: Add zh-TW language 2025-11-25 11:23:48 +08:00
Owen
73b0411e1c Add alias config 2025-11-24 20:43:26 -05:00
dependabot[bot]
a8d11d78fc Bump actions/checkout from 5.0.0 to 6.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](08c6903cd8...1af3b93b68)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 01:27:21 +00:00
dependabot[bot]
e16aa6e90b Bump actions/setup-go from 6.0.0 to 6.1.0
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](4469467582...4dc6199c7b)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 01:27:15 +00:00
Fred KISSIE
6368b9d837 ♻️ use linechart 2025-11-21 06:33:47 +01:00
Fred KISSIE
1b643fb4b6 🐛 fix Dockerfile 2025-11-21 06:27:13 +01:00
Fred KISSIE
d118c6b666 ♻️also export build file 2025-11-21 06:18:32 +01:00
Fred KISSIE
380e062d25 ♻️export driver in Dockerfile 2025-11-21 06:17:14 +01:00
Fred KISSIE
261f0333b8 💄 remove chart animations 2025-11-21 06:15:05 +01:00
Fred KISSIE
24adca6108 ♻️add auto refetch every 30 seconds 2025-11-21 06:14:48 +01:00
Fred KISSIE
3f440f0f7a 🏷️ fix type for SQLite 2025-11-21 06:10:01 +01:00
Fred KISSIE
ba6defa87c Add request by day chart 2025-11-21 06:03:34 +01:00
Fred KISSIE
887a0ef574 💄 chart for analytics 2025-11-21 05:36:30 +01:00
Fred KISSIE
200743747d 🚧add css variables for chart 2025-11-21 04:51:10 +01:00
Fred KISSIE
2082c5eed2 🚧 Add shadCN chart 2025-11-21 04:50:06 +01:00
Fred KISSIE
a42d012788 load logs per day 2025-11-21 04:48:01 +01:00
Fred KISSIE
82cc51424b 🔨also export driver in the db driver generation script 2025-11-21 04:47:42 +01:00
Fred KISSIE
7924f195aa 💄handle empty data 2025-11-21 04:47:13 +01:00
Fred KISSIE
d41bd3023f 🐛 filter by resource UI 2025-11-21 03:05:40 +01:00
Fred KISSIE
87a0dd2d12 ♻️ remove click 2025-11-21 02:57:44 +01:00
Fred KISSIE
5fd64596eb add top countries list 2025-11-21 02:00:47 +01:00
Owen
d23f61d995 Take into account the existing associations
Use to filter adds and removes in the associations
2025-11-20 16:42:55 -05:00
Owen
7ac27b3883 Switch to update 2025-11-20 16:08:03 -05:00
Owen
9420b41e39 Update the remote subnets 2025-11-20 15:17:48 -05:00
Owen
2cfb0e05cf Lock working without redis? 2025-11-20 14:03:25 -05:00
Owen
5b9386b18a Add lock 2025-11-20 12:40:25 -05:00
Owen
f5c3dff43c Some small bug fixes 2025-11-20 12:24:24 -05:00
Owen
eeb82c8cfe Merge branch 'main' of github.com:fosrl/pangolin 2025-11-20 10:36:38 -05:00
Owen
3750c36aa7 Working on orchestration 2025-11-20 10:31:09 -05:00
copilot-swe-agent[bot]
be4d697dfe Set hcHealth to 'unknown' when health check is disabled in updateTarget
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-11-20 15:29:01 +00:00
copilot-swe-agent[bot]
94b34c489c Initial plan 2025-11-20 15:23:27 +00:00
Fred KISSIE
3801354ae6 🚧 add country code flag emoji function 2025-11-20 08:37:49 +01:00
Fred KISSIE
266fbb1762 💄nicer colors 2025-11-20 08:22:16 +01:00
Fred KISSIE
5d1f81a92c world map 2025-11-20 08:19:11 +01:00
Fred KISSIE
d6e8eb5307 🧑‍💻add tailwind indicator component 2025-11-20 05:23:16 +01:00
Fred KISSIE
2bc82f49ed add enpoint for getting all resource names 2025-11-20 04:20:31 +01:00
Fred KISSIE
487985558d add react compiler 2025-11-20 04:19:58 +01:00
Fred KISSIE
dc237b8052 💬 update text message from the API 2025-11-20 03:19:43 +01:00
Fred KISSIE
4ed4515262 🚧 starting request analytics page 2025-11-20 02:55:52 +01:00
Fred KISSIE
cd76fa0139 add analytics endpoint 2025-11-20 02:55:33 +01:00
Fred KISSIE
af4b9e83f7 ✏️ fix typos 2025-11-20 02:55:03 +01:00
Owen
fa5facdf33 Fix bugs 2025-11-19 20:03:57 -05:00
Owen
937b36e756 Build client site resource associations and send messages 2025-11-19 18:05:42 -05:00
Fred KISSIE
e90bdf8f97 ♻️ translate sidebar headings 2025-11-19 21:43:34 +01:00
Owen Schwartz
56491cc17b Merge pull request #1896 from fosrl/copilot/configure-auto-login-idp-blueprints
Add blueprint support for auto-login-idp configuration
2025-11-19 14:33:17 -05:00
copilot-swe-agent[bot]
6da531e99b Use IDP ID instead of IDP name for auto-login-idp
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-11-19 19:29:52 +00:00
copilot-swe-agent[bot]
01b5158b73 Add auto-login-idp support to blueprints
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-11-19 16:50:06 +00:00
copilot-swe-agent[bot]
8f9b665bef Initial plan 2025-11-19 16:43:50 +00:00
Owen
806949879a Merge branch 'dev' into clients-user 2025-11-18 13:53:12 -05:00
Owen
e72e2b53aa Working on targets 2025-11-18 13:53:04 -05:00
Owen Schwartz
10f42fe2e6 Merge pull request #1884 from v1rusnl/main
Bump Traefik to v3.6 due to Docker 29.X.X compatibility
2025-11-18 09:42:38 -05:00
v1rusnl
51b438117a Update Traefik image version to v3.6 2025-11-18 12:44:10 +01:00
v1rusnl
d73825dd24 Update Traefik image version to v3.6 2025-11-18 12:41:12 +01:00
Fred KISSIE
ff089ec6d7 📦update lockfile 2025-11-18 03:48:41 +01:00
Fred KISSIE
dc4f9a9bd1 ♻️ check for licence when checking for subscription 2025-11-18 03:32:05 +01:00
Fred KISSIE
e867de023a ♻️ load branding only if correctly subscribed 2025-11-18 03:14:20 +01:00
miloschwartz
b5c6191c67 add email consent and update audience 2025-11-17 20:50:24 -05:00
Fred KISSIE
e00c3f2193 🛂 check for subscription status 2025-11-18 02:46:22 +01:00
Owen
97c707248e Working on updating targets 2025-11-17 20:44:39 -05:00
Fred KISSIE
8c30995228 ♻️ refactor 2025-11-18 02:38:08 +01:00
miloschwartz
02fbc279b5 add email consent and update audience 2025-11-17 20:37:24 -05:00
Fred KISSIE
3ba65a3311 ♻️ check for disabled features in general org settings page 2025-11-18 02:35:11 +01:00
dependabot[bot]
447b706909 Bump @react-email/tailwind from 1.2.2 to 2.0.1
Bumps [@react-email/tailwind](https://github.com/resend/react-email/tree/HEAD/packages/tailwind) from 1.2.2 to 2.0.1.
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/tailwind/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/tailwind@2.0.1/packages/tailwind)

---
updated-dependencies:
- dependency-name: "@react-email/tailwind"
  dependency-version: 2.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-18 01:31:38 +00:00
Fred KISSIE
c5914dc0c0 ♻️ Also check for active subscription in paid status hook 2025-11-18 02:26:49 +01:00
Fred KISSIE
30f3ab11b2 🚚 rename SecurityFeaturesAlert to PaidFeaturesAlert 2025-11-18 02:26:25 +01:00
Fred KISSIE
66b01b764f ♻️ adapt zod schema to v4 and move form description below the inptu 2025-11-18 01:07:46 +01:00
Fred KISSIE
ee7e7778b6 ♻️commit 2025-11-17 22:23:11 +01:00
Fred KISSIE
0d0c43f72b Merge branch 'dev' into feat/login-page-customization 2025-11-17 22:18:32 +01:00
Fred KISSIE
83f36bce9d ♻️refactor 2025-11-17 22:17:55 +01:00
Owen Schwartz
80a68507cd Merge pull request #1876 from fosrl/crowdin_dev
New Crowdin updates
2025-11-17 11:48:54 -05:00
Owen
dbb1e37033 Update lock 2025-11-17 11:30:25 -05:00
Owen
364b84359e Merge branch 'dev' into clients-user 2025-11-17 11:30:12 -05:00
Owen
93d4a40977 Merge branch 'main' into dev 2025-11-17 11:30:05 -05:00
Owen
97312343e4 Merge branch 'dev' into clients-user 2025-11-17 11:28:47 -05:00
Owen Schwartz
1736ad486a New translations en-us.json (Norwegian Bokmal) 2025-11-17 11:03:26 -05:00
Owen Schwartz
a07ad843a2 New translations en-us.json (Chinese Simplified) 2025-11-17 11:03:24 -05:00
Owen Schwartz
fef9101058 New translations en-us.json (Turkish) 2025-11-17 11:03:23 -05:00
Owen Schwartz
2890ff2605 New translations en-us.json (Russian) 2025-11-17 11:03:21 -05:00
Owen Schwartz
026ad2ccb9 New translations en-us.json (Portuguese) 2025-11-17 11:03:19 -05:00
Owen Schwartz
a82969b778 New translations en-us.json (Polish) 2025-11-17 11:03:18 -05:00
Owen Schwartz
612b04c26f New translations en-us.json (Dutch) 2025-11-17 11:03:16 -05:00
Owen Schwartz
2162f5f76f New translations en-us.json (Korean) 2025-11-17 11:03:14 -05:00
Owen Schwartz
710f16ce68 New translations en-us.json (Italian) 2025-11-17 11:03:13 -05:00
Owen Schwartz
61a4f468ba New translations en-us.json (German) 2025-11-17 11:03:11 -05:00
Owen Schwartz
b00fea5656 New translations en-us.json (Czech) 2025-11-17 11:03:09 -05:00
Owen Schwartz
269ff630aa New translations en-us.json (Bulgarian) 2025-11-17 11:03:08 -05:00
Owen Schwartz
986f7121bd New translations en-us.json (Spanish) 2025-11-17 11:03:06 -05:00
Owen Schwartz
21f0501bc6 New translations en-us.json (French) 2025-11-17 11:03:04 -05:00
Owen Schwartz
2b31dd955c Merge pull request #1848 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-040abfaff9
Bump the dev-minor-updates group across 1 directory with 3 updates
2025-11-17 10:54:38 -05:00
Owen Schwartz
e7aeb4ff89 Merge pull request #1849 from fosrl/dependabot/go_modules/install/prod-minor-updates-4e8dbec1a6
Bump golang.org/x/term from 0.36.0 to 0.37.0 in /install in the prod-minor-updates group
2025-11-17 10:54:23 -05:00
Owen Schwartz
9dd1192033 Merge pull request #1855 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-6d8f9bd785
Bump the prod-patch-updates group across 1 directory with 12 updates
2025-11-17 10:54:15 -05:00
Owen Schwartz
e61da0958f Merge pull request #1841 from fosrl/dependabot/github_actions/docker/setup-qemu-action-3.7.0
Bump docker/setup-qemu-action from 3.6.0 to 3.7.0
2025-11-17 10:49:20 -05:00
Owen Schwartz
fce588057e Merge pull request #1870 from fosrl/dependabot/npm_and_yarn/js-yaml-4.1.1
Bump js-yaml from 4.1.0 to 4.1.1
2025-11-17 10:48:32 -05:00
Owen
33331fd3c8 Merge branch 'Lokowitz-fix-zod-new' into dev 2025-11-17 10:46:40 -05:00
Owen
1261ad3a00 Standardize remote subnets build 2025-11-17 10:22:22 -05:00
Owen
7dcf4d5192 Remove remote subnet 2025-11-17 10:22:22 -05:00
Lokowitz
dc87df5d38 remove temp test 2025-11-17 14:01:11 +00:00
Lokowitz
5d2f65daa9 fix for zod 2025-11-17 13:23:30 +00:00
Lokowitz
58cf471bc4 fix z.coerce.number 2025-11-16 14:29:19 +00:00
Lokowitz
7db99a7dd5 used zod codemod 2025-11-16 14:18:17 +00:00
Lokowitz
000904eb31 upgrade zod 2025-11-16 14:09:22 +00:00
dependabot[bot]
6d1713b6b9 Bump js-yaml from 4.1.0 to 4.1.1
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-16 06:21:01 +00:00
Owen
de8262d7b9 Batch deletes 2025-11-15 11:51:52 -05:00
Fred KISSIE
2466d24c1a 🔥remove unused imports 2025-11-15 07:08:07 +01:00
Fred KISSIE
2f34def4d7 ♻️ correctly apply the CSS variable 2025-11-15 07:06:20 +01:00
Fred KISSIE
8e8f992876 💡add comment 2025-11-15 07:04:36 +01:00
Fred KISSIE
1d9ed9d219 💡remove useless comments 2025-11-15 07:01:27 +01:00
Fred KISSIE
616fb9c8e9 ♻️remove unused imports 2025-11-15 06:59:15 +01:00
Fred KISSIE
a2ab7191e5 🔇remove log 2025-11-15 06:58:05 +01:00
Fred KISSIE
7a31292ec7 revert package.json changes 2025-11-15 06:34:40 +01:00
Fred KISSIE
196fbbe334 📦update lockfile 2025-11-15 06:32:45 +01:00
Fred KISSIE
5bb5aeff36 Merge branch 'dev' into feat/login-page-customization 2025-11-15 06:32:03 +01:00
Fred KISSIE
2ada05b286 ♻️only apply org branding in saas 2025-11-15 06:26:17 +01:00
Fred KISSIE
87f23f582c apply branding to org auth page 2025-11-15 06:08:02 +01:00
Fred KISSIE
29a52f6ac4 🐛 Apply branding to auth page when not authenticated not only when authed 2025-11-15 05:43:17 +01:00
Fred KISSIE
790f7083e2 🐛 fix cols and some other refactors 2025-11-15 04:04:10 +01:00
Fred KISSIE
5c851e82ff ♻️refactor 2025-11-15 04:03:42 +01:00
Fred KISSIE
854f638da3 show toast message when updating auth page domain 2025-11-15 04:03:21 +01:00
Fred KISSIE
4842648e7b ♻️refactor 2025-11-15 02:38:51 +01:00
Fred KISSIE
8f152bdf9f add primary color branding to the page 2025-11-15 02:38:46 +01:00
Fred KISSIE
d003436179 ⚗️ generate build variable as fully typed to prevent typos (to check if it's ok) 2025-11-15 01:43:58 +01:00
Fred KISSIE
9776ef43ea ♻️ only include org settings in saas build 2025-11-15 01:42:20 +01:00
Fred KISSIE
e2c4a906c4 ♻️rename title & subtitle to orgTitle and orgSubtitle 2025-11-15 01:41:56 +01:00
Fred KISSIE
27e8250cd1 ♻️some refactor 2025-11-15 01:07:07 +01:00
Fred KISSIE
0d84b7af6e ♻️show org page branding section only in saas 2025-11-15 01:07:00 +01:00
Fred KISSIE
b961271aa6 ♻️ some refactor 2025-11-15 01:06:22 +01:00
Fred KISSIE
b505cc60b0 🗃️ Add primaryColor to login page branding 2025-11-15 01:06:09 +01:00
miloschwartz
4f026acad8 adjust icon in product update 2025-11-14 17:35:51 -05:00
miloschwartz
5b31bbce8d remove frontend env parsing 2025-11-14 12:25:32 -05:00
Milo Schwartz
e6e80f6fc7 Merge pull request #1814 from Fredkiss3/feat/update-popup
Feat: version updates & product updates popup
2025-11-14 09:13:15 -08:00
Milo Schwartz
bde4492d49 Merge branch 'dev' into feat/update-popup 2025-11-14 09:12:11 -08:00
miloschwartz
7c728c144c fix broken inputs in health check form 2025-11-14 12:00:15 -05:00
Owen
8ad7bcc0d6 Adjust rate limiting position 2025-11-14 11:33:52 -05:00
Owen
e62806d6fb Clean up old timestamps 2025-11-14 11:33:51 -05:00
miloschwartz
4e0a2e441b hide domain status info if not flags.use_pangolin_dns 2025-11-14 11:31:44 -05:00
Owen Schwartz
aabe39137b Merge pull request #1856 from LaurenceJJones/fix-remove-return-before-showing-token
fix: Remove return in installer which prevents showing token
2025-11-14 10:23:21 -05:00
miloschwartz
d9564ed6fe improve spacing and colors 2025-11-13 22:04:29 -05:00
miloschwartz
0798a0c6c2 clean up info box 2025-11-13 21:48:37 -05:00
dependabot[bot]
c9786946b7 Bump the prod-patch-updates group across 1 directory with 12 updates
Bumps the prod-patch-updates group with 12 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@radix-ui/react-avatar](https://github.com/radix-ui/primitives) | `1.1.10` | `1.1.11` |
| [@radix-ui/react-label](https://github.com/radix-ui/primitives) | `2.1.7` | `2.1.8` |
| [@radix-ui/react-progress](https://github.com/radix-ui/primitives) | `1.1.7` | `1.1.8` |
| [@radix-ui/react-separator](https://github.com/radix-ui/primitives) | `1.1.7` | `1.1.8` |
| [@radix-ui/react-slot](https://github.com/radix-ui/primitives) | `1.2.3` | `1.2.4` |
| [axios](https://github.com/axios/axios) | `1.13.1` | `1.13.2` |
| [eslint](https://github.com/eslint/eslint) | `9.39.0` | `9.39.1` |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.0.1` | `16.0.2` |
| [js-yaml](https://github.com/nodeca/js-yaml) | `4.1.0` | `4.1.1` |
| [maxmind](https://github.com/runk/node-maxmind) | `5.0.0` | `5.0.1` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.11.0` | `5.11.2` |
| [resend](https://github.com/resend/resend-node) | `6.4.0` | `6.4.2` |



Updates `@radix-ui/react-avatar` from 1.1.10 to 1.1.11
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-label` from 2.1.7 to 2.1.8
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-progress` from 1.1.7 to 1.1.8
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-separator` from 1.1.7 to 1.1.8
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-slot` from 1.2.3 to 1.2.4
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `axios` from 1.13.1 to 1.13.2
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.1...v1.13.2)

Updates `eslint` from 9.39.0 to 9.39.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.39.0...v9.39.1)

Updates `eslint-config-next` from 16.0.1 to 16.0.2
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v16.0.2/packages/eslint-config-next)

Updates `js-yaml` from 4.1.0 to 4.1.1
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

Updates `maxmind` from 5.0.0 to 5.0.1
- [Release notes](https://github.com/runk/node-maxmind/releases)
- [Commits](https://github.com/runk/node-maxmind/compare/v5.0.0...v5.0.1)

Updates `posthog-node` from 5.11.0 to 5.11.2
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.11.2/packages/node)

Updates `resend` from 6.4.0 to 6.4.2
- [Release notes](https://github.com/resend/resend-node/releases)
- [Commits](https://github.com/resend/resend-node/compare/v6.4.0...v6.4.2)

---
updated-dependencies:
- dependency-name: "@radix-ui/react-avatar"
  dependency-version: 1.1.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-label"
  dependency-version: 2.1.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-progress"
  dependency-version: 1.1.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-separator"
  dependency-version: 1.1.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-slot"
  dependency-version: 1.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: axios
  dependency-version: 1.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: eslint
  dependency-version: 9.39.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: eslint-config-next
  dependency-version: 16.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: maxmind
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: posthog-node
  dependency-version: 5.11.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: resend
  dependency-version: 6.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-14 01:24:49 +00:00
dependabot[bot]
9344ab3546 Bump golang.org/x/term in /install in the prod-minor-updates group
Bumps the prod-minor-updates group in /install with 1 update: [golang.org/x/term](https://github.com/golang/term).


Updates `golang.org/x/term` from 0.36.0 to 0.37.0
- [Commits](https://github.com/golang/term/compare/v0.36.0...v0.37.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-version: 0.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-14 01:23:32 +00:00
dependabot[bot]
1a4078b8a1 Bump the dev-minor-updates group across 1 directory with 3 updates
Bumps the dev-minor-updates group with 3 updates in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [esbuild](https://github.com/evanw/esbuild) and [esbuild-node-externals](https://github.com/pradel/esbuild-node-externals).


Updates `@types/node` from 24.9.2 to 24.10.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `esbuild` from 0.25.12 to 0.27.0
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.12...v0.27.0)

Updates `esbuild-node-externals` from 1.18.0 to 1.19.1
- [Release notes](https://github.com/pradel/esbuild-node-externals/releases)
- [Commits](https://github.com/pradel/esbuild-node-externals/compare/v1.18.0...esbuild-node-externals-v1.19.1)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: esbuild
  dependency-version: 0.27.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: esbuild-node-externals
  dependency-version: 1.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-14 01:21:19 +00:00
Fred KISSIE
955f927c59 🚧WIP 2025-11-14 01:24:15 +01:00
miloschwartz
ca66637270 remove from address in saas suppport email 2025-11-13 17:37:27 -05:00
miloschwartz
8674ca931b remove from address in saas suppport email 2025-11-13 17:34:49 -05:00
miloschwartz
08c82e072e Merge branch 'clients-user' of https://github.com/fosrl/pangolin into clients-user 2025-11-13 17:33:37 -05:00
miloschwartz
23c9827e4c remove create user client route 2025-11-13 17:32:35 -05:00
Owen Schwartz
864b587b89 Merge pull request #1858 from Pallavikumarimdb/role-in-headers
Role in headers
2025-11-13 17:16:31 -05:00
Owen Schwartz
ca89aa7ce8 Merge pull request #1847 from Pallavikumarimdb/fix/ipv6-validation
Fix: Improve IPv6 and IPV4 validation to support all variants using ipaddr.js
2025-11-13 17:10:47 -05:00
Pallavi Kumari
63a1ecfb86 role in header 2025-11-13 23:31:29 +05:30
Laurence Jones
fbce392137 Remove unnecessary return after success message
Remove redundant return statement after success message.
2025-11-13 12:52:21 +00:00
Fred KISSIE
4beed9d464 apply auth branding to resource auth page 2025-11-13 03:24:47 +01:00
Fred KISSIE
228481444f ♻️ do not manually track the loading state in ConfirmDeleteDialog 2025-11-13 02:19:25 +01:00
Fred KISSIE
02cd2cfb17 save and update branding 2025-11-13 02:18:52 +01:00
Fred KISSIE
d218a4bbc3 🏷️ fix types 2025-11-12 03:50:11 +01:00
Fred KISSIE
4bd1c4e0c6 ♻️ refactor 2025-11-12 03:50:04 +01:00
Fred KISSIE
cfde4e7443 🚧 WIP 2025-11-12 03:43:19 +01:00
Fred KISSIE
f58cf68f7c 🚧 WIP 2025-11-11 23:35:20 +01:00
Fred KISSIE
08e43400e4 🚧 frontend wip 2025-11-11 21:14:10 +01:00
Pallavi Kumari
c004e969cb improve IPv6 validation to support all variants using ipaddr.js 2025-11-12 00:30:08 +05:30
Fred KISSIE
46d60bd090 ♻️ add type 2025-11-11 17:08:52 +01:00
Fred KISSIE
5641a2aa31 🗃️ add org auth page model 2025-11-11 17:08:27 +01:00
Fred KISSIE
0abc561bb8 ♻️ refactor 2025-11-11 02:22:26 +01:00
dependabot[bot]
c6611471b1 Bump docker/setup-qemu-action from 3.6.0 to 3.7.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](29109295f8...c7c5346462)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 01:37:59 +00:00
Owen
bdf1625976 Add headers 2025-11-09 10:46:46 -08:00
Owen
0a5dc17800 Merge branch 'dev' into feat/option-to-regenerate-keys 2025-11-09 10:43:26 -08:00
Owen
fa7aa508ea Merge branch 'dev' into pallavi/feat/make-niceId-editable 2025-11-09 10:39:30 -08:00
Owen
2973b61676 Fix merge confilct 2025-11-08 18:01:42 -08:00
Owen
2428413442 Dont create client 2025-11-08 17:57:54 -08:00
miloschwartz
5602d8ee64 sync user clients to org on add/remove user org 2025-11-08 17:52:05 -08:00
Owen
a70799c8c0 Merge branch 'dev' into clients-user 2025-11-08 16:51:45 -08:00
Owen
d38b321f85 Add missing header 2025-11-08 16:47:03 -08:00
Owen Schwartz
b0ff50a76f Merge pull request #1834 from fosrl/dev
Small Bug Fixes
2025-11-08 16:35:50 -08:00
Owen
37acdc2796 Revert transaction 2025-11-08 16:33:48 -08:00
Owen Schwartz
f3d31cb6de Merge pull request #1833 from fosrl/crowdin_dev
New Crowdin updates
2025-11-08 16:23:11 -08:00
Owen Schwartz
a336955066 New translations en-us.json (Norwegian Bokmal) 2025-11-08 16:22:42 -08:00
Owen Schwartz
a229fc1c61 New translations en-us.json (Chinese Simplified) 2025-11-08 16:22:40 -08:00
Owen Schwartz
7995fd364e New translations en-us.json (Turkish) 2025-11-08 16:22:39 -08:00
Owen Schwartz
5e0d822d45 New translations en-us.json (Russian) 2025-11-08 16:22:38 -08:00
Owen Schwartz
4fddaa8f11 New translations en-us.json (Portuguese) 2025-11-08 16:22:36 -08:00
Owen Schwartz
4a87cecf89 New translations en-us.json (Polish) 2025-11-08 16:22:35 -08:00
Owen Schwartz
ac5ee5c7ca New translations en-us.json (Dutch) 2025-11-08 16:22:34 -08:00
Owen Schwartz
8a8c357563 New translations en-us.json (Korean) 2025-11-08 16:22:32 -08:00
Owen Schwartz
263fd80c18 New translations en-us.json (Italian) 2025-11-08 16:22:31 -08:00
Owen Schwartz
7bdf05bdf5 New translations en-us.json (German) 2025-11-08 16:22:30 -08:00
Owen Schwartz
d00f12967d New translations en-us.json (Czech) 2025-11-08 16:22:28 -08:00
Owen Schwartz
d9991a18e2 New translations en-us.json (Bulgarian) 2025-11-08 16:22:27 -08:00
Owen Schwartz
a51c21cdd2 New translations en-us.json (Spanish) 2025-11-08 16:22:26 -08:00
Owen Schwartz
265cab5b64 New translations en-us.json (French) 2025-11-08 16:22:24 -08:00
Owen
da15e5e77b Remove software-properties-common
Fixes #1828
2025-11-08 16:13:42 -08:00
Owen
a717ca2675 Only uppercase the value if its a country
Fixes #1813
2025-11-08 15:42:46 -08:00
miloschwartz
693c9fbe0f make actions sticky in targets and rules input 2025-11-08 14:39:14 -08:00
Owen
564b290244 Fix #1830 2025-11-08 14:24:28 -08:00
Owen
84d78df67e Merge branch 'main' into dev 2025-11-08 14:20:40 -08:00
Owen
107053a98f Merge branch 'main' of github.com:fosrl/pangolin 2025-11-08 14:20:35 -08:00
Owen Schwartz
6422a78e6f Merge pull request #1830 from hetlelid/patch-2
Update resourceRawSettingsDescription with details
2025-11-08 14:20:21 -08:00
miloschwartz
10f8298161 reset nav logo size 2025-11-08 14:18:43 -08:00
miloschwartz
5f11630e27 minor adjustments to blueprints screens 2025-11-08 14:15:47 -08:00
Owen
a776b2ea94 Fix: qiery perferWildcardCert from db
Fixes #1816
Fixes #1829
2025-11-08 14:14:17 -08:00
miloschwartz
b83ec1b503 remove target unique check 2025-11-08 13:57:00 -08:00
Owen
83bd5957cd Dont allow editing a config managed domain
Ref #1816
2025-11-08 12:18:36 -08:00
Owen
f98b4baa73 Add remote subnets back based on resources 2025-11-08 12:17:33 -08:00
Pallavi Kumari
0af51cebbe scope niceid to the orgId 2025-11-08 19:44:23 +05:30
Pallavi Kumari
abc5f8ec68 show the identifier in the info box 2025-11-08 19:44:23 +05:30
Owen
ddc14d164e Rename nice id to Identifier in the ui 2025-11-08 19:44:23 +05:30
Pallavi Kumari
aeda85fcfb move resource niceid update to general page 2025-11-08 19:44:23 +05:30
Pallavi Kumari
66124f09c4 move site niceId details to general setting page 2025-11-08 19:44:23 +05:30
Pallavi Kumari
ac5fe1486a update url to prevent page redirect 2025-11-08 19:44:23 +05:30
Pallavi Kumari
50ac52d316 fix lint 2025-11-08 19:44:22 +05:30
Pallavi Kumari
f85d9f8b6e fix col 2025-11-08 19:44:22 +05:30
Pallavi Kumari
feb0bd58c8 make resource niceid editable 2025-11-08 19:44:22 +05:30
Pallavi Kumari
32949127d2 Make site niceId editable 2025-11-08 19:44:22 +05:30
Pallavi Kumari
84d24d9bf5 niceId inside resource info 2025-11-08 19:44:22 +05:30
Pallavi Kumari
8e1bb6a6fd add niceId inside info box 2025-11-08 19:44:22 +05:30
hetlelid
66c14c2d09 Update resourceRawSettingsDescription with details
Expanded the description for resourceRawSettings to include mapping details and a documentation link.
2025-11-08 13:24:51 +01:00
miloschwartz
cad4d97fb3 update works 2025-11-07 22:26:28 -08:00
Owen
de53cfb912 Update package lock 2025-11-07 21:57:31 -08:00
miloschwartz
55fd276773 update to node 25? 2025-11-07 21:55:09 -08:00
miloschwartz
7125b49024 add fade 2025-11-07 20:38:36 -08:00
miloschwartz
fb9ed8f592 dont auto close hide col popover on click 2025-11-07 18:22:13 -08:00
miloschwartz
020cb2d794 add friendly col names 2025-11-07 18:16:14 -08:00
miloschwartz
9b2c0d0b67 make org selector sticky top 2025-11-07 18:05:34 -08:00
miloschwartz
3993e5b705 add sitcky table cols for left and right cols 2025-11-07 18:03:44 -08:00
Owen
47bcadb329 Also include direct associations 2025-11-07 16:55:32 -08:00
Owen
00df2c876f Fix delete issue 2025-11-07 16:44:31 -08:00
Fred KISSIE
b4535f3dc4 ✏️ typo fix 2025-11-08 01:34:08 +01:00
miloschwartz
e51fca1f61 add clients to resource 2025-11-07 16:33:17 -08:00
Fred KISSIE
0e7f5b1aef 🌐 localize product update empty text 2025-11-08 00:57:07 +01:00
Fred KISSIE
579a4e1021 add flags for enabling notifications for product updates & new releases 2025-11-08 00:51:56 +01:00
Owen
c813202f92 Add DoNotCreateNewClient 2025-11-07 15:24:32 -08:00
Fred KISSIE
94e1c534ca 💄 add link to read more 2025-11-08 00:19:30 +01:00
Owen
41e21acf42 Fix error related to user id col 2025-11-07 14:59:45 -08:00
Pallavi Kumari
b6e98632b5 move re-key API routes to private api 2025-11-08 02:43:47 +05:30
Owen Schwartz
51db267a4a Merge pull request #1779 from fosrl/dependabot/npm_and_yarn/eslint-config-next-16.0.1
Bump eslint-config-next from 15.5.6 to 16.0.1
2025-11-07 12:15:19 -08:00
Pallavi Kumari
8a5f59cb9f disable re-key button for non licensed 2025-11-08 01:38:47 +05:30
dependabot[bot]
669817818a Bump eslint-config-next from 15.5.6 to 16.0.1
Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 15.5.6 to 16.0.1.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v16.0.1/packages/eslint-config-next)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-version: 16.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-07 20:07:29 +00:00
Owen Schwartz
b84453bfbe Merge pull request #1825 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-282bba5f0a
Bump the dev-patch-updates group across 1 directory with 5 updates
2025-11-07 12:06:08 -08:00
Owen Schwartz
15d561f59f Merge pull request #1824 from robtec/patch-1
Fix typo in shareSeeOnce message
2025-11-07 12:05:59 -08:00
Fred KISSIE
0745734273 ♻️ include build when getting product udpates 2025-11-07 20:05:51 +01:00
Fred KISSIE
aa3f07f1ba ♻️ make fossorial remote API only configurable on the frontend and only in DEV 2025-11-07 20:05:29 +01:00
Pallavi Kumari
2b8204fdc8 seperate credentials rekeying in modal for reuse 2025-11-07 23:30:24 +05:30
Pallavi Kumari
90e72c6aca hide credentials tab for local sites 2025-11-07 19:27:03 +05:30
Pallavi Kumari
62e2b7ca9e change alert text 2025-11-07 19:27:03 +05:30
Pallavi Kumari
f7e7993fd4 regenerate secret for wireguard 2025-11-07 19:27:03 +05:30
Pallavi Kumari
18cdf070c7 add view setting options 2025-11-07 19:27:03 +05:30
Pallavi Kumari
563a5b3e7e disable credential regenerate button for local and wireguard 2025-11-07 19:27:03 +05:30
Pallavi Kumari
3756aaecda change file naming structure to reGenerate exit node keys 2025-11-07 19:27:03 +05:30
Pallavi Kumari
58a13de0ff fix lint 2025-11-07 19:27:03 +05:30
Pallavi Kumari
d32505a833 Option to regenerate Newt keys 2025-11-07 19:27:03 +05:30
Pallavi Kumari
42091e88cb rename exit node tab to credentials 2025-11-07 19:27:03 +05:30
Pallavi Kumari
c2f607bb9a Option to regenerate olm keys inside client 2025-11-07 19:27:03 +05:30
Pallavi Kumari
3f38080b46 fix lint 2025-11-07 19:27:03 +05:30
Pallavi Kumari
9f9aa07c2d Option to regenerate remote-nodes keys 2025-11-07 19:27:03 +05:30
miloschwartz
76d54b2d0f add add/remove user/roles to siteResources/resources to integration api 2025-11-06 21:27:01 -08:00
Owen
bdb564823d Require valid user token 2025-11-06 21:19:37 -08:00
miloschwartz
b3a616c9f3 remove alerts from cleints and resources tables 2025-11-06 20:21:26 -08:00
Owen
ec1f94791a Remove siteIds and build associations from user role chnages 2025-11-06 20:19:15 -08:00
miloschwartz
bea1c65076 remove remote subnets from front end 2025-11-06 20:16:24 -08:00
miloschwartz
2274a3525b update olm and client routes 2025-11-06 20:12:54 -08:00
dependabot[bot]
749cea5a4d Bump the dev-patch-updates group across 1 directory with 5 updates
Bumps the dev-patch-updates group with 4 updates in the / directory: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx), [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss), [esbuild](https://github.com/evanw/esbuild) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@dotenvx/dotenvx` from 1.51.0 to 1.51.1
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.51.0...v1.51.1)

Updates `@tailwindcss/postcss` from 4.1.16 to 4.1.17
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.17/packages/@tailwindcss-postcss)

Updates `esbuild` from 0.25.11 to 0.25.12
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.11...v0.25.12)

Updates `tailwindcss` from 4.1.16 to 4.1.17
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.17/packages/tailwindcss)

Updates `typescript-eslint` from 8.46.2 to 8.46.3
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.3/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.51.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.25.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: typescript-eslint
  dependency-version: 8.46.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-07 01:23:55 +00:00
miloschwartz
999fb2fff1 Merge branch 'dev' into clients-user 2025-11-06 16:55:16 -08:00
miloschwartz
2a7529c39e don't delete user 2025-11-06 16:48:53 -08:00
Fred KISSIE
f27ae210ed Merge branch 'dev' into feat/update-popup 2025-11-07 01:30:18 +01:00
Fred KISSIE
ea744f8d28 💄 show update type 2025-11-07 01:14:05 +01:00
Fred KISSIE
0b70cbb1a3 💄 show update type in badge 2025-11-07 01:10:20 +01:00
miloschwartz
fce887436d fix bug causing auto provision to override manually created users 2025-11-06 15:46:54 -08:00
Fred KISSIE
f928708156 💄 animate exit and more 2025-11-07 00:27:57 +01:00
miloschwartz
fae899a8f1 remove dialog border 2025-11-06 15:17:19 -08:00
Rob
3489107a49 Fix typo in shareSeeOnce message 2025-11-06 23:09:52 +00:00
Fred KISSIE
45fb0a4156 💄 button for mark as read 2025-11-06 23:26:13 +01:00
Fred KISSIE
a62299c387 🎨 prettier format 2025-11-06 23:25:53 +01:00
Fred KISSIE
18757d7eb3 💄 show product updates list 2025-11-06 22:42:49 +01:00
Owen Schwartz
296b220bf3 Merge pull request #1819 from Pallavikumarimdb/fix/resourceTable-typeError
Fix/Revert column from Resource table to fix type error and match overall styling
2025-11-06 12:03:15 -08:00
Pallavi Kumari
0a9f37c44d revert column from resource table 2025-11-06 22:57:03 +05:30
miloschwartz
776c33d79d persist column filters 2025-11-05 17:34:50 -08:00
miloschwartz
9fd6af3a31 view devices for profile 2025-11-05 17:27:16 -08:00
miloschwartz
4ade878320 split clients table 2025-11-05 16:43:27 -08:00
miloschwartz
9e2477587c if one logs dont show nested 2025-11-05 16:13:51 -08:00
miloschwartz
c7787352c8 add sidebar groups 2025-11-05 16:09:12 -08:00
miloschwartz
85892c30b2 add site resource modes and alias 2025-11-05 15:24:07 -08:00
Fred KISSIE
7a2dd31019 🚧 use popup 2025-11-06 00:16:07 +01:00
Fred KISSIE
096ca379ce ♻️ refactor 2025-11-06 00:06:05 +01:00
Fred KISSIE
41601010f4 💡 comment 2025-11-05 23:58:56 +01:00
Fred KISSIE
64b87e203a 💄 animate product updates & new version 2025-11-05 23:57:43 +01:00
Fred KISSIE
c64b102aaa ♻️ refactor 2025-11-05 23:29:48 +01:00
Fred KISSIE
f371c7df81 add headless/ui for better enter/exit animations 2025-11-05 23:29:36 +01:00
Fred KISSIE
030f90db2e ♻️ validate env variables only in DEV 2025-11-05 21:41:29 +01:00
miloschwartz
e51b6b545e add users and roles to site resources 2025-11-05 12:24:50 -08:00
Owen Schwartz
ef5d72663f Merge pull request #1328 from Pallavikumarimdb/enhancement-#906/dashboard-enhancements
Enhancement #906/Resources Dashboard: Targets Column, Customizable Columns & Status Indicators
2025-11-05 11:41:43 -08:00
Owen
6ddfc9b8fe Revert columns 2025-11-05 11:41:07 -08:00
Owen
301654b63e Fix styling 2025-11-05 11:38:14 -08:00
miloschwartz
c73f8c88f7 hide sites inputs on clients 2025-11-05 10:37:52 -08:00
miloschwartz
2274404324 update tables 2025-11-05 10:29:29 -08:00
Fred KISSIE
6d349693a7 🚧 wip 2025-11-05 08:45:56 +01:00
Fred KISSIE
b9ce316574 🚧 wip 2025-11-05 08:38:23 +01:00
Fred KISSIE
a247ef7564 ♻️ import type 2025-11-05 07:33:25 +01:00
Fred KISSIE
18566c09dc add tanstack query 2025-11-05 07:32:28 +01:00
Fred KISSIE
1090dca634 Merge branch 'main' into feat/update-popup 2025-11-05 07:30:12 +01:00
Fred KISSIE
44f419d4f7 💄 animate popup 2025-11-05 07:30:01 +01:00
Fred KISSIE
162c6d567c revert package.json changes 2025-11-05 07:26:41 +01:00
Fred KISSIE
2f1abfbef8 🚧 New version popup 2025-11-05 06:55:08 +01:00
Fred KISSIE
a26a441d56 ♻️ validate env and add remote fossorial API as an env variable 2025-11-05 06:54:56 +01:00
miloschwartz
f628a76223 add them back 2025-11-04 16:56:56 -08:00
miloschwartz
8088e30e06 remove userClients and roleClients 2025-11-04 16:53:00 -08:00
miloschwartz
801cdec7f3 add deviceWebAuthCodes table to pg schema 2025-11-04 16:51:31 -08:00
Owen
3fd3f9871d Remove user check 2025-11-04 11:56:00 -08:00
miloschwartz
959a562e7c fix more shadows 2025-11-04 11:09:08 -08:00
Owen Schwartz
3b12a77cf0 Merge pull request #1809 from clemone210/patch-2
Update German translations for client and blueprint terms
2025-11-04 10:34:26 -08:00
Fred KISSIE
03e0e8d9c2 🚧 wip 2025-11-04 13:57:55 +01:00
Timo
7cd31313d8 Update German translations for client and blueprint terms
"Kunden" is generally used for "Customers", so in this case I suggest to stick with Client, as this is a widely used term in german tech sector. The same for "Bauplan" or "Blaupause". "Bauplan" is a "Construction plan" for building houses. "Blaupause" is pretty much the right translation for blueprints, but I would stick with Blueprint here as well.
2025-11-04 07:40:33 +01:00
miloschwartz
52a311bf36 fix colors and footer 2025-11-03 21:44:34 -08:00
Milo Schwartz
9822deb4bf Update README.md 2025-11-03 22:56:57 -05:00
Owen
83e0282212 Merge branch 'dev' into clients-user 2025-11-03 17:39:10 -08:00
Owen
8942cb7aa7 Update const 2025-11-03 17:38:50 -08:00
Owen
f0f219f293 Merge branch 'main' into dev 2025-11-03 17:38:43 -08:00
Owen
dc75d72522 Merge branch 'dev' into clients-user 2025-11-03 17:38:26 -08:00
Owen
6da81b3817 Fix bad request in non-enterprise 2025-11-03 17:33:50 -08:00
miloschwartz
847479b639 Merge branch 'cli-web-auth' into clients-user 2025-11-03 17:14:12 -08:00
miloschwartz
0790f37f5e hash device codes 2025-11-03 17:03:46 -08:00
Owen
9dd472c59b Creating olm working 2025-11-03 16:54:06 -08:00
miloschwartz
5746d69f98 reduce header padding 2025-11-03 16:22:40 -08:00
Owen
8356c5933f Small fixes around handling olm users 2025-11-03 16:22:13 -08:00
Owen
2c488baa80 Add name and lock client to specific olm 2025-11-03 16:16:19 -08:00
Owen
d30743a428 Update schmea; create client when registering 2025-11-03 15:42:22 -08:00
miloschwartz
009d84a3c6 remove shadows and outline ring 2025-11-03 11:22:00 -08:00
miloschwartz
e888b76747 complete web device auth flow 2025-11-03 11:10:17 -08:00
Owen
6174599754 Allow >30 days on oss 2025-11-03 09:54:41 -08:00
Owen Schwartz
8ba04aeb74 Merge pull request #1802 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-700e856888
Bump the prod-minor-updates group across 1 directory with 9 updates
2025-11-03 09:49:01 -08:00
Owen
43590896e9 Add fosrl 2025-11-02 18:56:46 -08:00
Owen Schwartz
3547c4832b Revert "Refactor CI/CD workflow for improved release process" 2025-11-02 18:56:46 -08:00
Marc Schäfer
1cd098252e Refactor CI/CD workflow for improved release process
Updated CI/CD workflow to include new permissions, job definitions, and steps for version validation, tagging, and artifact management.
2025-11-02 18:56:46 -08:00
Owen
4adbc31dae Fix blueprints not applying
Fixes #1795
2025-11-02 18:56:46 -08:00
Owen
99031feb35 Fix camel case in health checks 2025-11-02 18:56:46 -08:00
Owen
d363b06d0e Fix rewritePath
Closes #1528
2025-11-02 18:56:46 -08:00
Owen
2af100cc86 Warning -> debug 2025-11-02 18:56:46 -08:00
dependabot[bot]
3e90211108 Bump the prod-minor-updates group across 1 directory with 9 updates
Bumps the prod-minor-updates group with 9 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.908.0` | `3.922.0` |
| [axios](https://github.com/axios/axios) | `1.12.2` | `1.13.1` |
| [eslint](https://github.com/eslint/eslint) | `9.37.0` | `9.39.0` |
| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.1.0` | `8.2.1` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.545.0` | `0.552.0` |
| [next-intl](https://github.com/amannn/next-intl) | `4.3.12` | `4.4.0` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.10.4` | `5.11.0` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.65.0` | `7.66.0` |
| [resend](https://github.com/resend/resend-node) | `6.1.3` | `6.4.0` |



Updates `@aws-sdk/client-s3` from 3.908.0 to 3.922.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.922.0/clients/client-s3)

Updates `axios` from 1.12.2 to 1.13.1
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.12.2...v1.13.1)

Updates `eslint` from 9.37.0 to 9.39.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.37.0...v9.39.0)

Updates `express-rate-limit` from 8.1.0 to 8.2.1
- [Release notes](https://github.com/express-rate-limit/express-rate-limit/releases)
- [Commits](https://github.com/express-rate-limit/express-rate-limit/compare/v8.1.0...v8.2.1)

Updates `lucide-react` from 0.545.0 to 0.552.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.552.0/packages/lucide-react)

Updates `next-intl` from 4.3.12 to 4.4.0
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.3.12...v4.4.0)

Updates `posthog-node` from 5.10.4 to 5.11.0
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.11.0/packages/node)

Updates `react-hook-form` from 7.65.0 to 7.66.0
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.65.0...v7.66.0)

Updates `resend` from 6.1.3 to 6.4.0
- [Release notes](https://github.com/resend/resend-node/releases)
- [Commits](https://github.com/resend/resend-node/compare/v6.1.3...v6.4.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.922.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: axios
  dependency-version: 1.13.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint
  dependency-version: 9.39.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: express-rate-limit
  dependency-version: 8.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.552.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: next-intl
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: posthog-node
  dependency-version: 5.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.66.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: resend
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 01:34:13 +00:00
Owen
6dd161fe17 Add fosrl 2025-11-02 15:35:02 -08:00
Owen Schwartz
558bd040c6 Merge pull request #1801 from fosrl/revert-1792-main
Revert "Refactor CI/CD workflow for improved release process"
2025-11-02 15:22:12 -08:00
Owen Schwartz
f2c48975f6 Revert "Refactor CI/CD workflow for improved release process" 2025-11-02 15:22:03 -08:00
Owen Schwartz
fc43a56bb3 Merge pull request #1792 from marcschaeferger/main
Refactor CI/CD workflow for improved release process
2025-11-02 15:00:09 -08:00
Owen
ca7f557a3c Fix blueprints not applying
Fixes #1795
2025-11-02 14:56:19 -08:00
Owen
7477713eef Fix camel case in health checks 2025-11-02 14:17:38 -08:00
Owen
c16e762fa4 Fix rewritePath
Closes #1528
2025-11-02 14:05:41 -08:00
Owen Schwartz
41592133a6 Merge pull request #1788 from Pallavikumarimdb/fix/deleting-and-adding-back-a-target
Add transaction while deleting targets
2025-11-02 13:51:08 -08:00
Pallavi Kumari
54f7525f1b add status column in resource table 2025-11-02 13:55:17 +05:30
Pallavi Kumari
ad6bb3da9f fix type error 2025-11-02 13:55:17 +05:30
Pallavi Kumari
49bc2dc5da fix duplicate 2025-11-02 13:55:16 +05:30
Pallavi
cdf77087cd get niceid 2025-11-02 13:55:16 +05:30
Pallavi
8e5dde887c list targes in frontend 2025-11-02 13:55:16 +05:30
Pallavi
f21188000e remove status check and add column filtering on all of the tables 2025-11-02 13:55:16 +05:30
Pallavi
1b3eb32bf4 Show targets and status icons in the dashboard 2025-11-02 13:55:16 +05:30
Marc Schäfer
eec3f183e6 Refactor CI/CD workflow for improved release process
Updated CI/CD workflow to include new permissions, job definitions, and steps for version validation, tagging, and artifact management.
2025-11-02 00:44:03 +01:00
Owen
31b66cd911 Warning -> debug 2025-11-01 10:46:09 -07:00
Pallavi Kumari
ad425e8d9e add transaction while deleting targets 2025-11-01 11:58:09 +05:30
miloschwartz
da0196a308 no reset password for external users 2025-10-30 22:24:07 -07:00
miloschwartz
e585972b7b remove useSubscriptionStatusContext from HorizontalTabs 2025-10-30 21:31:48 -07:00
miloschwartz
cc62cd4add remove sqlite driver logger 2025-10-30 21:23:05 -07:00
Owen
25225a452c Return instead of throwing error 2025-10-30 21:18:26 -07:00
Owen
678644c7fb Fix empty blueprint 2025-10-30 21:09:20 -07:00
Owen
32f20ed984 Bugfixes for remote nodes 2025-10-30 21:01:45 -07:00
Owen
4eb5bf08d5 UI fixes 2025-10-30 17:44:22 -07:00
Owen
35c93f38e0 Fix small ui issues 2025-10-30 17:32:03 -07:00
Owen
f60c2f4fb9 Make refresh work 2025-10-30 17:25:49 -07:00
Owen
b2cf152b9e Add copy to clip 2025-10-30 16:17:20 -07:00
Owen
444928dffd Add wildcard 2025-10-30 15:27:24 -07:00
Owen
4d7e2d5840 Minor fixes to rc 2025-10-30 11:42:31 -07:00
Owen Schwartz
318046ce1d Merge pull request #1780 from fosrl/crowdin_dev
New Crowdin updates
2025-10-29 21:17:18 -07:00
Owen Schwartz
808ad1e272 New translations en-us.json (Norwegian Bokmal) 2025-10-29 21:16:51 -07:00
Owen Schwartz
05a1195661 New translations en-us.json (Chinese Simplified) 2025-10-29 21:16:49 -07:00
Owen Schwartz
c46322c6a6 New translations en-us.json (Turkish) 2025-10-29 21:16:48 -07:00
Owen Schwartz
80d5efc41f New translations en-us.json (Russian) 2025-10-29 21:16:47 -07:00
Owen Schwartz
0409ab7dc1 New translations en-us.json (Portuguese) 2025-10-29 21:16:46 -07:00
Owen Schwartz
63f079ec76 New translations en-us.json (Polish) 2025-10-29 21:16:45 -07:00
Owen Schwartz
5988f1e8da New translations en-us.json (Dutch) 2025-10-29 21:16:43 -07:00
Owen Schwartz
ed0c0edeba New translations en-us.json (Korean) 2025-10-29 21:16:42 -07:00
Owen Schwartz
34b4841f4d New translations en-us.json (Italian) 2025-10-29 21:16:40 -07:00
Owen Schwartz
ff47c5a8ad New translations en-us.json (German) 2025-10-29 21:16:39 -07:00
Owen Schwartz
9430a53c0c New translations en-us.json (Czech) 2025-10-29 21:16:38 -07:00
Owen Schwartz
03334e3f0f New translations en-us.json (Bulgarian) 2025-10-29 21:16:37 -07:00
Owen Schwartz
6f2ecf9d0d New translations en-us.json (Spanish) 2025-10-29 21:16:35 -07:00
Owen Schwartz
6f803c3b4b New translations en-us.json (French) 2025-10-29 21:16:34 -07:00
Owen
15d400c842 Fix migration and install faker 2025-10-29 21:12:12 -07:00
Owen Schwartz
3ddf150661 New translations en-us.json (Norwegian Bokmal) 2025-10-29 21:00:51 -07:00
Owen Schwartz
5b519afee4 New translations en-us.json (Chinese Simplified) 2025-10-29 21:00:50 -07:00
Owen Schwartz
15ea9f3dcc New translations en-us.json (Turkish) 2025-10-29 21:00:48 -07:00
Owen Schwartz
d5e2536f8d New translations en-us.json (Russian) 2025-10-29 21:00:47 -07:00
Owen Schwartz
d7e9083e06 New translations en-us.json (Portuguese) 2025-10-29 21:00:45 -07:00
Owen Schwartz
e0cc338c3a New translations en-us.json (Polish) 2025-10-29 21:00:44 -07:00
Owen Schwartz
624c5741e2 New translations en-us.json (Dutch) 2025-10-29 21:00:43 -07:00
Owen Schwartz
558507dd71 New translations en-us.json (Korean) 2025-10-29 21:00:41 -07:00
Owen Schwartz
565340bd53 New translations en-us.json (Italian) 2025-10-29 21:00:40 -07:00
Owen Schwartz
756745487a New translations en-us.json (German) 2025-10-29 21:00:39 -07:00
Owen Schwartz
d2ece4d370 New translations en-us.json (Czech) 2025-10-29 21:00:37 -07:00
Owen Schwartz
d5f5d1da1e New translations en-us.json (Bulgarian) 2025-10-29 21:00:35 -07:00
Owen Schwartz
dfaf1a72cc New translations en-us.json (Spanish) 2025-10-29 21:00:34 -07:00
Owen Schwartz
ff8e5b871c New translations en-us.json (French) 2025-10-29 21:00:33 -07:00
Owen
927dda4e53 Add blueprints to migrations 2025-10-29 20:50:36 -07:00
Owen
0e51bac307 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-10-29 20:46:13 -07:00
Owen Schwartz
7a50af14f3 Merge pull request #1733 from Fredkiss3/feat-blueprint-ui-on-dashboard
feat: blueprint ui on dashboard
2025-10-29 20:45:31 -07:00
Owen
396477c2e2 Update makefiles 2025-10-29 20:42:56 -07:00
Fred KISSIE
8765874d9a ♻️ include Blueprint applied with errors: in blueprint message when it fails 2025-10-30 02:33:45 +01:00
Fred KISSIE
49dffe086d ♻️ show warning toast and do not throw error in case of UI source 2025-10-30 02:18:48 +01:00
Owen Schwartz
77ddadcded Merge pull request #1777 from fosrl/crowdin_dev
New Crowdin updates
2025-10-29 17:51:22 -07:00
Owen Schwartz
05b297ddec New translations en-us.json (Norwegian Bokmal) 2025-10-29 17:49:16 -07:00
Owen Schwartz
feb0de9a08 New translations en-us.json (Chinese Simplified) 2025-10-29 17:49:14 -07:00
Owen Schwartz
f4f2361d22 New translations en-us.json (Turkish) 2025-10-29 17:49:13 -07:00
Owen Schwartz
cae6a9f51c New translations en-us.json (Russian) 2025-10-29 17:49:12 -07:00
Owen Schwartz
2872f5c018 New translations en-us.json (Portuguese) 2025-10-29 17:49:10 -07:00
Owen Schwartz
0512c21ad7 New translations en-us.json (Polish) 2025-10-29 17:49:09 -07:00
Owen Schwartz
922a69feed New translations en-us.json (Dutch) 2025-10-29 17:49:08 -07:00
Owen Schwartz
24192c79d4 New translations en-us.json (Korean) 2025-10-29 17:49:07 -07:00
Owen Schwartz
17c22a635f New translations en-us.json (Italian) 2025-10-29 17:49:05 -07:00
Owen Schwartz
bcbcf417b5 New translations en-us.json (German) 2025-10-29 17:49:04 -07:00
Owen Schwartz
acf7596368 New translations en-us.json (Czech) 2025-10-29 17:49:03 -07:00
Owen Schwartz
34c7d925ca New translations en-us.json (Bulgarian) 2025-10-29 17:49:01 -07:00
Owen Schwartz
c10730ebb9 New translations en-us.json (Spanish) 2025-10-29 17:49:00 -07:00
Owen Schwartz
e50743b922 New translations en-us.json (French) 2025-10-29 17:48:59 -07:00
Owen
75b0745e42 Add proxy procotol to private config 2025-10-29 17:42:21 -07:00
Owen
ebd99f95a3 Also order by id 2025-10-29 17:37:29 -07:00
Owen
0e649883cb More bugfixes 2025-10-29 17:21:32 -07:00
Fred KISSIE
3d376c8d14 ♻️ change default blueprint table ordering to createdAt: desc 2025-10-30 00:55:12 +01:00
Fred KISSIE
adedb0e391 💬 Show Success: Blueprint applied successfully 2025-10-30 00:54:15 +01:00
Fred KISSIE
521935786c 💄 remove rounded-sm 2025-10-30 00:34:14 +01:00
Fred KISSIE
885b9d186b ♻️ remove blueprint name form description 2025-10-30 00:32:55 +01:00
Fred KISSIE
356f023539 💬 fix capitalization 2025-10-30 00:32:08 +01:00
Fred KISSIE
de8d3f45da 💬 uppercase blueprint in create blueprint 2025-10-30 00:30:50 +01:00
Fred KISSIE
72c9956190 💄 Standardize go back to blueprints 2025-10-30 00:27:27 +01:00
Owen
6dc4cbe448 Check country code 2025-10-29 16:24:35 -07:00
Fred KISSIE
77364488c2 💄 show action on the right of the column 2025-10-30 00:21:59 +01:00
Fred KISSIE
5a61040027 💄 remove form description and format w/ prettier 2025-10-30 00:21:39 +01:00
Owen
c6f7be40df Sort by descending 2025-10-29 16:16:25 -07:00
Fred KISSIE
c36fb63f8c 🔨 add drizzle in docker-compose DEV for viewing the postgres db in local development 2025-10-30 00:10:49 +01:00
Owen
48aebea6cf Show error 2025-10-29 15:23:53 -07:00
Owen
55082d2ef8 Rename file 2025-10-29 14:49:53 -07:00
Owen
cc03b97234 Merge branch 'dev' into feat-blueprint-ui-on-dashboard 2025-10-29 14:46:34 -07:00
Owen
5542873368 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-10-29 14:43:32 -07:00
Owen
1db5d76ef1 Merge branch 'main' into dev 2025-10-29 14:43:18 -07:00
Owen
ca6c45087b Fix the ordering of deleting targets 2025-10-29 14:40:09 -07:00
Owen Schwartz
3333eb95f9 Merge pull request #1773 from Pallavikumarimdb/fix/long-copy-box
Fix text overflow in CopyToClipboard by setting a max width
2025-10-29 14:11:27 -07:00
Pallavi Kumari
d681725fc3 update max width of CopyToClipboard 2025-10-30 00:59:08 +05:30
Owen
f5eadc9e1e Various fixes 2025-10-29 12:16:28 -07:00
miloschwartz
219e213c1e change logs to debug 2025-10-29 11:39:45 -07:00
miloschwartz
af654e663b add missing translation key 2025-10-29 11:34:13 -07:00
Fred KISSIE
39b3b4ef9d 🐛 add missing orgId to blueprints table 2025-10-29 14:39:42 +01:00
Owen Schwartz
6c62a0900f Merge pull request #1763 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-56e321e524
Bump posthog-node from 5.10.3 to 5.10.4 in the prod-patch-updates group
2025-10-28 21:15:31 -07:00
Owen Schwartz
ddd772eb43 Merge pull request #1769 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-a759a3dffa
Bump the dev-patch-updates group across 1 directory with 4 updates
2025-10-28 21:15:24 -07:00
Fred KISSIE
69458ab649 🔇 remove console.log 2025-10-29 04:25:37 +01:00
Fred KISSIE
c7df70143e ♻️ log only in DEV 2025-10-29 03:50:36 +01:00
Fred KISSIE
a81ea7cc8f 🐛 fix merge errors 2025-10-29 03:34:44 +01:00
Fred KISSIE
02330a0756 Merge branch 'dev' into feat-blueprint-ui-on-dashboard 2025-10-29 03:31:51 +01:00
Fred KISSIE
db49b599b5 add faker dependency 2025-10-29 03:09:16 +01:00
Fred KISSIE
bb0bfd440a ♻️ refactor 2025-10-29 03:09:02 +01:00
Fred KISSIE
10ce732b8d 🚚 rename integration API applyBlueprint to apply JSON blueprint and the UI applyBlueprint to apply YAML blueprint 2025-10-29 03:08:48 +01:00
Fred KISSIE
4c567cf2d7 ♻️ refactor docker and websocket blueprint to call the new applyBlueprint function 2025-10-29 03:07:55 +01:00
Fred KISSIE
2783d2989d ♻️ refactor 2025-10-29 03:06:42 +01:00
Fred KISSIE
c3d6510231 💬 update the text in the blueprint details page to say parsed contents 2025-10-29 03:06:28 +01:00
Fred KISSIE
3bb948991f ♻️ applyBlueprint core logic now saves the blueprint in the DB 2025-10-29 03:01:25 +01:00
dependabot[bot]
4b9ce22f06 Bump the dev-patch-updates group across 1 directory with 4 updates
Bumps the dev-patch-updates group with 4 updates in the / directory: [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [@types/pg](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pg) and [drizzle-kit](https://github.com/drizzle-team/drizzle-orm).


Updates `@types/express` from 5.0.4 to 5.0.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express)

Updates `@types/node` from 24.9.1 to 24.9.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@types/pg` from 8.15.5 to 8.15.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/pg)

Updates `drizzle-kit` from 0.31.5 to 0.31.6
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/drizzle-kit@0.31.5...drizzle-kit@0.31.6)

---
updated-dependencies:
- dependency-name: "@types/express"
  dependency-version: 5.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/node"
  dependency-version: 24.9.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/pg"
  dependency-version: 8.15.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: drizzle-kit
  dependency-version: 0.31.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-29 01:22:53 +00:00
miloschwartz
772bda69f9 check for user email in support request 2025-10-27 21:56:22 -07:00
miloschwartz
8b4722b1c9 add support message button in saas 2025-10-27 21:55:34 -07:00
Owen
9e5c9d9c34 Check role access when inviting users 2025-10-27 20:51:16 -07:00
dependabot[bot]
ee533df38f Bump posthog-node from 5.10.3 to 5.10.4 in the prod-patch-updates group
Bumps the prod-patch-updates group with 1 update: [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node).


Updates `posthog-node` from 5.10.3 to 5.10.4
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.10.4/packages/node)

---
updated-dependencies:
- dependency-name: posthog-node
  dependency-version: 5.10.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-28 01:31:57 +00:00
Owen
52dc8e011c Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-10-27 17:55:10 -07:00
Owen
bd5cc790d6 Fixing various things 2025-10-27 17:52:39 -07:00
Milo Schwartz
7d6d5a7787 Update README.md 2025-10-27 20:15:44 -04:00
Milo Schwartz
ba6e7dd06a Update README.md 2025-10-27 20:08:14 -04:00
miloschwartz
6270fb3237 consolidate install commands 2025-10-27 16:58:11 -07:00
miloschwartz
16ec50a6ee add alaytics to saas 2025-10-27 16:43:52 -07:00
miloschwartz
3d2021c8a1 use select component 2025-10-27 16:38:04 -07:00
Owen
15d63ddffa Various fixes for rc 2025-10-27 16:33:21 -07:00
Fred KISSIE
7ce6fadb3d blueprint details page 2025-10-28 00:14:27 +01:00
Owen
6b18a24f9b @server/private -> #dynamic 2025-10-27 13:46:54 -07:00
Owen
a38cb961c7 Create missing stubs 2025-10-27 13:45:24 -07:00
Owen
3c5fe21078 Add missing header 2025-10-27 11:54:56 -07:00
Owen
b44305694f Add postgres migration 2025-10-27 11:52:45 -07:00
Owen
be217e2b6f Create 1.12.0 sqlite migration 2025-10-27 11:47:14 -07:00
Owen
6ce04c2aa1 Change migration to 1.12.0 2025-10-27 11:34:46 -07:00
Owen
85e4b649db Update cicd: allow to run on rc 2025-10-27 11:14:56 -07:00
Owen
73a3335148 Update cicd: login to ghcr 2025-10-27 11:13:05 -07:00
Owen
32845c5a3d Fix const issue 2025-10-27 11:03:16 -07:00
Owen Schwartz
05a878ac34 Merge pull request #1759 from fosrl/crowdin_dev
New Crowdin updates
2025-10-27 10:55:59 -07:00
Owen Schwartz
847d015243 New translations en-us.json (Spanish) 2025-10-27 10:55:27 -07:00
Owen Schwartz
51cde2681c New translations en-us.json (Norwegian Bokmal) 2025-10-27 10:55:26 -07:00
Owen Schwartz
9c0606942c New translations en-us.json (Chinese Simplified) 2025-10-27 10:55:24 -07:00
Owen Schwartz
646d476bdb New translations en-us.json (Turkish) 2025-10-27 10:55:23 -07:00
Owen Schwartz
31261681a0 New translations en-us.json (Russian) 2025-10-27 10:55:21 -07:00
Owen Schwartz
f6fae820c4 New translations en-us.json (Portuguese) 2025-10-27 10:55:20 -07:00
Owen Schwartz
b3cbf925aa New translations en-us.json (Polish) 2025-10-27 10:55:19 -07:00
Owen Schwartz
aa1ae3ee42 New translations en-us.json (Dutch) 2025-10-27 10:55:17 -07:00
Owen Schwartz
80f6c8b74e New translations en-us.json (Korean) 2025-10-27 10:55:16 -07:00
Owen Schwartz
79d8e8d59d New translations en-us.json (Italian) 2025-10-27 10:55:15 -07:00
Owen Schwartz
9193375586 New translations en-us.json (German) 2025-10-27 10:55:13 -07:00
Owen Schwartz
240bcb8759 New translations en-us.json (Czech) 2025-10-27 10:55:12 -07:00
Owen Schwartz
a5dcafb84c New translations en-us.json (Bulgarian) 2025-10-27 10:55:11 -07:00
Owen Schwartz
192207a857 New translations en-us.json (French) 2025-10-27 10:55:09 -07:00
Owen Schwartz
d18fafb0ef Merge pull request #1757 from fosrl/user-compliance
Enforce org user compliance
2025-10-27 10:44:13 -07:00
Owen
380c86898c Fix lint 2025-10-27 10:43:44 -07:00
Owen
b59a6b82ef Merge branch 'dev' into user-compliance 2025-10-27 10:37:53 -07:00
Owen Schwartz
77ba568c36 Merge pull request #1755 from fosrl/audit-logs
Request, action, and access logs
2025-10-27 10:10:57 -07:00
Owen
a0f05cc77b Resolve export of logActionAudit 2025-10-27 10:09:06 -07:00
Owen
80f43a9774 Fix lint 2025-10-27 10:05:31 -07:00
Owen
c04d9eda6b Merge branch 'dev' into audit-logs 2025-10-27 10:02:32 -07:00
Owen Schwartz
cabf3e9695 Merge pull request #1749 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-b7f346f221
Bump the dev-patch-updates group with 7 updates
2025-10-27 09:57:14 -07:00
Owen Schwartz
ff7b4386d6 Merge pull request #1750 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-c81bf49cf4
Bump the prod-patch-updates group with 5 updates
2025-10-27 09:57:03 -07:00
Owen Schwartz
4dbbe159ee Merge pull request #1751 from fosrl/dependabot/github_actions/actions/upload-artifact-5.0.0
Bump actions/upload-artifact from 4.6.2 to 5.0.0
2025-10-27 09:56:52 -07:00
miloschwartz
eeab92719a add smaller time values and update translations 2025-10-27 09:52:25 -07:00
miloschwartz
43e6b7de07 remove delete on cascade for skipToIdp on resource closes #1654 2025-10-27 09:46:26 -07:00
miloschwartz
4cfd1b1ff5 always check resource session length 2025-10-27 09:45:12 -07:00
dependabot[bot]
09ba018493 Bump actions/upload-artifact from 4.6.2 to 5.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.2 to 5.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](ea165f8d65...330a01c490)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 01:41:35 +00:00
dependabot[bot]
7acf7dd0eb Bump the prod-patch-updates group with 5 updates
Bumps the prod-patch-updates group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [canvas-confetti](https://github.com/catdad/canvas-confetti) | `1.9.3` | `1.9.4` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.44.6` | `0.44.7` |
| [ioredis](https://github.com/luin/ioredis) | `5.8.1` | `5.8.2` |
| [nodemailer](https://github.com/nodemailer/nodemailer) | `7.0.9` | `7.0.10` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.10.0` | `5.10.3` |


Updates `canvas-confetti` from 1.9.3 to 1.9.4
- [Release notes](https://github.com/catdad/canvas-confetti/releases)
- [Commits](https://github.com/catdad/canvas-confetti/compare/1.9.3...1.9.4)

Updates `drizzle-orm` from 0.44.6 to 0.44.7
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.44.6...0.44.7)

Updates `ioredis` from 5.8.1 to 5.8.2
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/redis/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.8.1...v5.8.2)

Updates `nodemailer` from 7.0.9 to 7.0.10
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v7.0.9...v7.0.10)

Updates `posthog-node` from 5.10.0 to 5.10.3
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.10.3/packages/node)

---
updated-dependencies:
- dependency-name: canvas-confetti
  dependency-version: 1.9.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: drizzle-orm
  dependency-version: 0.44.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: ioredis
  dependency-version: 5.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: nodemailer
  dependency-version: 7.0.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: posthog-node
  dependency-version: 5.10.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 01:36:44 +00:00
Owen
592d085de6 Lock down days 2025-10-26 18:36:09 -07:00
dependabot[bot]
2cf2c64651 Bump the dev-patch-updates group with 7 updates
Bumps the dev-patch-updates group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [@react-email/preview-server](https://github.com/resend/react-email/tree/HEAD/packages/preview-server) | `4.3.1` | `4.3.2` |
| [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.1.15` | `4.1.16` |
| [@types/cookie-parser](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/cookie-parser) | `1.4.9` | `1.4.10` |
| [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) | `5.0.3` | `5.0.4` |
| [@types/yargs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/yargs) | `17.0.33` | `17.0.34` |
| [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email) | `4.3.1` | `4.3.2` |
| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.1.15` | `4.1.16` |


Updates `@react-email/preview-server` from 4.3.1 to 4.3.2
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/preview-server/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/preview-server@4.3.2/packages/preview-server)

Updates `@tailwindcss/postcss` from 4.1.15 to 4.1.16
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.16/packages/@tailwindcss-postcss)

Updates `@types/cookie-parser` from 1.4.9 to 1.4.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/cookie-parser)

Updates `@types/express` from 5.0.3 to 5.0.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express)

Updates `@types/yargs` from 17.0.33 to 17.0.34
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/yargs)

Updates `react-email` from 4.3.1 to 4.3.2
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@4.3.2/packages/react-email)

Updates `tailwindcss` from 4.1.15 to 4.1.16
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.16/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@react-email/preview-server"
  dependency-version: 4.3.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/cookie-parser"
  dependency-version: 1.4.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/express"
  dependency-version: 5.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/yargs"
  dependency-version: 17.0.34
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: react-email
  dependency-version: 4.3.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 01:27:47 +00:00
Owen
560974f7d2 Merge branch 'feat/add-proxy-protocol-support' into dev 2025-10-26 18:16:38 -07:00
Owen
85270f497a Restrict raw resources and use st from config 2025-10-26 18:15:39 -07:00
miloschwartz
9fbea4a380 move enterprise/subscription required alert to component 2025-10-26 17:12:47 -07:00
miloschwartz
cbf9c5361e redirect to org login via query param 2025-10-26 17:08:35 -07:00
miloschwartz
44316731c0 enforce resource session length 2025-10-26 16:52:15 -07:00
Owen Schwartz
60513af8ed Merge pull request #1716 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-5d11ea411f
Bump the dev-patch-updates group with 3 updates
2025-10-26 16:31:27 -07:00
Owen Schwartz
24cfe02979 Merge pull request #1717 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-648ae407da
Bump @types/node from 24.8.1 to 24.9.1 in the dev-minor-updates group
2025-10-26 16:31:18 -07:00
Owen
8f3324560a Install maxmind by default 2025-10-26 16:04:19 -07:00
Owen
2041edcf30 Allow protocols on the same port
Fixes #1745
2025-10-26 15:57:12 -07:00
miloschwartz
1227b3c11a use alert instead of badge for unlock status 2025-10-25 17:21:21 -07:00
miloschwartz
8973726f63 add org policy check to verify session 2025-10-25 17:15:37 -07:00
Owen
5559fef1bc Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-10-25 16:27:12 -07:00
Owen
9cb3c3821a Merge branch 'Pallavikumarimdb-feat/cert-resolver-through-UI' into dev 2025-10-25 16:25:51 -07:00
Owen
c85e367ded Merge branch 'feat/cert-resolver-through-UI' of github.com:Pallavikumarimdb/pangolin into Pallavikumarimdb-feat/cert-resolver-through-UI 2025-10-25 16:25:42 -07:00
Owen Schwartz
5e20487216 Merge pull request #1732 from Pallavikumarimdb/feat/show-update-for-client-olm
Client olm version show in the table with an update prompt
2025-10-25 16:23:51 -07:00
Owen Schwartz
bc6b9eb905 Merge pull request #1736 from Lokowitz/fix-geoip-blueprint
fix blueprint country issue - fix #1705 - option 2
2025-10-25 16:21:49 -07:00
Owen
5940bbd498 Uppercase 2025-10-25 16:20:50 -07:00
Owen
f4a0f6a2e6 Update ui 2025-10-25 16:17:45 -07:00
Milo Schwartz
0df7d45678 Update README.md 2025-10-25 13:48:14 -04:00
Fred KISSIE
a05ee2483b 💄 adjust form style for createblueprintform 2025-10-25 03:22:51 +02:00
Fred KISSIE
f5dbc18c05 create and apply blueprint 2025-10-25 03:06:54 +02:00
Fred KISSIE
dd052fa1af 💄 Gave a relooking to the blueprint table 2025-10-25 03:06:45 +02:00
Fred KISSIE
2cc4ad9c30 💄 fix header & cell misalignment in table 2025-10-25 03:05:47 +02:00
Fred KISSIE
4dd741cc3f 🔊 log all SQL queries 2025-10-25 02:55:19 +02:00
miloschwartz
9ce81b34c9 add confirm dialog to update security settings 2025-10-24 17:30:39 -07:00
miloschwartz
460df46abc update translation and send password reset email 2025-10-24 17:18:34 -07:00
miloschwartz
1e70e4289b add password expiry enforcement 2025-10-24 17:11:39 -07:00
Owen
5fa0ac5927 Add hybrid request logs function 2025-10-24 17:05:05 -07:00
Owen
4b40e7b8d6 Restrict features 2025-10-24 16:29:37 -07:00
Fred KISSIE
29cd035a05 🚧 add & validate blueprint yaml 2025-10-25 01:25:19 +02:00
miloschwartz
39d6b93d42 enforce max session length 2025-10-24 16:14:21 -07:00
miloschwartz
629f17294a 2fa policy check working 2025-10-24 14:31:50 -07:00
Owen
10a5af67aa Merge branch 'dev' into audit-logs 2025-10-24 11:15:39 -07:00
Owen
b542d82553 Consolidate into central cache 2025-10-24 11:14:07 -07:00
Owen
2a644c3f88 Working on settings 2025-10-24 10:51:32 -07:00
Owen
f6de61968d Merge branch 'dev' into audit-logs 2025-10-24 10:31:54 -07:00
Owen
68f0c4df3a Working on licencing 2025-10-24 10:11:28 -07:00
Pallavi Kumari
0743daf56a add en-US for proxy protocol 2025-10-24 16:30:34 +05:30
Pallavi Kumari
58b6ab2601 Implement Proxy Protocol handling in Traefik config generator 2025-10-24 15:56:46 +05:30
Fred KISSIE
038f8829c2 🚧 create blueprint form 2025-10-24 04:17:13 +02:00
miloschwartz
ddcf77a62d add basic org policy check in middleware 2025-10-23 18:15:00 -07:00
Owen
adefbdbeb3 Fix various ui bugs 2025-10-23 17:36:24 -07:00
Owen
921285e5b1 Filtering on all tables 2025-10-23 15:33:29 -07:00
Owen
264bf46798 Filtering working on both access and request 2025-10-23 14:34:56 -07:00
miloschwartz
5a7b5d65a4 remove org settings json 2025-10-23 14:22:50 -07:00
Fred KISSIE
23b13f0a0e 💄 add toploader navigation 2025-10-23 23:10:28 +02:00
Fred KISSIE
90ddffce0e 🚧 create blueprint page 2025-10-23 22:27:14 +02:00
Fred KISSIE
e30fde5237 💄 blueprint data table 2025-10-23 22:14:09 +02:00
Pallavi Kumari
ac683c3ff7 add pg schema for proxy protocol 2025-10-23 23:24:42 +05:30
Pallavi Kumari
b5a931c96e UI and backend update to add proxy protocol support 2025-10-23 23:07:26 +05:30
Lokowitz
5b61742075 change geoip to country 2025-10-23 13:27:34 +00:00
Lokowitz
4e4a38f7e9 move to match type country instead of geoip 2025-10-23 13:19:27 +00:00
miloschwartz
c1bb029a1c simplify telemetry collection 2025-10-22 21:41:36 -07:00
Owen
eae2c37388 Add expandable columns 2025-10-22 18:21:54 -07:00
dependabot[bot]
7193fea068 Bump the dev-patch-updates group with 3 updates
Bumps the dev-patch-updates group with 3 updates: [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss), [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@tailwindcss/postcss` from 4.1.14 to 4.1.15
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.15/packages/@tailwindcss-postcss)

Updates `tailwindcss` from 4.1.14 to 4.1.15
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.15/packages/tailwindcss)

Updates `typescript-eslint` from 8.46.1 to 8.46.2
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.2/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: typescript-eslint
  dependency-version: 8.46.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-23 01:20:34 +00:00
dependabot[bot]
9b85deebf8 Bump @types/node from 24.8.1 to 24.9.1 in the dev-minor-updates group
Bumps the dev-minor-updates group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/node` from 24.8.1 to 24.9.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.9.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-23 01:20:13 +00:00
Owen
0211f75cb6 Access logs working 2025-10-22 17:42:27 -07:00
Fred KISSIE
fa6b7ca3ed 🚧 (WIP) blueprints table 2025-10-23 00:33:49 +02:00
Fred KISSIE
007d03e7f6 ♻️ refactor 2025-10-23 00:27:07 +02:00
Fred KISSIE
a534301eb7 ♻️ make source not null 2025-10-23 00:26:41 +02:00
miloschwartz
1baa987016 update resend ids 2025-10-22 15:14:57 -07:00
Fred KISSIE
a5b48ab392 🚧 blueprints page 2025-10-23 00:13:31 +02:00
Owen
7f981f05fb Show resource link in table for requests 2025-10-22 14:58:18 -07:00
Fred KISSIE
259cea1c42 add API endpoint for listing blueprints 2025-10-22 23:49:43 +02:00
Fred KISSIE
9024b2a974 🗃️ finish db schemas for blueprints 2025-10-22 23:49:13 +02:00
Owen
f2c31d3ca6 Add actor data to request 2025-10-22 14:27:21 -07:00
miloschwartz
6f8b5dd909 change get to post for whitelist 2025-10-22 14:02:43 -07:00
Fred KISSIE
6521b66b7c 🍱 add jsonschema for blueprint yaml validation 2025-10-22 21:58:19 +02:00
Fred KISSIE
202d2075a6 🚧 add blueprint to the sidebar and scaffold page 2025-10-22 21:56:26 +02:00
Fred KISSIE
e575fae73b 🚧 SQLite database schema with modes (is it okay ?) 2025-10-22 21:56:10 +02:00
Fred KISSIE
d84ee3d03d 🌐 add blueprint section title in the sidebar in messages (en-US for now) 2025-10-22 21:55:41 +02:00
Fred KISSIE
ba745588e9 🎨 format with prettier 2025-10-22 21:55:09 +02:00
Pallavi Kumari
84731bdc19 client olm version show in the table 2025-10-23 00:55:48 +05:30
Owen
f748c5dbe4 Basic request log working 2025-10-22 12:23:48 -07:00
Owen
fdd4d5244f Temp dont ignore org 2025-10-22 10:59:35 -07:00
Owen
9301477262 Merge branch 'dev' into audit-logs 2025-10-22 10:34:31 -07:00
Owen
9a787e6ef8 Merge branch 'main' into dev 2025-10-22 10:34:21 -07:00
Owen Schwartz
5b8cdf7884 Merge pull request #1730 from Pallavikumarimdb/fix/shareable-link-resource-URI
Update shareable link resource URI to use NiceId instead of resourceId
2025-10-22 10:11:10 -07:00
Fred KISSIE
5fd104bb30 🗃️ add bluePrintRuns model 2025-10-22 14:02:37 +02:00
Pallavi Kumari
9ba42a8fa3 add niceid to CreateShareLinkForm 2025-10-22 16:18:19 +05:30
Pallavi Kumari
fe8fd2e3a8 change shareable link resource URI from resource Id to NiceId 2025-10-22 15:53:29 +05:30
Owen
9ebce35d2b Dont do local sites undefined in cloud 2025-10-21 22:02:09 -07:00
Owen
654145be84 Clean up imports and ordering 2025-10-21 21:58:09 -07:00
Owen
3662d42374 Add resource id and cc 2025-10-21 21:42:53 -07:00
Owen
d392fb371e Add logging for all auth 2025-10-21 21:22:56 -07:00
Owen
1142d6ac48 Date picker working 2025-10-21 20:15:43 -07:00
Owen
bdc3b2425b Basic table working 2025-10-21 17:35:13 -07:00
Owen
9a64f45815 Basic log table there 2025-10-21 15:26:03 -07:00
Fred KISSIE
3633e02ff7 🔨 run next server with turbopack (easy win) 2025-10-22 00:17:42 +02:00
Owen Schwartz
2c502ec764 Merge pull request #1728 from jonasmerkel/main
Update German translations for client terminology
2025-10-21 14:29:23 -07:00
Jonas
b17d7f0e27 Update German translations for client terminology 2025-10-21 23:26:27 +02:00
Owen
65364d6b0f Merge branch 'dev' into audit-logs 2025-10-21 11:31:33 -07:00
Owen
6fd6c77ce6 Further revert 2025-10-21 11:29:27 -07:00
Owen
e447549de1 revert changes around sites assigned to exit nodes 2025-10-21 11:12:27 -07:00
Pallavi Kumari
6b0dd00aa5 show IP of the server inside DNS records 2025-10-21 20:43:42 +05:30
Pallavi Kumari
461866836e Remove the popup after creating domain and redirect to domain details page 2025-10-21 17:41:14 +05:30
Pallavi Kumari
3ae42f054f show the wildcard record info 2025-10-21 17:07:34 +05:30
Pallavi Kumari
5a571f19e1 add each form control it's own form field/item/control 2025-10-21 16:10:23 +05:30
Owen
70aeaf7b5d Change badges and button size 2025-10-21 15:37:03 +05:30
Pallavi Kumari
7a6838f5a5 fix lint 2025-10-21 15:37:03 +05:30
Pallavi Kumari
07f5e8f215 add update domain Settings for wildcard 2025-10-21 15:37:03 +05:30
Pallavi Kumari
2b05bc1f5f ui and layout fix 2025-10-21 15:37:03 +05:30
Pallavi Kumari
edf64ae7b5 fix invalid "default" 2025-10-21 15:37:03 +05:30
Pallavi Kumari
7370448be9 pg schema 2025-10-21 15:37:02 +05:30
Pallavi Kumari
51af293d66 add doc link button and fix continuous polling 2025-10-21 15:37:02 +05:30
Pallavi Kumari
d37e28215e add restart button 2025-10-21 15:37:02 +05:30
Pallavi Kumari
2c01849f2e fix import 2025-10-21 15:37:02 +05:30
Pallavi Kumari
c29ba9bb5f add DNS Records table 2025-10-21 15:37:02 +05:30
Pallavi Kumari
8fdf120ec2 backend setup to store and get DNS Records 2025-10-21 15:37:02 +05:30
Pallavi Kumari
a9b9161c40 template for Domain Settings 2025-10-21 15:37:02 +05:30
Pallavi Kumari
43f907ebec remove import 2025-10-21 15:37:02 +05:30
Pallavi Kumari
ae670e1eb5 initial setup for viewing domain details 2025-10-21 15:37:02 +05:30
Pallavi Kumari
f102718901 add edit button to domain table 2025-10-21 15:37:02 +05:30
Pallavi Kumari
9d452efc7d fix treafik config mismatch 2025-10-21 15:37:02 +05:30
Pallavi Kumari
156fe529b5 fix code conflicts and match dev change 2025-10-21 15:37:02 +05:30
Owen
df24525105 Fix type issues 2025-10-21 15:37:02 +05:30
Owen
d938345deb Copy in config to db, remove 2nd column, + prefer 2025-10-21 15:37:02 +05:30
Pallavi Kumari
d6681733dd remove custom cery type form config file 2025-10-21 15:37:02 +05:30
Pallavi Kumari
2f1aec02f0 traefik config update for custom Cert Resolver 2025-10-21 15:37:01 +05:30
Pallavi Kumari
d30e0a3c51 schema add 2025-10-21 15:37:01 +05:30
Pallavi Kumari
3f3e9cf1bb add cert resolver 2025-10-21 15:37:01 +05:30
Owen
e77909d498 Change runs on 2025-10-20 21:45:40 -07:00
Owen
d10830f892 Fix exitNodeId col 2025-10-20 21:34:10 -07:00
Owen
18d8f72da2 Change runner back 2025-10-20 21:01:45 -07:00
Owen
4a59823e58 Actually run the migrations; update exit nodes
Fix #1718
Fix #1720
2025-10-20 20:55:47 -07:00
Owen
f3149e46cd Starting to create frontend 2025-10-20 20:40:04 -07:00
Owen
60379a7b4e Merge branch 'dev' 2025-10-20 17:17:02 -07:00
dependabot[bot]
605b3cccee Bump @types/node from 24.7.2 to 24.8.1 in the dev-minor-updates group
Bumps the dev-minor-updates group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/node` from 24.7.2 to 24.8.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.8.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 17:16:40 -07:00
dependabot[bot]
843799f4f6 Bump the dev-patch-updates group with 2 updates
Bumps the dev-patch-updates group with 2 updates: [@react-email/preview-server](https://github.com/resend/react-email/tree/HEAD/packages/preview-server) and [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email).


Updates `@react-email/preview-server` from 4.3.0 to 4.3.1
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/preview-server/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/preview-server@4.3.1/packages/preview-server)

Updates `react-email` from 4.3.0 to 4.3.1
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@4.3.1/packages/react-email)

---
updated-dependencies:
- dependency-name: "@react-email/preview-server"
  dependency-version: 4.3.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: react-email
  dependency-version: 4.3.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 17:16:40 -07:00
Marc Schäfer
a69cda5c13 ci(actions): add GHCR mirroring and cosign signing for Docker images
- mirror images from Docker Hub to GHCR using skopeo (preserves multi-arch manifests)
- login to GHCR via docker/login-action for signing/pushing
- install cosign and perform dual signing: keyless (OIDC) + key-based; verify signatures
- add required permissions for id-token/packages and reference necessary secrets
2025-10-20 17:16:40 -07:00
Marc Schäfer
dbaa3dbd52 ci(actions): add permissions section to workflows 2025-10-20 17:16:40 -07:00
Marc Schäfer
58197c6fb2 ci(actions): change runner from ubuntu-latest to amd64-runner 2025-10-20 17:16:40 -07:00
Marc Schäfer
7813093452 ci(actions): pin action versions to commit SHAs for security
- Pin actions/checkout to SHA for v5.0.0
- Pin docker/setup-qemu-action to SHA for v3.6.0
- Pin docker/setup-buildx-action to SHA for v3.11.1
- Pin docker/login-action to SHA for v3.6.0
- Pin actions/setup-go to SHA for v6.0.0
- Pin actions/upload-artifact to SHA for v4.6.2
- Pin actions/setup-node to SHA for v6.0.0
- Pin actions/stale to SHA for v10.1.0
2025-10-20 17:16:40 -07:00
Marc Schäfer
3f2c3dc987 feat(actions): Sync Images from Docker to GHCR 2025-10-20 17:16:40 -07:00
miloschwartz
08ddba25d0 hide method selector on raw resources 2025-10-20 17:15:45 -07:00
Owen Schwartz
d47fa7e64f Merge pull request #1715 from marcschaeferger/gh-action
Adding GHCR to CI/CD Release Workflow & further improvements
2025-10-20 17:12:05 -07:00
Marc Schäfer
c87aa2e537 Merge branch 'fosrl:main' into gh-action 2025-10-21 02:09:04 +02:00
Marc Schäfer
bc430546bc ci(actions): add GHCR mirroring and cosign signing for Docker images
- mirror images from Docker Hub to GHCR using skopeo (preserves multi-arch manifests)
- login to GHCR via docker/login-action for signing/pushing
- install cosign and perform dual signing: keyless (OIDC) + key-based; verify signatures
- add required permissions for id-token/packages and reference necessary secrets
2025-10-21 02:07:26 +02:00
Owen Schwartz
9428e065eb Merge pull request #1707 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-be6156b6cb
Bump @types/node from 24.7.2 to 24.8.1 in the dev-minor-updates group
2025-10-20 17:06:20 -07:00
Owen Schwartz
10408c5717 Merge pull request #1706 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-b03f25c1b7
Bump the dev-patch-updates group with 2 updates
2025-10-20 17:06:13 -07:00
Owen Schwartz
ae902da913 Merge pull request #1714 from fosrl/crowdin_dev
New Crowdin updates
2025-10-20 17:06:00 -07:00
Owen Schwartz
0be5a91eff New translations en-us.json (Spanish) 2025-10-20 17:05:44 -07:00
Owen Schwartz
7dcf46ce98 New translations en-us.json (Norwegian Bokmal) 2025-10-20 17:05:42 -07:00
Owen Schwartz
33e6e4b411 New translations en-us.json (Chinese Simplified) 2025-10-20 17:05:41 -07:00
Owen Schwartz
bab6e4eb0d New translations en-us.json (Turkish) 2025-10-20 17:05:39 -07:00
Owen Schwartz
6a7c7521d8 New translations en-us.json (Russian) 2025-10-20 17:05:38 -07:00
Owen Schwartz
d070244ea7 New translations en-us.json (Portuguese) 2025-10-20 17:05:37 -07:00
Owen Schwartz
9219bb7d6e New translations en-us.json (Polish) 2025-10-20 17:05:35 -07:00
Owen Schwartz
54e83f35e5 New translations en-us.json (Dutch) 2025-10-20 17:05:34 -07:00
Owen Schwartz
eb138d6526 New translations en-us.json (Korean) 2025-10-20 17:05:33 -07:00
Owen Schwartz
edd0c3099b New translations en-us.json (Italian) 2025-10-20 17:05:31 -07:00
Owen Schwartz
04455d40cf New translations en-us.json (German) 2025-10-20 17:05:30 -07:00
Owen Schwartz
221af94d15 New translations en-us.json (Czech) 2025-10-20 17:05:29 -07:00
Owen Schwartz
48ac3bb7af New translations en-us.json (Bulgarian) 2025-10-20 17:05:27 -07:00
Owen Schwartz
07273b8b7f New translations en-us.json (French) 2025-10-20 17:05:26 -07:00
Marc Schäfer
bfb5b2864d ci(actions): add permissions section to workflows 2025-10-21 01:59:52 +02:00
Marc Schäfer
07330e84fb ci(actions): change runner from ubuntu-latest to amd64-runner 2025-10-21 01:54:23 +02:00
Marc Schäfer
0e39704b3a ci(actions): pin action versions to commit SHAs for security
- Pin actions/checkout to SHA for v5.0.0
- Pin docker/setup-qemu-action to SHA for v3.6.0
- Pin docker/setup-buildx-action to SHA for v3.11.1
- Pin docker/login-action to SHA for v3.6.0
- Pin actions/setup-go to SHA for v6.0.0
- Pin actions/upload-artifact to SHA for v4.6.2
- Pin actions/setup-node to SHA for v6.0.0
- Pin actions/stale to SHA for v10.1.0
2025-10-21 01:53:20 +02:00
miloschwartz
f25e794e7c add checks to prevent fk failure in ensureActions 2025-10-20 16:01:40 -07:00
Owen Schwartz
df46ce8bdc Merge pull request #1712 from marcschaeferger/ghcr
feat(actions): Sync Images from Docker to GHCR
2025-10-20 13:07:34 -07:00
Marc Schäfer
4d83f537dc feat(actions): Sync Images from Docker to GHCR 2025-10-20 22:06:36 +02:00
Owen
58443ef53f Reorder log middleware 2025-10-19 22:25:00 -07:00
Owen
1ee52ad86b Add headers 2025-10-19 21:59:51 -07:00
Owen
bc941239ec Fix the indexes 2025-10-19 21:59:41 -07:00
Owen
9a52d5387d Merge branch 'dev' into audit-logs 2025-10-19 21:54:26 -07:00
Owen
1f50bc3752 Add logActionAudit and query endpoint 2025-10-19 21:53:00 -07:00
dependabot[bot]
0819df0910 Bump @types/node from 24.7.2 to 24.8.1 in the dev-minor-updates group
Bumps the dev-minor-updates group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/node` from 24.7.2 to 24.8.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.8.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 01:35:01 +00:00
dependabot[bot]
663787c15b Bump the dev-patch-updates group with 2 updates
Bumps the dev-patch-updates group with 2 updates: [@react-email/preview-server](https://github.com/resend/react-email/tree/HEAD/packages/preview-server) and [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email).


Updates `@react-email/preview-server` from 4.3.0 to 4.3.1
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/preview-server/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/preview-server@4.3.1/packages/preview-server)

Updates `react-email` from 4.3.0 to 4.3.1
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@4.3.1/packages/react-email)

---
updated-dependencies:
- dependency-name: "@react-email/preview-server"
  dependency-version: 4.3.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: react-email
  dependency-version: 4.3.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 01:32:52 +00:00
Owen
2c39d07261 Add missing headers 2025-10-19 17:59:40 -07:00
Owen
dce84b9b09 Add action audit middleware and tables 2025-10-19 17:58:52 -07:00
Owen
a5bab6bb80 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-10-19 12:04:59 -07:00
miloschwartz
7536c03f63 add int api routes for add/remote email to resource email whitelist 2025-10-19 12:04:20 -07:00
Owen
ada5d2ef0e Update domain 2025-10-19 11:59:10 -07:00
Owen
b8bead0590 Select exit node for local sites 2025-10-19 11:13:33 -07:00
Milo Schwartz
68f852d6d1 Merge pull request #1699 from Pallavikumarimdb/make-easier-to-delete
Make it easier to delete things
2025-10-19 14:00:19 -04:00
Owen
d9fe5a8819 Always set exit node to online
Fixes #1692
2025-10-19 10:47:32 -07:00
Owen
346183a23f Only allow nodes to pull with defined exitNodeID 2025-10-19 10:46:25 -07:00
Owen
dcfd7f5443 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-10-19 10:43:39 -07:00
Pallavi Kumari
e59cd6672b fix space 2025-10-19 22:23:57 +05:30
Pallavi Kumari
7c8c440f67 fix text 2025-10-19 21:36:47 +05:30
Pallavi Kumari
f258c41f15 easier to delete 2025-10-19 20:37:07 +05:30
Pallavi Kumari
ae4a24f4aa easier to delete resources 2025-10-19 15:50:00 +05:30
Pallavi Kumari
476cdcfe86 easier to delete sites 2025-10-19 15:02:35 +05:30
Owen
f869df2f65 Working on fixing exit node issue 2025-10-18 21:32:26 -07:00
Owen Schwartz
03cfabacd9 Merge pull request #1695 from Pallavikumarimdb/fix/rule-priority-input
Make priority input box focused on pressing the up/down arrows
2025-10-18 13:38:54 -07:00
miloschwartz
47ac5875f3 change digpangolin.com to pangolin.net 2025-10-18 11:51:09 -07:00
miloschwartz
f67327358e Merge branch 'main' into dev 2025-10-18 11:41:06 -07:00
Milo Schwartz
4901823f15 Update README.md 2025-10-18 14:25:22 -04:00
Pallavi Kumari
5407e3c821 make priority input box focus on up/down click 2025-10-18 23:38:14 +05:30
Owen Schwartz
1d5cdad8b7 Merge pull request #1693 from Pallavikumarimdb/fix/sorting-resources-alphabetically-by-default
Sorting Resources Alphabetically by Default
2025-10-18 10:03:28 -07:00
Owen Schwartz
cd2424cb77 Merge pull request #1691 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-30703f013a
Bump the prod-patch-updates group across 1 directory with 4 updates
2025-10-18 10:03:23 -07:00
Pallavi Kumari
c17efde6bf Sorting Resources Alphabetically by Default 2025-10-18 14:43:54 +05:30
Owen
40cd8cdec7 Merge branch 'dev' 2025-10-17 16:25:01 -07:00
Owen
6768672a44 Merge branch 'main' of github.com:fosrl/pangolin 2025-10-17 16:24:55 -07:00
Owen
240c5b005b Add more transactions support 2025-10-17 16:22:43 -07:00
dependabot[bot]
8dde170a35 Bump the prod-patch-updates group across 1 directory with 4 updates
Bumps the prod-patch-updates group with 3 updates in the / directory: [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components), [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) and [next](https://github.com/vercel/next.js).


Updates `@react-email/components` from 0.5.6 to 0.5.7
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/components/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@0.5.7/packages/components)

Updates `@react-email/render` from 1.3.2 to 1.4.0
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/render/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/render@1.4.0/packages/render)

Updates `eslint-config-next` from 15.5.5 to 15.5.6
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v15.5.6/packages/eslint-config-next)

Updates `next` from 15.5.5 to 15.5.6
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.5.5...v15.5.6)

---
updated-dependencies:
- dependency-name: "@react-email/components"
  dependency-version: 0.5.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@react-email/render"
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-patch-updates
- dependency-name: eslint-config-next
  dependency-version: 15.5.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: next
  dependency-version: 15.5.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-17 21:06:44 +00:00
Owen
c07abf8ff9 Pass through transaction 2025-10-17 14:05:17 -07:00
Owen
e5a436593f Delete all before migrating 2025-10-17 14:05:17 -07:00
Owen
bb6e093ac6 Priority needs to be def 2025-10-17 14:05:17 -07:00
Milo Schwartz
59a334ce24 Update README.md 2025-10-17 14:05:17 -07:00
Owen
d241dcfb27 Fix typo 2025-10-17 14:05:17 -07:00
Owen
af263e7913 Pass through transaction 2025-10-17 14:04:49 -07:00
Owen Schwartz
6610e7d405 Merge pull request #1673 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-ac45ae572b
Bump the prod-patch-updates group across 1 directory with 2 updates
2025-10-17 14:02:36 -07:00
Owen Schwartz
c476e65cf2 Merge pull request #1677 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-3f2a7d9f8f
Bump the dev-patch-updates group across 1 directory with 2 updates
2025-10-17 14:01:57 -07:00
Owen Schwartz
b69b2eeeb3 Merge pull request #1689 from barnabehvrd/patch-2
FR translation update
2025-10-17 13:57:09 -07:00
Barnabé Havard
89dab0917b Fixed (again ...) indentation issues 2025-10-17 22:42:07 +02:00
Barnabé Havard
73efdb95ae Fixed indentation issues 2025-10-17 22:36:08 +02:00
Barnabé Havard
1bcca88614 Updated several translation 2025-10-17 22:32:51 +02:00
Owen
3af1e0ef56 Delete all before migrating 2025-10-17 11:56:19 -07:00
Owen Schwartz
8387571c1d Merge pull request #1684 from Pallavikumarimdb/fix/make-priority-optional
Make priority optional in schema
2025-10-17 10:14:01 -07:00
Pallavi Kumari
1d017f60b4 make priority optional in schema 2025-10-17 19:51:32 +05:30
dependabot[bot]
81effda9e8 Bump the prod-patch-updates group across 1 directory with 2 updates
Bumps the prod-patch-updates group with 2 updates in the / directory: [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) and [next](https://github.com/vercel/next.js).


Updates `eslint-config-next` from 15.5.4 to 15.5.5
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v15.5.5/packages/eslint-config-next)

Updates `next` from 15.5.4 to 15.5.5
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.5.4...v15.5.5)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-version: 15.5.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: next
  dependency-version: 15.5.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-17 01:22:32 +00:00
dependabot[bot]
9343906ab1 Bump the dev-patch-updates group across 1 directory with 2 updates
Bumps the dev-patch-updates group with 2 updates in the / directory: [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) and [esbuild](https://github.com/evanw/esbuild).


Updates `@types/react-dom` from 19.2.1 to 19.2.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `esbuild` from 0.25.10 to 0.25.11
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.10...v0.25.11)

---
updated-dependencies:
- dependency-name: "@types/react-dom"
  dependency-version: 19.2.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.25.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-17 01:20:39 +00:00
Owen
08b7d6735c Priority needs to be def 2025-10-16 14:52:14 -07:00
Milo Schwartz
a91ebd1e91 Update README.md 2025-10-16 17:45:11 -04:00
Owen
312e03b4eb Fix typo 2025-10-16 14:43:11 -07:00
miloschwartz
e8a57e432c hide path match and rewrite in raw resource 2025-10-16 14:30:22 -07:00
Owen
bca2eef2e8 Show ssl toggle 2025-10-16 14:24:36 -07:00
Owen
ec7211a15d Handle updating exit node and fix raw resource issues 2025-10-16 13:55:08 -07:00
Owen
46807c6477 Fix various bugs 2025-10-16 10:23:25 -07:00
miloschwartz
b578786e62 add empty state to sites table cols 2025-10-16 10:11:50 -07:00
miloschwartz
2e0ad8d262 branding only works when licensed 2025-10-15 22:07:33 -07:00
miloschwartz
003f0cfa6d fix target validation on create site 2025-10-15 20:43:59 -07:00
Owen
ee3df081ef Fix docker button and positioning 2025-10-15 20:21:15 -07:00
Owen
08eeb12519 Fix going away when creating target
cd8062ada3
2025-10-15 17:48:31 -07:00
Owen
e66c6b2505 remove volumes for remote nodes 2025-10-15 17:44:03 -07:00
miloschwartz
d2a880d9c8 update docker command in makefile 2025-10-15 17:36:09 -07:00
miloschwartz
edc0b86470 add translation and update url 2025-10-15 17:32:39 -07:00
Owen
aebe6b80b7 Make private file optional 2025-10-15 17:22:43 -07:00
Owen
4d87333b43 Merge branch 'main' into dev 2025-10-15 17:15:48 -07:00
Owen
ef32f3ed5a Load encryption file dynamically 2025-10-15 17:14:24 -07:00
Owen
216ded3034 Merge branch 'main' of github.com:fosrl/pangolin 2025-10-15 17:14:14 -07:00
miloschwartz
cb59fe2cee update readme 2025-10-15 16:34:06 -07:00
miloschwartz
7776f6d09c disable branding 2025-10-15 16:32:16 -07:00
Owen
c50392c947 Remove logging 2025-10-15 13:57:42 -07:00
Owen
ceee978fcd Merge branch 'dev' 2025-10-15 12:13:15 -07:00
Owen
c5a73dc87e Try to handle the certs better 2025-10-15 12:12:59 -07:00
Owen
7198ef2774 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-10-15 11:12:38 -07:00
miloschwartz
7e9a066797 update form 2025-10-15 11:10:37 -07:00
Milo Schwartz
ba96332313 Update README.md 2025-10-15 14:02:28 -04:00
Owen
e2d0338b0b Merge branch 'dev' 2025-10-15 10:39:50 -07:00
Owen
59ecab5738 Dont ping remote nodes; handle certs better 2025-10-15 10:39:45 -07:00
miloschwartz
721bf3403d fix form 2025-10-15 10:21:00 -07:00
Owen
3b8ba47377 Update package lock 2025-10-14 18:00:46 -07:00
Milo Schwartz
e752929f69 Update README.md 2025-10-14 20:50:41 -04:00
Milo Schwartz
e41c3e6f54 Update README.md 2025-10-14 20:48:44 -04:00
Milo Schwartz
9dedd1a8de Update README.md 2025-10-14 20:41:14 -04:00
Owen
c4a5fae28f Update workflow and add runner 2025-10-14 17:34:47 -07:00
Owen
5f95a3233f Merge branch 'dev' 2025-10-14 17:05:40 -07:00
Owen Schwartz
d3174d0196 Merge pull request #1671 from fosrl/crowdin_dev
New Crowdin updates
2025-10-14 17:03:22 -07:00
Owen Schwartz
3710d71974 New translations en-us.json (Spanish) 2025-10-14 17:02:54 -07:00
Owen Schwartz
f62e88eb67 New translations en-us.json (Norwegian Bokmal) 2025-10-14 17:02:53 -07:00
Owen Schwartz
904b302fb6 New translations en-us.json (Chinese Simplified) 2025-10-14 17:02:52 -07:00
Owen Schwartz
5fc096f2d5 New translations en-us.json (Turkish) 2025-10-14 17:02:50 -07:00
Owen Schwartz
87668c492f New translations en-us.json (Russian) 2025-10-14 17:02:49 -07:00
Owen Schwartz
6d7a8b97ad New translations en-us.json (Portuguese) 2025-10-14 17:02:48 -07:00
Owen Schwartz
282d444933 New translations en-us.json (Polish) 2025-10-14 17:02:46 -07:00
Owen Schwartz
f3d7d97fb9 New translations en-us.json (Dutch) 2025-10-14 17:02:45 -07:00
Owen Schwartz
de857a7c4e New translations en-us.json (Korean) 2025-10-14 17:02:44 -07:00
Owen Schwartz
20a0ebfc9d New translations en-us.json (Italian) 2025-10-14 17:02:43 -07:00
Owen Schwartz
ba8166bdeb New translations en-us.json (German) 2025-10-14 17:02:41 -07:00
Owen Schwartz
2b634fc6c5 New translations en-us.json (Czech) 2025-10-14 17:02:40 -07:00
Owen Schwartz
5429bc03ab New translations en-us.json (Bulgarian) 2025-10-14 17:02:38 -07:00
Owen Schwartz
a558b34608 New translations en-us.json (French) 2025-10-14 17:02:37 -07:00
Owen Schwartz
1850d56977 Merge pull request #1669 from fosrl/dev
Dev
2025-10-14 16:57:01 -07:00
Owen
61b4c62824 Merge branch 'main' into dev 2025-10-14 16:55:12 -07:00
Owen
10e5ccfe86 Handle tsconfig 2025-10-14 16:34:11 -07:00
Owen
9f5d475e80 Migrations work 2025-10-14 16:34:11 -07:00
Milo Schwartz
9bb9a3acbe Update README.md 2025-10-14 19:04:09 -04:00
Milo Schwartz
0923b7e3c5 Update README.md 2025-10-14 18:59:31 -04:00
Owen
ccd81f6fe2 Adjust migration 2025-10-14 15:31:56 -07:00
miloschwartz
0f74107e86 add links to license 2025-10-14 14:39:05 -07:00
Owen
8377434c08 Add update database to installer 2025-10-14 14:23:18 -07:00
Owen
1fbf2bfb8d Remove managed add maxmind 2025-10-14 14:15:33 -07:00
Owen
42facf8e12 Add pg migration 2025-10-14 12:11:17 -07:00
Owen
4bb3d85c25 Add sqlite migration 2025-10-14 12:04:02 -07:00
Owen
c0039190bd Fix frontend type imports 2025-10-14 11:28:56 -07:00
Owen
a8d00a47cd Remote nodes working 2025-10-14 10:58:51 -07:00
Owen
57bcbf6c48 Include traefik config when sending to remote nodes 2025-10-14 10:38:41 -07:00
Owen
c57db1479e Update language for local sites 2025-10-14 10:25:03 -07:00
Owen
cd8062ada3 Fix various bugs 2025-10-14 10:25:03 -07:00
Owen
244d05adb1 Import the right customer 2025-10-14 10:25:03 -07:00
miloschwartz
812bd64325 improve docker container selector button placement 2025-10-13 18:33:55 -07:00
miloschwartz
276d1361ac move billing and and licenses up in sidebar 2025-10-13 18:07:00 -07:00
miloschwartz
881eac4722 fix tier and remove test interval 2025-10-13 17:01:32 -07:00
Owen
2a2a550a6a Merge branch 'distribution' of github.com:fosrl/pangolin-saas into distribution 2025-10-13 17:00:37 -07:00
miloschwartz
e75001080a update license terminateAt and update word mark 2025-10-13 16:45:19 -07:00
miloschwartz
6fbba38a76 fix license type and default selected domain type 2025-10-13 16:45:19 -07:00
Owen
902b413881 Path rewriting working? 2025-10-13 16:41:14 -07:00
Owen
8b2f8ad3ef Add rewriting to traefik config 2025-10-13 15:53:17 -07:00
Owen
377cb77307 Returning unauthorized 2025-10-13 15:34:26 -07:00
miloschwartz
733bf0b169 set wildcard domain verified to true 2025-10-13 15:31:34 -07:00
miloschwartz
8faff3e075 hide provided domains if not using dns 2025-10-13 15:21:59 -07:00
Owen
48af91c976 Return unauthorized if header auth is the only one 2025-10-13 15:20:53 -07:00
Owen
6664efaa13 Fix up UI around resource auth headers 2025-10-13 15:20:53 -07:00
miloschwartz
e5ee96cf52 fix create domain 2025-10-13 15:08:57 -07:00
Owen
38faf1f905 Add header auth so it does not allow passing 2025-10-13 14:59:54 -07:00
Owen
2cff142266 Use Pangolin DNS fix 2025-10-13 14:42:40 -07:00
miloschwartz
2c99cfacc0 fix header auth formatting 2025-10-13 14:39:41 -07:00
miloschwartz
0c63ea1f50 remove log 2025-10-13 14:28:23 -07:00
Owen
f50df66e3a Fix use_pangolin_dns 2025-10-13 14:27:51 -07:00
Owen
4b93491160 rename generateOwnCertificates and check in resource header 2025-10-13 14:26:36 -07:00
Owen
19210cbf7d Hide cname and ns if not using dns 2025-10-13 14:22:06 -07:00
miloschwartz
9af206b69a move schemas to folder 2025-10-13 14:13:26 -07:00
Owen
b6b9c71c5e Pass this middleware correctly in saas 2025-10-13 12:27:45 -07:00
Owen
c000c4502f Fix instance name 2025-10-13 12:13:04 -07:00
Owen
b6c1d9a592 Merge branch 'dev' into distribution 2025-10-13 12:04:41 -07:00
Owen Schwartz
7a75fe0cad Merge pull request #1658 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-6f2a42a27f
Bump @types/node from 24.7.0 to 24.7.2 in the dev-patch-updates group
2025-10-13 12:03:21 -07:00
Owen Schwartz
a83e660902 Merge pull request #1659 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-9b5291575b
Bump the prod-minor-updates group with 2 updates
2025-10-13 12:03:09 -07:00
Owen Schwartz
65eb3e4b95 Merge pull request #1612 from Pallavikumarimdb/fix/UI-adjustment
UI Adjustments
2025-10-13 12:02:55 -07:00
Pallavi Kumari
093fb419f3 add en-US 2025-10-14 00:28:00 +05:30
Pallavi Kumari
026e56aead fix lint 2025-10-14 00:28:00 +05:30
Pallavi Kumari
fa9bc59f62 match create resource ui with proxy ui 2025-10-14 00:28:00 +05:30
Pallavi Kumari
06ec80db42 replace dialog with credenza 2025-10-14 00:28:00 +05:30
miloschwartz
24d564b79b add advanced toggle to targets table 2025-10-14 00:28:00 +05:30
Owen
2f5e6248cd Small ui adjustments 2025-10-14 00:27:24 +05:30
Pallavi Kumari
c0cc81ed96 standardizing the targets input table 2025-10-14 00:27:24 +05:30
Pallavi Kumari
b33a54a449 remove unused 2025-10-14 00:27:24 +05:30
Pallavi Kumari
94137e587c change target config ui for create resource 2025-10-14 00:27:24 +05:30
Pallavi Kumari
a6086d3724 address input design 2025-10-14 00:27:24 +05:30
Pallavi Kumari
0a377150e3 reorder columns 2025-10-14 00:27:24 +05:30
Pallavi Kumari
d20e0a228a adjust target config ui inside create resource 2025-10-14 00:27:24 +05:30
Pallavi Kumari
ca146a1b57 adjust target config column 2025-10-14 00:27:24 +05:30
Pallavi Kumari
c7c3e3ee73 refresh button inside admin 2025-10-14 00:27:24 +05:30
Pallavi Kumari
cd27f6459c refresh button 2025-10-14 00:27:24 +05:30
Pallavi Kumari
b1e212721e refresh button for role, user, share-link, invitation table 2025-10-14 00:27:24 +05:30
Pallavi Kumari
ccd2773331 refresh button on resources page 2025-10-14 00:27:23 +05:30
Pallavi Kumari
cfa82b51fb refresh button in clients page 2025-10-14 00:27:23 +05:30
Owen
9c91a8db46 Update build process 2025-10-13 11:49:48 -07:00
miloschwartz
b160eee8d2 Merge branch 'dev' into distribution 2025-10-13 11:06:14 -07:00
miloschwartz
37ceabdf5d add enterprise license system 2025-10-13 10:41:10 -07:00
Owen
e7828a43fa Add flag for generate own certs 2025-10-13 10:32:41 -07:00
dependabot[bot]
ccb1f04ad8 Bump the prod-minor-updates group with 2 updates
Bumps the prod-minor-updates group with 2 updates: [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) and [react-hook-form](https://github.com/react-hook-form/react-hook-form).


Updates `@aws-sdk/client-s3` from 3.906.0 to 3.908.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.908.0/clients/client-s3)

Updates `react-hook-form` from 7.64.0 to 7.65.0
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.64.0...v7.65.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.908.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.65.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 01:38:51 +00:00
dependabot[bot]
4c14ccbb63 Bump @types/node from 24.7.0 to 24.7.2 in the dev-patch-updates group
Bumps the dev-patch-updates group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/node` from 24.7.0 to 24.7.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.7.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 01:33:47 +00:00
Owen Schwartz
25c24ca9cf Merge pull request #1639 from fosrl/dependabot/go_modules/install/prod-minor-updates-cf68330517
Bump golang.org/x/term from 0.35.0 to 0.36.0 in /install in the prod-minor-updates group
2025-10-12 17:08:31 -07:00
Owen Schwartz
787869fe21 Merge pull request #1641 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-7acd695279
Bump the prod-minor-updates group with 2 updates
2025-10-12 17:08:20 -07:00
Owen Schwartz
b51c27a823 Merge pull request #1646 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-942db9cd59
Bump the prod-patch-updates group across 1 directory with 3 updates
2025-10-12 17:08:11 -07:00
Owen
5917881b47 Remove dev image for now #1625 2025-10-12 17:06:41 -07:00
Owen
c7a40d59b7 Seperate managed node code to fosrl/pangolin-node 2025-10-12 16:34:36 -07:00
Owen
a50c0d84e9 Make easier to run in dev - fix a couple of things 2025-10-12 16:23:38 -07:00
Owen
f17a957058 Cleaning up more imports 2025-10-11 20:46:49 -07:00
Owen
2c63851130 Separate types & fix #private import 2025-10-11 19:02:15 -07:00
miloschwartz
6b125bba7c reject user if no policies match and remove root user in auto provision 2025-10-10 11:52:45 -07:00
Owen
d92b87b7c8 Chungus 2.0 2025-10-10 11:27:15 -07:00
miloschwartz
f64a477c3d fix spacing issue in strategy select 2025-10-09 20:21:16 -07:00
dependabot[bot]
b6f8ed1e4a Bump the prod-patch-updates group across 1 directory with 3 updates
Bumps the prod-patch-updates group with 3 updates in the / directory: [next-intl](https://github.com/amannn/next-intl), [npm](https://github.com/npm/cli) and [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node).


Updates `next-intl` from 4.3.11 to 4.3.12
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.3.11...v4.3.12)

Updates `npm` from 11.6.1 to 11.6.2
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v11.6.1...v11.6.2)

Updates `posthog-node` from 5.9.3 to 5.9.5
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.9.5/packages/node)

---
updated-dependencies:
- dependency-name: next-intl
  dependency-version: 4.3.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: npm
  dependency-version: 11.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: posthog-node
  dependency-version: 5.9.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-10 01:21:19 +00:00
dependabot[bot]
bad88e4741 Bump the prod-minor-updates group with 2 updates
Bumps the prod-minor-updates group with 2 updates: [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) and [react-easy-sort](https://github.com/ValentinH/react-easy-sort).


Updates `@aws-sdk/client-s3` from 3.901.0 to 3.906.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.906.0/clients/client-s3)

Updates `react-easy-sort` from 1.7.0 to 1.8.0
- [Release notes](https://github.com/ValentinH/react-easy-sort/releases)
- [Commits](https://github.com/ValentinH/react-easy-sort/compare/v1.7.0...v1.8.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.906.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-easy-sort
  dependency-version: 1.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-09 01:26:12 +00:00
dependabot[bot]
01db519691 Bump golang.org/x/term in /install in the prod-minor-updates group
Bumps the prod-minor-updates group in /install with 1 update: [golang.org/x/term](https://github.com/golang/term).


Updates `golang.org/x/term` from 0.35.0 to 0.36.0
- [Commits](https://github.com/golang/term/compare/v0.35.0...v0.36.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-version: 0.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-09 01:22:20 +00:00
miloschwartz
e601038c0f fix role extraction in idp form 2025-10-08 17:49:30 -07:00
miloschwartz
e0996a17ef rename managed nodes 2025-10-08 17:35:08 -07:00
Owen
526307e192 Fix ssl undefined issue 2025-10-08 16:43:40 -07:00
miloschwartz
1b01c4f053 fix idp infinite redirect closes #1540 2025-10-08 14:00:26 -07:00
Owen Schwartz
a184e23f16 Merge pull request #1634 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-f2d0e72ffc
Bump the prod-minor-updates group with 8 updates
2025-10-08 13:57:14 -07:00
Owen Schwartz
06156e0ca6 Merge pull request #1633 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-831eaa71e3
Bump the prod-patch-updates group with 3 updates
2025-10-08 13:56:33 -07:00
Owen
02b1de3266 Make sure siteIds are numbers
Fixes PAN-145
2025-10-08 12:06:48 -07:00
Owen
c5b3d92466 Update lock 2025-10-07 21:11:29 -07:00
miloschwartz
186a78b064 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-10-07 20:33:42 -07:00
miloschwartz
9a808dc139 fix invite flow 2025-10-07 20:32:44 -07:00
dependabot[bot]
977404b8c3 Bump the prod-minor-updates group with 8 updates
Bumps the prod-minor-updates group with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.837.0` | `3.901.0` |
| [eslint](https://github.com/eslint/eslint) | `9.35.0` | `9.37.0` |
| [ioredis](https://github.com/luin/ioredis) | `5.6.1` | `5.8.1` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.544.0` | `0.545.0` |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.1.1` | `19.2.0` |
| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.1.1` | `19.2.0` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.62.0` | `7.64.0` |
| [winston](https://github.com/winstonjs/winston) | `3.17.0` | `3.18.3` |


Updates `@aws-sdk/client-s3` from 3.837.0 to 3.901.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.901.0/clients/client-s3)

Updates `eslint` from 9.35.0 to 9.37.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.35.0...v9.37.0)

Updates `ioredis` from 5.6.1 to 5.8.1
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/redis/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.6.1...v5.8.1)

Updates `lucide-react` from 0.544.0 to 0.545.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.545.0/packages/lucide-react)

Updates `react` from 19.1.1 to 19.2.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.0/packages/react)

Updates `react-dom` from 19.1.1 to 19.2.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.0/packages/react-dom)

Updates `react-hook-form` from 7.62.0 to 7.64.0
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.62.0...v7.64.0)

Updates `winston` from 3.17.0 to 3.18.3
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.17.0...v3.18.3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.901.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint
  dependency-version: 9.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: ioredis
  dependency-version: 5.8.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.545.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react
  dependency-version: 19.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-dom
  dependency-version: 19.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.64.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: winston
  dependency-version: 3.18.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-08 01:29:00 +00:00
dependabot[bot]
b00143ce9b Bump the prod-patch-updates group with 3 updates
Bumps the prod-patch-updates group with 3 updates: [next-intl](https://github.com/amannn/next-intl), [nodemailer](https://github.com/nodemailer/nodemailer) and [semver](https://github.com/npm/node-semver).


Updates `next-intl` from 4.3.9 to 4.3.11
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.3.9...v4.3.11)

Updates `nodemailer` from 7.0.7 to 7.0.9
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v7.0.7...v7.0.9)

Updates `semver` from 7.7.2 to 7.7.3
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.7.2...v7.7.3)

---
updated-dependencies:
- dependency-name: next-intl
  dependency-version: 4.3.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: nodemailer
  dependency-version: 7.0.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: semver
  dependency-version: 7.7.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-08 01:25:17 +00:00
Owen
4435d9a248 Merge branch 'dev' 2025-10-07 15:08:32 -07:00
Owen
7d0303e2be Add postgres pool info to config 2025-10-07 15:06:42 -07:00
Owen Schwartz
a0da9c1129 Merge pull request #1625 from Lokowitz/add-dev-images
Add docker dev image creation workflow for PRs
2025-10-07 12:15:54 -07:00
Owen Schwartz
5e73690570 Merge pull request #1627 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-d783df5103
Bump the prod-patch-updates group with 7 updates
2025-10-06 21:32:14 -07:00
Owen Schwartz
b0409b7d52 Merge pull request #1626 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-75f37cbce1
Bump the dev-minor-updates group with 4 updates
2025-10-06 21:32:02 -07:00
dependabot[bot]
fe474b3989 Bump the prod-patch-updates group with 7 updates
Bumps the prod-patch-updates group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components) | `0.5.5` | `0.5.6` |
| [@react-email/render](https://github.com/resend/react-email/tree/HEAD/packages/render) | `1.3.1` | `1.3.2` |
| [@simplewebauthn/browser](https://github.com/MasterKale/SimpleWebAuthn/tree/HEAD/packages/browser) | `13.2.0` | `13.2.2` |
| [@simplewebauthn/server](https://github.com/MasterKale/SimpleWebAuthn/tree/HEAD/packages/server) | `13.2.1` | `13.2.2` |
| [nodemailer](https://github.com/nodemailer/nodemailer) | `7.0.6` | `7.0.7` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.9.2` | `5.9.3` |
| [resend](https://github.com/resendlabs/resend-node) | `6.1.1` | `6.1.2` |


Updates `@react-email/components` from 0.5.5 to 0.5.6
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/components/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@0.5.6/packages/components)

Updates `@react-email/render` from 1.3.1 to 1.3.2
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/render/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/render@1.3.2/packages/render)

Updates `@simplewebauthn/browser` from 13.2.0 to 13.2.2
- [Release notes](https://github.com/MasterKale/SimpleWebAuthn/releases)
- [Changelog](https://github.com/MasterKale/SimpleWebAuthn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MasterKale/SimpleWebAuthn/commits/v13.2.2/packages/browser)

Updates `@simplewebauthn/server` from 13.2.1 to 13.2.2
- [Release notes](https://github.com/MasterKale/SimpleWebAuthn/releases)
- [Changelog](https://github.com/MasterKale/SimpleWebAuthn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MasterKale/SimpleWebAuthn/commits/v13.2.2/packages/server)

Updates `nodemailer` from 7.0.6 to 7.0.7
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v7.0.6...v7.0.7)

Updates `posthog-node` from 5.9.2 to 5.9.3
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.9.3/packages/node)

Updates `resend` from 6.1.1 to 6.1.2
- [Release notes](https://github.com/resendlabs/resend-node/releases)
- [Commits](https://github.com/resendlabs/resend-node/compare/v6.1.1...v6.1.2)

---
updated-dependencies:
- dependency-name: "@react-email/components"
  dependency-version: 0.5.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@react-email/render"
  dependency-version: 1.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@simplewebauthn/browser"
  dependency-version: 13.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@simplewebauthn/server"
  dependency-version: 13.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: nodemailer
  dependency-version: 7.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: posthog-node
  dependency-version: 5.9.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: resend
  dependency-version: 6.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-07 01:28:25 +00:00
dependabot[bot]
5154d5d3ee Bump the dev-minor-updates group with 4 updates
Bumps the dev-minor-updates group with 4 updates: [@react-email/preview-server](https://github.com/resend/react-email/tree/HEAD/packages/preview-server), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@react-email/preview-server` from 4.2.12 to 4.3.0
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/preview-server/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/preview-server@4.3.0/packages/preview-server)

Updates `@types/node` from 24.6.2 to 24.7.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `react-email` from 4.2.12 to 4.3.0
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@4.3.0/packages/react-email)

Updates `typescript-eslint` from 8.45.0 to 8.46.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@react-email/preview-server"
  dependency-version: 4.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: "@types/node"
  dependency-version: 24.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: react-email
  dependency-version: 4.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: typescript-eslint
  dependency-version: 8.46.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-07 01:23:26 +00:00
Marvin
62df92f63a Update dev-image.yml 2025-10-06 21:37:22 +02:00
Marvin
e2534af40e Create dev-image.yml 2025-10-06 20:42:24 +02:00
Owen
b627e391ac Add tsc test 2025-10-06 11:29:34 -07:00
Owen
40a3eac704 Adjust tag match to exclude s. 2025-10-06 11:28:26 -07:00
Owen Schwartz
2ee3f10e02 Merge pull request #1522 from jln-brtn/feature-header-authentication
Feature HTTP Basic Authentication support  #226 #937
2025-10-06 11:14:46 -07:00
Owen
5a3bf2f758 Fix import issue 2025-10-06 11:06:41 -07:00
Owen
e121dd0d1d Add to blueprints 2025-10-06 11:02:08 -07:00
Owen
2c46a37a53 Include in hybrid 2025-10-06 10:31:31 -07:00
Owen
23f05d7f4e Add translations to EN 2025-10-06 10:20:01 -07:00
Owen
6105eea7a9 Fix rebase 2025-10-06 10:16:29 -07:00
Owen
850e9a734a Adding HTTP Header Authentication 2025-10-06 10:14:02 -07:00
dependabot[bot]
2d30b155f2 Bump @types/node from 24.6.1 to 24.6.2 in the dev-patch-updates group
Bumps the dev-patch-updates group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/node` from 24.6.1 to 24.6.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.6.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 09:55:35 -07:00
dependabot[bot]
1333e21553 Bump @react-email/preview-server in the dev-minor-updates group
Bumps the dev-minor-updates group with 1 update: [@react-email/preview-server](https://github.com/resend/react-email/tree/HEAD/packages/preview-server).


Updates `@react-email/preview-server` from 4.1.0 to 4.2.12
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/preview-server/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/preview-server@4.2.12/packages/preview-server)

---
updated-dependencies:
- dependency-name: "@react-email/preview-server"
  dependency-version: 4.2.12
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 09:55:35 -07:00
Owen
4c412528f5 Clean up and copy to getTraefikConfig 2025-10-06 09:55:35 -07:00
OddMagnet
a8fce47ba0 Update traefik dynamic config to also use resource name 2025-10-06 09:55:35 -07:00
Owen Schwartz
cb7c57fd03 Merge pull request #1621 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-5e2570e910
Bump @types/node from 24.6.1 to 24.6.2 in the dev-patch-updates group
2025-10-06 09:52:18 -07:00
Owen Schwartz
494d0f7c14 Merge pull request #1622 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-44a7c5045b
Bump @react-email/preview-server from 4.1.0 to 4.2.12 in the dev-minor-updates group
2025-10-06 09:52:07 -07:00
Owen Schwartz
a4e480e02b Merge pull request #1539 from OddMagnet/feature-add-resource-name-to-resource-id
[Feature] Update traefik dynamic config to also use resource name
2025-10-06 09:51:22 -07:00
Owen
cd285cc019 Clean up and copy to getTraefikConfig 2025-10-06 09:50:18 -07:00
OddMagnet
9e8e00d4bb Update traefik dynamic config to also use resource name 2025-10-06 17:33:08 +02:00
dependabot[bot]
389834f735 Bump @react-email/preview-server in the dev-minor-updates group
Bumps the dev-minor-updates group with 1 update: [@react-email/preview-server](https://github.com/resend/react-email/tree/HEAD/packages/preview-server).


Updates `@react-email/preview-server` from 4.1.0 to 4.2.12
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/preview-server/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/preview-server@4.2.12/packages/preview-server)

---
updated-dependencies:
- dependency-name: "@react-email/preview-server"
  dependency-version: 4.2.12
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 01:26:52 +00:00
dependabot[bot]
b14ddc07fb Bump @types/node from 24.6.1 to 24.6.2 in the dev-patch-updates group
Bumps the dev-patch-updates group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/node` from 24.6.1 to 24.6.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.6.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 01:24:59 +00:00
Owen Schwartz
4447fb8202 Merge pull request #1459 from SigmaSquadron/revert-1281-push-nymutulytrsq
Revert "fix: change default integration_api to 3004"
2025-10-05 17:41:15 -07:00
Owen Schwartz
1c9c4b1802 Merge pull request #1619 from fosrl/crowdin_dev
New Crowdin updates
2025-10-05 17:19:23 -07:00
Owen Schwartz
19e15f4ef5 New translations en-us.json (Chinese Simplified) 2025-10-05 17:16:34 -07:00
Owen Schwartz
c2c29e2cd2 New translations en-us.json (Portuguese) 2025-10-05 17:16:31 -07:00
Owen Schwartz
7b33dc591d New translations en-us.json (Dutch) 2025-10-05 17:16:29 -07:00
Owen Schwartz
a95f2e76f4 New translations en-us.json (Italian) 2025-10-05 17:16:27 -07:00
Owen Schwartz
979860a951 New translations en-us.json (Czech) 2025-10-05 17:16:25 -07:00
Owen Schwartz
9e9a81d9e8 New translations en-us.json (Bulgarian) 2025-10-05 17:16:24 -07:00
Owen Schwartz
8f09561114 Merge pull request #1592 from Pallavikumarimdb/ordered-priority-in-path-routing-rules
Add ordered priority for path-based routing rules
2025-10-05 17:10:26 -07:00
miloschwartz
b167d94ead update cors to check array 2025-10-05 16:50:46 -07:00
Owen
e4c0a157e3 Add to oss traefik config and fix create/update 2025-10-05 15:46:46 -07:00
miloschwartz
956869ab58 add strip duplicate sesion middleware 2025-10-05 15:41:05 -07:00
Owen
e5f4da9a99 Fix lint errors 2025-10-05 15:22:54 -07:00
miloschwartz
9649d9a46b fix redirect issue in firefox and safari 2025-10-05 14:59:46 -07:00
Pallavi Kumari
22477b7e81 add removed rewrite schema 2025-10-06 02:16:06 +05:30
Pallavi Kumari
b6c76a2164 add priority type 2025-10-06 02:08:41 +05:30
Pallavi Kumari
043834274d fix priority inside blueprints 2025-10-06 02:08:41 +05:30
Owen
1e4ca69c89 priority add for traefik config setup 2025-10-06 02:08:41 +05:30
Owen
ff2bcfb0e7 backend setup 2025-10-06 02:08:41 +05:30
Owen
b47fc9f901 frontend for ordered priority 2025-10-06 02:08:41 +05:30
Owen Schwartz
165f4023d0 Merge pull request #1617 from fosrl/crowdin_dev
New Crowdin updates
2025-10-05 10:59:34 -07:00
Owen
d51053ce86 Merge branch 'main' into dev 2025-10-05 10:57:15 -07:00
Owen Schwartz
229872589c Merge pull request #1608 from iconoclasthero/patch-logger-docker
Patch logger for ISO8601 TZ offsets and Docker build fix
2025-10-05 10:52:51 -07:00
Owen
e4c47c46a6 Restore npm ci and add tzdata 2025-10-05 10:48:34 -07:00
Owen
84fe2fb92e Remove domains from price 2025-10-05 10:36:59 -07:00
miloschwartz
076912c648 fix hostname in set cookie 2025-10-05 10:26:14 -07:00
Owen Schwartz
033653e234 New translations en-us.json (Spanish) 2025-10-04 22:17:09 -07:00
Owen Schwartz
0624087373 New translations en-us.json (Norwegian Bokmal) 2025-10-04 22:17:08 -07:00
Owen Schwartz
346d886f8a New translations en-us.json (Chinese Simplified) 2025-10-04 22:17:06 -07:00
Owen Schwartz
67ac01b31a New translations en-us.json (Turkish) 2025-10-04 22:17:05 -07:00
Owen Schwartz
87f1cf6730 New translations en-us.json (Russian) 2025-10-04 22:17:04 -07:00
Owen Schwartz
0f46651500 New translations en-us.json (Portuguese) 2025-10-04 22:17:03 -07:00
Owen Schwartz
65bf055e0f New translations en-us.json (Polish) 2025-10-04 22:17:01 -07:00
Owen Schwartz
4c995f786b New translations en-us.json (Dutch) 2025-10-04 22:17:00 -07:00
Owen Schwartz
4853c8c872 New translations en-us.json (Korean) 2025-10-04 22:16:59 -07:00
Owen Schwartz
170da08001 New translations en-us.json (Italian) 2025-10-04 22:16:58 -07:00
Owen Schwartz
a39a133ee5 New translations en-us.json (German) 2025-10-04 22:16:57 -07:00
Owen Schwartz
1251b1e870 New translations en-us.json (Czech) 2025-10-04 22:16:56 -07:00
Owen Schwartz
418120196f New translations en-us.json (Bulgarian) 2025-10-04 22:16:55 -07:00
Owen Schwartz
759661420e New translations en-us.json (French) 2025-10-04 22:16:53 -07:00
Owen
bb28f856da Merge branch 'main' into dev 2025-10-04 21:32:50 -07:00
Owen Schwartz
f90e6bef9e New translations en-us.json (Spanish) 2025-10-04 21:10:27 -07:00
Owen Schwartz
cabaa2e6d6 New translations en-us.json (Norwegian Bokmal) 2025-10-04 21:10:26 -07:00
Owen Schwartz
c8bddd4289 New translations en-us.json (Chinese Simplified) 2025-10-04 21:10:25 -07:00
Owen Schwartz
71ba980757 New translations en-us.json (Turkish) 2025-10-04 21:10:24 -07:00
Owen Schwartz
38c3c49778 New translations en-us.json (Russian) 2025-10-04 21:10:23 -07:00
Owen Schwartz
ab7ac9cb60 New translations en-us.json (Portuguese) 2025-10-04 21:10:22 -07:00
Owen Schwartz
e4787924e7 New translations en-us.json (Polish) 2025-10-04 21:10:21 -07:00
Owen Schwartz
3385a92b0f New translations en-us.json (Dutch) 2025-10-04 21:10:20 -07:00
Owen Schwartz
e73e6956a5 New translations en-us.json (Korean) 2025-10-04 21:10:19 -07:00
Owen Schwartz
024eb2b157 New translations en-us.json (Italian) 2025-10-04 21:10:18 -07:00
Owen Schwartz
ccff0592ca New translations en-us.json (German) 2025-10-04 21:10:17 -07:00
Owen Schwartz
942f7c2bc9 New translations en-us.json (Czech) 2025-10-04 21:10:16 -07:00
Owen Schwartz
b3a6cd0660 New translations en-us.json (Bulgarian) 2025-10-04 21:10:15 -07:00
Owen Schwartz
c5569fccf1 New translations en-us.json (French) 2025-10-04 21:10:14 -07:00
Owen
cc7c443145 Update test 2025-10-04 21:07:59 -07:00
Owen
8d7e5baf9d Update ignore 2025-10-04 21:02:30 -07:00
miloschwartz
ed64d4b5ae update gitignore 2025-10-04 21:01:15 -07:00
Owen
8fe42bc6aa Update gitignore 2025-10-04 20:57:32 -07:00
Owen
a67aa3852d Remove config 2025-10-04 20:57:11 -07:00
Owen
c2c907852d Chungus 2025-10-04 18:36:44 -07:00
Owen Schwartz
3123f858bb Merge pull request #1611 from fosrl/crowdin_dev
New Crowdin updates
2025-10-04 16:53:42 -07:00
Owen Schwartz
6a18369891 New translations en-us.json (Spanish) 2025-10-03 19:07:44 -07:00
Owen Schwartz
0f4ef40600 New translations en-us.json (Norwegian Bokmal) 2025-10-03 19:07:43 -07:00
Owen Schwartz
42a7fb949a New translations en-us.json (Chinese Simplified) 2025-10-03 19:07:42 -07:00
Owen Schwartz
bbfa6e9c82 New translations en-us.json (Turkish) 2025-10-03 19:07:40 -07:00
Owen Schwartz
0d8ae0d615 New translations en-us.json (Russian) 2025-10-03 19:07:39 -07:00
Owen Schwartz
7bbbc88c34 New translations en-us.json (Portuguese) 2025-10-03 19:07:38 -07:00
Owen Schwartz
e2ad197d7e New translations en-us.json (Polish) 2025-10-03 19:07:37 -07:00
Owen Schwartz
ca8f52d304 New translations en-us.json (Dutch) 2025-10-03 19:07:35 -07:00
Owen Schwartz
7395a64b26 New translations en-us.json (Korean) 2025-10-03 19:07:34 -07:00
Owen Schwartz
4dd672a590 New translations en-us.json (Italian) 2025-10-03 19:07:33 -07:00
Owen Schwartz
cff3f739db New translations en-us.json (German) 2025-10-03 19:07:32 -07:00
Owen Schwartz
7fb35cfebb New translations en-us.json (Czech) 2025-10-03 19:07:30 -07:00
Owen Schwartz
ddfda31924 New translations en-us.json (Bulgarian) 2025-10-03 19:07:29 -07:00
Owen Schwartz
353e085b0e New translations en-us.json (French) 2025-10-03 19:07:28 -07:00
Owen Schwartz
989b548ef9 Merge pull request #1580 from Pallavikumarimdb/feature/path-rewriting-rules
Rules for rewriting requests to another path
2025-10-03 18:16:56 -07:00
Owen Schwartz
8f60e7e200 Merge pull request #1597 from fosrl/crowdin_dev
New Crowdin updates
2025-10-03 17:59:00 -07:00
Owen Schwartz
ec74525fde Merge pull request #1605 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-f04ca2729e
Bump the prod-patch-updates group across 1 directory with 5 updates
2025-10-03 17:51:16 -07:00
Owen Schwartz
a317c50737 Merge pull request #1602 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-bfc23b1742
Bump the dev-patch-updates group across 1 directory with 4 updates
2025-10-03 17:51:03 -07:00
Owen Schwartz
c62b46268a Merge pull request #1610 from Pallavikumarimdb/fix/QR-code-issue-on-dark-themes
Set the QR code background to white in dark mode.
2025-10-03 17:50:34 -07:00
Pallavi Kumari
42ef075d4f white background 2025-10-03 20:42:58 +05:30
iconoclast hero
f52605289b Patch logger for ISO8601 TZ offsets and fix Docker build
- server/logger.ts: timestamps now use local TZ offset instead of Z
- Dockerfile: replaced 'npm ci --omit=dev' with 'npm install --omit=dev' to fix Alpine build failure
- References discussion: https://github.com/orgs/fosrl/discussions/1025
- Note: timestamps default to +00:00 (UTC) unless the user sets environment: TZ=<timezone> in docker-compose.yaml

Optional future improvement: include tzdata in the container for shell/date consistency.
2025-10-03 09:33:43 -04:00
iconoclast hero
68e0911866 Patch logger for ISO8601 TZ offsets and fix Docker build
- server/logger.ts: timestamps now use local TZ offset instead of Z
- Dockerfile: replaced 'npm ci --omit=dev' with 'npm install --omit=dev' to fix Alpine build failure
- References discussion: https://github.com/orgs/fosrl/discussions/1025
- Note: timestamps default to +00:00 (UTC) unless the user sets environment: TZ=<timezone> in docker-compose.yaml

Optional future improvement: include tzdata in the container for shell/date consistency.
2025-10-03 09:25:45 -04:00
dependabot[bot]
756fcbb590 Bump the prod-patch-updates group across 1 directory with 5 updates
Bumps the prod-patch-updates group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components) | `0.5.3` | `0.5.5` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.44.5` | `0.44.6` |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.5.3` | `15.5.4` |
| [next](https://github.com/vercel/next.js) | `15.5.3` | `15.5.4` |
| [npm](https://github.com/npm/cli) | `11.6.0` | `11.6.1` |



Updates `@react-email/components` from 0.5.3 to 0.5.5
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/components/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@0.5.5/packages/components)

Updates `drizzle-orm` from 0.44.5 to 0.44.6
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.44.5...0.44.6)

Updates `eslint-config-next` from 15.5.3 to 15.5.4
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v15.5.4/packages/eslint-config-next)

Updates `next` from 15.5.3 to 15.5.4
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.5.3...v15.5.4)

Updates `npm` from 11.6.0 to 11.6.1
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v11.6.0...v11.6.1)

---
updated-dependencies:
- dependency-name: "@react-email/components"
  dependency-version: 0.5.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: drizzle-orm
  dependency-version: 0.44.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: eslint-config-next
  dependency-version: 15.5.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: next
  dependency-version: 15.5.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: npm
  dependency-version: 11.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-03 01:21:48 +00:00
dependabot[bot]
a49d900951 Bump the dev-patch-updates group across 1 directory with 4 updates
Bumps the dev-patch-updates group with 3 updates in the / directory: [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [typescript](https://github.com/microsoft/TypeScript).


Updates `@tailwindcss/postcss` from 4.1.13 to 4.1.14
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.14/packages/@tailwindcss-postcss)

Updates `@types/node` from 24.6.0 to 24.6.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `tailwindcss` from 4.1.13 to 4.1.14
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.14/packages/tailwindcss)

Updates `typescript` from 5.9.2 to 5.9.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.2...v5.9.3)

---
updated-dependencies:
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/node"
  dependency-version: 24.6.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: typescript
  dependency-version: 5.9.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-02 01:18:15 +00:00
Owen Schwartz
38f212d632 New translations en-us.json (Dutch) 2025-10-01 14:02:59 -07:00
Owen Schwartz
204fdfd233 New translations en-us.json (Dutch) 2025-10-01 12:45:15 -07:00
Owen
b5e04e8111 Add exit node name 2025-10-01 09:49:29 -07:00
Owen Schwartz
21fc829766 New translations en-us.json (Norwegian Bokmal) 2025-10-01 01:02:51 -07:00
Owen Schwartz
39851c3412 New translations en-us.json (Chinese Simplified) 2025-10-01 01:02:50 -07:00
Owen Schwartz
21811465b6 New translations en-us.json (Turkish) 2025-10-01 01:02:48 -07:00
Owen Schwartz
7574726815 New translations en-us.json (Russian) 2025-10-01 01:02:47 -07:00
Owen Schwartz
236e0f9ab6 New translations en-us.json (Portuguese) 2025-10-01 01:02:46 -07:00
Owen Schwartz
8e95f0b73f New translations en-us.json (Polish) 2025-10-01 01:02:44 -07:00
Owen Schwartz
bed45a5fbd New translations en-us.json (Dutch) 2025-10-01 01:02:43 -07:00
Owen Schwartz
c50c2e2b01 New translations en-us.json (Korean) 2025-10-01 01:02:42 -07:00
Owen Schwartz
adf982fcd6 New translations en-us.json (Italian) 2025-10-01 01:02:41 -07:00
Owen Schwartz
9b4103be75 New translations en-us.json (German) 2025-10-01 01:02:39 -07:00
Owen Schwartz
672eec0c33 New translations en-us.json (Czech) 2025-10-01 01:02:38 -07:00
Owen Schwartz
0d8c06595e New translations en-us.json (Bulgarian) 2025-10-01 01:02:37 -07:00
Owen Schwartz
a5a7ca5fcc New translations en-us.json (French) 2025-10-01 01:02:35 -07:00
Pallavi Kumari
8767d20c47 add missing path / validation 2025-10-01 13:06:09 +05:30
Owen
4cbf3fffb1 Quiet up logs 2025-10-01 13:06:09 +05:30
Owen
51fad19d0d Sanitize all keys 2025-10-01 13:06:09 +05:30
Pallavi Kumari
664aa6ed2a update blueprints 2025-10-01 13:06:09 +05:30
Pallavi Kumari
574cd2a754 make rewrite data null if no match added 2025-10-01 13:06:09 +05:30
Pallavi Kumari
1b34ee7369 match and rewrite path ui improve for create resource 2025-10-01 13:06:09 +05:30
Pallavi Kumari
7b2f1dd4c6 button fix 2025-10-01 13:06:09 +05:30
Pallavi Kumari
a97b6efe9c redesign path match and rewrite modal 2025-10-01 13:06:09 +05:30
Pallavi Kumari
3722b67724 preserves the rest of the path after the matched prefix 2025-10-01 13:06:09 +05:30
Pallavi Kumari
218a5ec9e4 fix traefik config file 2025-10-01 13:06:09 +05:30
Pallavi Kumari
90d3ac07a9 add rewrite path to create resource page 2025-10-01 13:06:09 +05:30
Pallavi Kumari
149a4b916b basic setup for rewriting requests to another path 2025-10-01 13:06:08 +05:30
Owen
70914e836f Add headers description 2025-09-30 21:46:44 -07:00
Owen
a2dae8aa13 Fix updating sites on exit nodes 2025-09-30 17:34:26 -07:00
Owen
b6ea0808e4 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-09-30 14:00:27 -07:00
Owen
089e43e1ce Update migration 2025-09-30 13:59:12 -07:00
Owen Schwartz
42936ab8dc Merge pull request #1594 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-cccdb78c39
Bump the dev-patch-updates group across 1 directory with 2 updates
2025-09-30 13:50:45 -07:00
dependabot[bot]
411fa9345f Bump the dev-patch-updates group across 1 directory with 2 updates
Bumps the dev-patch-updates group with 2 updates in the / directory: [@types/nodemailer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/nodemailer) and [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react).


Updates `@types/nodemailer` from 7.0.1 to 7.0.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/nodemailer)

Updates `@types/react` from 19.1.15 to 19.1.16
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/nodemailer"
  dependency-version: 7.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/react"
  dependency-version: 19.1.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-30 19:25:14 +00:00
Owen Schwartz
336e118096 Merge pull request #1591 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-308b41d39d
Bump the dev-minor-updates group with 2 updates
2025-09-30 12:23:17 -07:00
dependabot[bot]
d1707801bf Bump the dev-minor-updates group with 2 updates
Bumps the dev-minor-updates group with 2 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@types/node` from 24.5.2 to 24.6.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `typescript-eslint` from 8.44.1 to 8.45.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.45.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: typescript-eslint
  dependency-version: 8.45.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-30 03:40:16 +00:00
miloschwartz
71bcf25718 move table unique constraint 2025-09-29 17:07:38 -07:00
Owen
288da0ef05 Merge branch 'main' into dev 2025-09-29 16:57:06 -07:00
miloschwartz
fec29eb349 update templates 2025-09-29 16:39:36 -07:00
miloschwartz
032d48e394 add period to cookie 2025-09-29 16:12:17 -07:00
Owen
a433d97573 Make proxy port optional
Fixes #1585
2025-09-29 14:21:23 -07:00
Owen Schwartz
6bd571f1b3 Merge pull request #1583 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-509b2f8484
Bump the dev-patch-updates group with 3 updates
2025-09-29 11:50:23 -07:00
Owen Schwartz
1dd89601ad Merge pull request #1584 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-a0244f92d6
Bump @dotenvx/dotenvx from 1.49.1 to 1.51.0 in the dev-minor-updates group
2025-09-29 11:50:07 -07:00
Owen Schwartz
a7cf359672 Merge pull request #1589 from fosrl/revert-1588-patch-1
Revert "Update de-DE.json: Server-Administrator->Administration"
2025-09-29 11:38:14 -07:00
Owen Schwartz
baa98952fa Revert "Update de-DE.json: Server-Administrator->Administration" 2025-09-29 11:38:04 -07:00
Owen Schwartz
55afbf4db5 Merge pull request #1588 from nicolaus-hee/patch-1
Update de-DE.json: Server-Administrator->Administration
2025-09-29 10:46:27 -07:00
nicolaus-hee
dca0fb327b Update de-DE.json: Server-Administrator->Administration
Menu item "Server Admin" --> "Server-Administation" the activity / section not "Server-Administratior" (the person)
2025-09-29 19:41:24 +02:00
Owen
e34a31941d Add org settings column 2025-09-29 09:54:17 -07:00
Milo Schwartz
dbba5002d9 Merge pull request #1586 from Pallavikumarimdb/fix/resource-auth-param-handling
Fix resource auth API call to use resourceGuid instead of resourceid
2025-09-29 12:53:41 -04:00
Pallavi Kumari
4dd9e34a11 use resourceGuid instead of resourceid 2025-09-29 14:46:59 +05:30
miloschwartz
a30222a13e add templates 2025-09-28 22:18:18 -07:00
miloschwartz
5797144083 add favicon back 2025-09-28 20:40:27 -07:00
Owen
db513b43e7 Make postgres connection string also a ENV var 2025-09-28 20:34:27 -07:00
dependabot[bot]
d387fa3bfb Bump @dotenvx/dotenvx in the dev-minor-updates group
Bumps the dev-minor-updates group with 1 update: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx).


Updates `@dotenvx/dotenvx` from 1.49.1 to 1.51.0
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.49.1...v1.51.0)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.51.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 01:21:37 +00:00
dependabot[bot]
1bff9f550e Bump the dev-patch-updates group with 3 updates
Bumps the dev-patch-updates group with 3 updates: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react), [drizzle-kit](https://github.com/drizzle-team/drizzle-orm) and [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email).


Updates `@types/react` from 19.1.13 to 19.1.15
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `drizzle-kit` from 0.31.4 to 0.31.5
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/drizzle-kit@0.31.4...drizzle-kit@0.31.5)

Updates `react-email` from 4.2.11 to 4.2.12
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@4.2.12/packages/react-email)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: drizzle-kit
  dependency-version: 0.31.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: react-email
  dependency-version: 4.2.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 01:20:51 +00:00
Owen
0167b30bf1 Fixes PAN-122 2025-09-28 18:18:03 -07:00
Owen
bf993d04f1 Fix FOU-106 2025-09-28 18:08:10 -07:00
miloschwartz
be2b2c6c77 add robots.txt 2025-09-28 16:43:42 -07:00
miloschwartz
8851156f23 use resource guid in url closes #1517 2025-09-28 16:22:26 -07:00
miloschwartz
1a13694843 gray out time selector in share links if never expire is checked 2025-09-28 12:23:30 -07:00
miloschwartz
3872831bd7 clean up sidebar 2025-09-28 12:21:15 -07:00
Owen
ef4ce115ff Merge branch 'main' into dev 2025-09-28 11:39:38 -07:00
Owen
516b300731 Use olm install script 2025-09-28 11:39:18 -07:00
Owen
88d97dd49b Fix migration 2025-09-28 11:12:41 -07:00
Owen Schwartz
be9494dd54 Merge pull request #1519 from Lokowitz/webauth
Fix upgrade @simplewebauthn/server from 9.0.3 to 13.2.1
2025-09-28 10:47:06 -07:00
Owen
e43fc59634 Use double quotes 2025-09-28 10:42:29 -07:00
Owen
4523a8df0f Bump build 2025-09-28 10:36:03 -07:00
Owen
2c8082451f Add where clause to sql migrations 2025-09-28 10:32:46 -07:00
Owen Schwartz
7ab498702c Merge pull request #1550 from Shamilius/add-minor-image-tags
Add minor version tags to Docker build commands in Makefile
2025-09-28 10:13:20 -07:00
sh.nurmagomedov
a06e8c8f83 Add major version tags to Docker build commands in Makefile 2025-09-28 12:17:29 +03:00
Owen
1a01e8d53a Update readme crowdin 2025-09-27 16:59:41 -07:00
Owen
5ce60cf1cd Merge branch 'main' of github.com:fosrl/pangolin 2025-09-27 16:59:29 -07:00
Owen Schwartz
de1a6025d0 Merge pull request #1572 from vmfventura/fix-portuguese-typo
fix portuguese typo
2025-09-27 16:20:10 -07:00
Vitor Ventura
ca6ae53fe6 fix portuguese typo 2025-09-27 23:26:47 +01:00
sh.nurmagomedov
4eff52ab62 Add minor version tags to Docker build commands in Makefile 2025-09-27 10:54:14 +03:00
Owen Schwartz
e5c5780547 Bump tar-fs from 2.1.3 to 2.1.4 (#1549)
Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 2.1.3 to 2.1.4.
- [Commits](https://github.com/mafintosh/tar-fs/compare/v2.1.3...v2.1.4)

---
updated-dependencies:
- dependency-name: tar-fs
  dependency-version: 2.1.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-26 13:53:18 -07:00
dependabot[bot]
f348c9daa7 Bump tar-fs from 2.1.3 to 2.1.4
Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 2.1.3 to 2.1.4.
- [Commits](https://github.com/mafintosh/tar-fs/compare/v2.1.3...v2.1.4)

---
updated-dependencies:
- dependency-name: tar-fs
  dependency-version: 2.1.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 20:23:01 +00:00
Owen Schwartz
e1dd29dd0b Merge pull request #1548 from fosrl/crowdin_dev
New Crowdin updates
2025-09-26 10:39:46 -07:00
Owen Schwartz
558f302342 New translations en-us.json (French) 2025-09-26 10:30:06 -07:00
Owen Schwartz
5fee1c3ebd New translations en-us.json (Norwegian Bokmal) 2025-09-26 10:30:05 -07:00
Owen Schwartz
248debb7c4 New translations en-us.json (Chinese Simplified) 2025-09-26 10:30:04 -07:00
Owen Schwartz
8504fd8d9d New translations en-us.json (Turkish) 2025-09-26 10:30:02 -07:00
Owen Schwartz
e360a5323d New translations en-us.json (Russian) 2025-09-26 10:30:01 -07:00
Owen Schwartz
1ad5eb010a New translations en-us.json (Portuguese) 2025-09-26 10:30:00 -07:00
Owen Schwartz
ca7f1e5db8 New translations en-us.json (Polish) 2025-09-26 10:29:58 -07:00
Owen Schwartz
2981e35c75 New translations en-us.json (Dutch) 2025-09-26 10:29:57 -07:00
Owen Schwartz
f3e8677ae4 New translations en-us.json (Korean) 2025-09-26 10:29:56 -07:00
Owen Schwartz
d209c8af9d New translations en-us.json (Italian) 2025-09-26 10:29:55 -07:00
Owen Schwartz
26b2233168 New translations en-us.json (German) 2025-09-26 10:29:54 -07:00
Owen Schwartz
b2669aaa34 New translations en-us.json (Czech) 2025-09-26 10:29:52 -07:00
Owen Schwartz
1438eef62b New translations en-us.json (Bulgarian) 2025-09-26 10:29:51 -07:00
Owen Schwartz
a92f7dbb7c New translations en-us.json (Spanish) 2025-09-26 10:29:50 -07:00
miloschwartz
4710bab697 pull hostname from dashboard url in crowdsec install 2025-09-26 09:57:35 -07:00
dependabot[bot]
52aa27025d Bump the dev-patch-updates group across 1 directory with 2 updates (#1543)
Bumps the dev-patch-updates group with 2 updates in the / directory: [tsx](https://github.com/privatenumber/tsx) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `tsx` from 4.20.5 to 4.20.6
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.20.5...v4.20.6)

Updates `typescript-eslint` from 8.44.0 to 8.44.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.44.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: tsx
  dependency-version: 4.20.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: typescript-eslint
  dependency-version: 8.44.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-26 09:15:42 -07:00
Owen Schwartz
8e544c056f Merge pull request #1542 from fosrl/crowdin_dev
New Crowdin updates
2025-09-26 09:12:28 -07:00
Owen Schwartz
3c2a8b9031 Merge pull request #1545 from Pallavikumarimdb/fix/view-settings-in-manage-API-keys
Link to View Settings in API Keys
2025-09-26 09:08:00 -07:00
Pallavi Kumari
fff4883bca Link to View Settings in API Keys 2025-09-26 18:25:19 +05:30
Owen Schwartz
dc234beab1 New translations en-us.json (French) 2025-09-25 17:15:35 -07:00
Owen Schwartz
66d310fcca New translations en-us.json (Norwegian Bokmal) 2025-09-25 17:15:34 -07:00
Owen Schwartz
702b5eb3dd New translations en-us.json (Chinese Simplified) 2025-09-25 17:15:32 -07:00
Owen Schwartz
06477b6e7f New translations en-us.json (Turkish) 2025-09-25 17:15:31 -07:00
Owen Schwartz
fc76899384 New translations en-us.json (Russian) 2025-09-25 17:15:30 -07:00
Owen Schwartz
97102b9be9 New translations en-us.json (Portuguese) 2025-09-25 17:15:28 -07:00
Owen Schwartz
1c0dfa830e New translations en-us.json (Polish) 2025-09-25 17:15:27 -07:00
Owen Schwartz
53bfaac0c0 New translations en-us.json (Dutch) 2025-09-25 17:15:26 -07:00
Owen Schwartz
30790fdcb6 New translations en-us.json (Korean) 2025-09-25 17:15:24 -07:00
Owen Schwartz
b8b256da2e New translations en-us.json (Italian) 2025-09-25 17:15:23 -07:00
Owen Schwartz
0472dc1b25 New translations en-us.json (German) 2025-09-25 17:15:22 -07:00
Owen Schwartz
1ec3e53e11 New translations en-us.json (Czech) 2025-09-25 17:15:20 -07:00
Owen Schwartz
9f66e09e44 New translations en-us.json (Bulgarian) 2025-09-25 17:15:19 -07:00
Owen Schwartz
a71b0a8924 New translations en-us.json (Spanish) 2025-09-25 17:15:18 -07:00
miloschwartz
e555d3c496 add server action proxies 2025-09-25 17:14:36 -07:00
Lokowitz
df92e41384 added migration for simplewebauthn 2025-09-25 19:55:36 +00:00
Owen
d10fdac670 Merge branch 'dev' 2025-09-23 14:36:46 -07:00
Owen Schwartz
b63bffa524 Merge pull request #1529 from Tim5965/patch-5
Update nl-NL.json
2025-09-23 16:43:47 -04:00
Tim
957cfdd5d7 Update nl-NL.json
Minor changes (probably missed)
2025-09-23 21:42:48 +02:00
Lokowitz
1352316492 update securityKey 2025-09-23 17:44:34 +00:00
Lokowitz
73cd82081a fix securitykey 2025-09-23 16:51:08 +00:00
Marvin
812820472f Merge branch 'fosrl:main' into webauth 2025-09-23 17:32:53 +02:00
Owen
21f0cd6e3f Fix #1527 2025-09-23 09:30:18 -04:00
Owen Schwartz
b2ee8ef7de Merge pull request #1525 from Lokowitz/Resolver
Fix upgrade @hookform/resolvers from 4.1.3 to 5.2.2
2025-09-23 09:19:08 -04:00
Marvin
1e066cbabd fix components 2025-09-22 20:22:31 +00:00
Marvin
4cc38d44e0 Merge branch 'Resolver' of https://github.com/Lokowitz/pangolin into Resolver 2025-09-22 20:10:21 +00:00
Marvin
dcf7393259 update resolver 2025-09-22 20:06:55 +00:00
Marvin
bab070b09c page.tsx aktualisieren 2025-09-22 17:34:52 +02:00
Marvin
2bd4ad5770 page.tsx aktualisieren 2025-09-22 17:20:32 +02:00
Marvin
61ecebf911 bbbv 2025-09-22 15:13:29 +00:00
Marvin
33c8663a5b package.json aktualisieren 2025-09-22 17:04:30 +02:00
Marvin
76da2ee324 cleanup 2025-09-22 12:19:35 +00:00
Marvin
31896c9be9 cleanup 2025-09-22 12:12:46 +00:00
Marvin
f61d722aee Merge branch 'fosrl:main' into webauth 2025-09-22 12:36:06 +02:00
Owen
1f9f3fdede Merge branch 'dev' 2025-09-21 22:25:09 -04:00
Owen
a778109214 Fix using wrong protocol when creating resource 2025-09-21 22:25:05 -04:00
Owen
cb7fa9375b Make sure to process headers correctly in blueprint 2025-09-21 22:25:05 -04:00
Owen
515ecb09e7 Update url and remove example token 2025-09-21 22:25:04 -04:00
Owen
a12a620697 Fix using wrong protocol when creating resource 2025-09-21 22:24:54 -04:00
Owen
0c3b2bc2f5 Make sure to process headers correctly in blueprint 2025-09-21 22:24:53 -04:00
Owen
78ba27dc63 Update url and remove example token 2025-09-21 22:24:53 -04:00
Owen Schwartz
dc20b863ed Merge pull request #1512 from fosrl/dev
1.10.2
2025-09-21 22:24:29 -04:00
Owen Schwartz
c9a211d5cf Merge pull request #1505 from fosrl/crowdin_dev
New Crowdin updates
2025-09-21 21:01:25 -04:00
Owen
95f94cffd2 Fix lint 2025-09-21 20:50:01 -04:00
Owen
0da95cbdb8 Version correctly 2025-09-21 20:48:13 -04:00
Owen
dadd1e3101 Add migration to manager 2025-09-21 16:44:08 -04:00
Owen
d523ae3ffa Fix input overwriting value 2025-09-21 16:39:40 -04:00
Owen
9a41cac6e1 Remove port checks 2025-09-21 16:16:41 -04:00
Owen
5d3c5ab7cc Store headers as json 2025-09-21 15:49:50 -04:00
Marvin
08c930e6cf update webauthen 2025-09-21 18:32:18 +00:00
Owen
e94ded920b Fix #1501 2025-09-21 11:42:51 -04:00
Owen Schwartz
c882fbd59a New translations en-us.json (German) 2025-09-20 09:51:23 -04:00
Owen
46b50a042e Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-09-18 21:52:56 -04:00
Owen
fda9e95786 Add header for host all the time 2025-09-18 21:52:02 -04:00
Milo Schwartz
ea1ad23bff Merge pull request #1497 from fosrl/dev
Dev
2025-09-18 16:22:02 -04:00
miloschwartz
7ffc5e0212 fix 1.10.1 migration script 2025-09-18 16:19:23 -04:00
Owen Schwartz
acba9444f4 Merge pull request #1495 from Tim5965/patch-3
Update nl-NL.json
2025-09-18 15:06:44 -04:00
Tim
f7e3671801 Update nl-NL.json
I think the file was accidentally reverted to the version that contained errors. The errors that were in that version have been updated again.
2025-09-18 21:04:48 +02:00
miloschwartz
a1b2e36a5d fix installer 2025-09-18 11:55:01 -04:00
Owen Schwartz
44e96942b3 Merge pull request #1484 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-2c7447d29a
Bump the dev-patch-updates group with 2 updates
2025-09-18 11:52:37 -04:00
Owen Schwartz
f2efa760ff Merge pull request #1488 from cku-heise/patch-1
Update de-DE.json
2025-09-18 11:52:18 -04:00
cku-heise
256df9042b Update de-DE.json
"Spielpfad" is literal, but wrong translation (not a word in German). "Unterverzeichnis" would be the best approximation of the UI label here.
2025-09-18 10:52:01 +02:00
miloschwartz
6d7091fb5c migrate siteId on targets table to delete on cascade 2025-09-17 22:54:29 -04:00
dependabot[bot]
0d1f88a368 Bump the dev-patch-updates group with 2 updates
Bumps the dev-patch-updates group with 2 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [esbuild](https://github.com/evanw/esbuild).


Updates `@types/node` from 24.5.0 to 24.5.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `esbuild` from 0.25.9 to 0.25.10
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.9...v0.25.10)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.5.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.25.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-18 01:16:29 +00:00
Owen Schwartz
2ae601717d Merge pull request #1483 from barnabehvrd/patch-1
fr-fr language translation improvement
2025-09-17 17:11:03 -04:00
Barnabé Havard
c7c8b463b4 Remove customHeadersDescription from fr-FR.json
Removed translation that doesn't appear anywhere
2025-09-17 23:06:13 +02:00
Barnabé Havard
282f839211 Fix typo in French translation for 'dataIn' 2025-09-17 22:53:12 +02:00
Barnabé Havard
b2eb846b69 Update French translations in fr-FR.json 2025-09-17 22:50:41 +02:00
Owen Schwartz
62cf925dcf Merge pull request #1482 from fosrl/crowdin_dev
New Crowdin updates
2025-09-17 16:45:29 -04:00
Owen Schwartz
e699f84c4d New translations en-us.json (Dutch) 2025-09-17 16:44:45 -04:00
Owen Schwartz
c1189dadc5 New translations en-us.json (German) 2025-09-17 16:44:42 -04:00
Owen
76bc080a6d Merge branch 'main' into dev 2025-09-17 16:41:54 -04:00
miloschwartz
7f989f77ac fix type and fix redirect to resource niceId on create 2025-09-17 16:27:22 -04:00
Owen
b916f768fe Quiet debug logs 2025-09-17 16:19:07 -04:00
Owen
e4509c5714 Merge branch 'main' into dev 2025-09-17 15:54:10 -04:00
miloschwartz
ddb6893a64 ask for container type in crowdsec installer 2025-09-17 15:52:40 -04:00
dependabot[bot]
248751ba1d Bump the dev-minor-updates group with 2 updates
Bumps the dev-minor-updates group with 2 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@types/node` from 24.4.0 to 24.5.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `typescript-eslint` from 8.43.0 to 8.44.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.44.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: typescript-eslint
  dependency-version: 8.44.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 09:06:13 -07:00
dependabot[bot]
b4b74ed53a Bump @dotenvx/dotenvx in the dev-patch-updates group
Bumps the dev-patch-updates group with 1 update: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx).


Updates `@dotenvx/dotenvx` from 1.49.0 to 1.49.1
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.49.0...v1.49.1)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.49.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 09:05:57 -07:00
dependabot[bot]
76903cd67f Bump next-intl from 4.3.8 to 4.3.9 in the prod-patch-updates group
Bumps the prod-patch-updates group with 1 update: [next-intl](https://github.com/amannn/next-intl).


Updates `next-intl` from 4.3.8 to 4.3.9
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.3.8...v4.3.9)

---
updated-dependencies:
- dependency-name: next-intl
  dependency-version: 4.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 09:05:42 -07:00
Tim
e4f2eac703 Update nl-NL.json
It currently contains several errors. I believe I've fixed the major ones now, but there are probably still things I've overlooked.

Incidentally, there's no option to edit the main headings for General, Access Control, and Organization. This also applies to Manage Clients (beta) page.
2025-09-17 09:01:46 -07:00
Oliver Antwerpen
3aa45007a7 Update de-DE.json
Corrected different translations to real german
2025-09-17 09:01:09 -07:00
miloschwartz
f452892c88 fix cant create oidc user closes #1472 2025-09-16 17:29:45 -07:00
miloschwartz
a0fece8a0e print failed crowdsec install error 2025-09-16 17:17:41 -07:00
Owen Schwartz
e3d493209b Merge pull request #1475 from Pallavikumarimdb/Fix/frontend-resource-niceid
Use niceId for resource URLs to prevent 307 redirects
2025-09-16 12:22:54 -07:00
Pallavi
2e8b63553d resource links from id to niceId 2025-09-16 23:46:21 +05:30
Owen
fb8f4b95b7 Make sure to default the match 2025-09-15 22:06:50 -07:00
miloschwartz
83e107c713 migrate autoProvisioned on user based on idp autoProvision 2025-09-15 21:52:35 -07:00
Owen
e97642a790 Filter out duplicates 2025-09-15 21:50:21 -07:00
Owen
426d8684bf Merge branch 'dev' 2025-09-15 15:22:06 -07:00
Owen
5e7409a4f0 Make sure to allow targets only 2025-09-15 15:21:53 -07:00
Owen Schwartz
c225a4cd48 Merge pull request #1467 from fosrl/dev
1.10.0
2025-09-15 14:44:04 -07:00
Owen Schwartz
24df9e1ce6 Merge pull request #1466 from fosrl/crowdin_dev
New Crowdin updates
2025-09-15 14:34:59 -07:00
Owen Schwartz
eab1fd3722 New translations en-us.json (Norwegian Bokmal) 2025-09-15 14:34:40 -07:00
Owen Schwartz
93bd041693 New translations en-us.json (Chinese Simplified) 2025-09-15 14:34:39 -07:00
Owen Schwartz
665ebe993c New translations en-us.json (Turkish) 2025-09-15 14:34:38 -07:00
Owen Schwartz
4086130371 New translations en-us.json (Russian) 2025-09-15 14:34:36 -07:00
Owen Schwartz
29aacf5238 New translations en-us.json (Portuguese) 2025-09-15 14:34:35 -07:00
Owen Schwartz
497e6a8422 New translations en-us.json (Polish) 2025-09-15 14:34:34 -07:00
Owen Schwartz
af8572add9 New translations en-us.json (Dutch) 2025-09-15 14:34:33 -07:00
Owen Schwartz
d6aea96400 New translations en-us.json (Korean) 2025-09-15 14:34:31 -07:00
Owen Schwartz
17e26ff1a6 New translations en-us.json (Italian) 2025-09-15 14:34:30 -07:00
Owen Schwartz
f5f223348d New translations en-us.json (German) 2025-09-15 14:34:28 -07:00
Owen Schwartz
e4f90fd7ea New translations en-us.json (Czech) 2025-09-15 14:34:27 -07:00
Owen Schwartz
96dff20760 New translations en-us.json (Bulgarian) 2025-09-15 14:34:26 -07:00
Owen Schwartz
d639f7f6de New translations en-us.json (Spanish) 2025-09-15 14:34:25 -07:00
Owen Schwartz
5b35ec2ea2 New translations en-us.json (French) 2025-09-15 14:34:23 -07:00
Owen
bc78b95265 Remove toast 2025-09-15 14:32:36 -07:00
Owen
97f22eccbb Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-09-15 14:26:47 -07:00
Owen Schwartz
a4fe86e38a Merge pull request #1406 from Pallavikumarimdb/enhancement-#906/enter-key-form-behavior
Enter key handling & hostname field reset in resource create
2025-09-15 14:26:29 -07:00
Owen
4bc1e10ecb Adjust default to prefix 2025-09-15 14:17:41 -07:00
Owen Schwartz
5b840d73bb Merge pull request #1465 from marcschaeferger/dev
feat(sites): adding official kubernetes helm install command for newt
2025-09-15 14:01:35 -07:00
Marc Schäfer
afa9acfb1e feat(sites): adding official kubernetes helm install command for newt 2025-09-15 20:27:03 +02:00
Owen
7b7f65da39 Add default to siteResources niceId 2025-09-15 11:13:31 -07:00
Owen Schwartz
806da59f47 Merge pull request #1449 from fosrl/declare
Add declareivie config for resources, path matching, custom headers
2025-09-14 22:06:33 -07:00
Owen
9a009a4ea3 Adjust headers to work as name value 2025-09-14 22:06:05 -07:00
Owen
083d890053 Merge branch 'dev' into declare 2025-09-14 21:54:39 -07:00
Owen
e693a8aeb8 Merge remote-tracking branch 'refs/remotes/origin/dev' into dev 2025-09-14 21:30:10 -07:00
Owen
831b46d7b5 Merge branch 'main' into dev 2025-09-14 21:29:43 -07:00
Owen
8dd3022b94 Merge branch 'Lokowitz-main' 2025-09-14 20:34:34 -07:00
Owen
b278eb7110 Merge branch 'main' of github.com:Lokowitz/pangolin into Lokowitz-main 2025-09-14 20:33:20 -07:00
Owen
7a66163216 Working on making blueprints work 2025-09-14 20:33:06 -07:00
Owen Schwartz
dda2043401 Merge pull request #1450 from fosrl/crowdin_dev
New Crowdin updates
2025-09-14 20:31:05 -07:00
Owen
08d6183c9b Update migrations 2025-09-14 17:35:21 -07:00
Owen
eea0b86d6d Rules, client resources working 2025-09-14 17:27:21 -07:00
Owen
58c04fd196 Site resources for the blueprint 2025-09-14 15:57:41 -07:00
Lokowitz
09de6f6b5f modified: package-lock.json
modified:   package.json
2025-09-14 18:50:28 +00:00
Lokowitz
d0bbd2b539 modified: package-lock.json
modified:   package.json
2025-09-14 18:33:34 +00:00
Fernando Rodrigues
ee8952de10 Revert "fix: change default integration_api to 3004" 2025-09-14 13:07:08 +00:00
Lokowitz
134595a6b7 modified: package-lock.json
modified:   package.json
2025-09-14 09:44:04 +00:00
Milo Schwartz
4ff46f1650 Update README.md 2025-09-13 19:15:52 -04:00
Lokowitz
4779201d4c modified: src/app/[orgId]/settings/access/layout.tsx 2025-09-13 15:06:34 +00:00
dependabot[bot]
3a8643d83c Bump next in the npm_and_yarn group across 1 directory (#336)
Bumps the npm_and_yarn group with 1 update in the / directory: [next](https://github.com/vercel/next.js).


Updates `next` from 15.4.6 to 15.5.3
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.4.6...v15.5.3)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.5.3
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-13 16:49:21 +02:00
Marvin
806a49b822 Update page.tsx 2025-09-13 16:42:37 +02:00
Marvin
95d74825ee Update layout.tsx 2025-09-13 16:42:22 +02:00
Marvin
e4960909ed layout.tsx aktualisieren 2025-09-13 10:18:43 +02:00
dependabot[bot]
6cb36aaf13 Bump the prod-minor-updates group across 1 directory with 7 updates (#335) 2025-09-13 10:08:40 +02:00
dependabot[bot]
cb06e93650 Bump uuid from 11.1.0 to 13.0.0 (#334) 2025-09-13 09:43:59 +02:00
dependabot[bot]
e3a2f7a514 Bump the dev-patch-updates group with 6 updates (#329)
Bumps the dev-patch-updates group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.1.12` | `4.1.13` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.3.0` | `24.3.3` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.1.12` | `19.1.13` |
| [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) | `7.7.0` | `7.7.1` |
| [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email) | `4.2.8` | `4.2.11` |
| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.1.12` | `4.1.13` |


Updates `@tailwindcss/postcss` from 4.1.12 to 4.1.13
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.13/packages/@tailwindcss-postcss)

Updates `@types/node` from 24.3.0 to 24.3.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@types/react` from 19.1.12 to 19.1.13
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/semver` from 7.7.0 to 7.7.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

Updates `react-email` from 4.2.8 to 4.2.11
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@4.2.11/packages/react-email)

Updates `tailwindcss` from 4.1.12 to 4.1.13
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.13/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.13
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/node"
  dependency-version: 24.3.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/react"
  dependency-version: 19.1.13
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/semver"
  dependency-version: 7.7.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: react-email
  dependency-version: 4.2.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.13
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-13 09:37:17 +02:00
dependabot[bot]
01b1e817d8 Bump the prod-patch-updates group with 7 updates (#332)
Bumps the prod-patch-updates group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components) | `0.5.0` | `0.5.3` |
| [@react-email/render](https://github.com/resend/react-email/tree/HEAD/packages/render) | `1.2.0` | `1.2.3` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.44.4` | `0.44.5` |
| [next-intl](https://github.com/amannn/next-intl) | `4.3.4` | `4.3.8` |
| [nodemailer](https://github.com/nodemailer/nodemailer) | `7.0.5` | `7.0.6` |
| [@types/nodemailer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/nodemailer) | `6.4.17` | `7.0.1` |
| [tw-animate-css](https://github.com/Wombosvideo/tw-animate-css) | `1.3.7` | `1.3.8` |


Updates `@react-email/components` from 0.5.0 to 0.5.3
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/components/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@0.5.3/packages/components)

Updates `@react-email/render` from 1.2.0 to 1.2.3
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/render/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/render@1.2.3/packages/render)

Updates `drizzle-orm` from 0.44.4 to 0.44.5
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.44.4...0.44.5)

Updates `next-intl` from 4.3.4 to 4.3.8
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.3.4...v4.3.8)

Updates `nodemailer` from 7.0.5 to 7.0.6
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v7.0.5...v7.0.6)

Updates `@types/nodemailer` from 6.4.17 to 7.0.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/nodemailer)

Updates `tw-animate-css` from 1.3.7 to 1.3.8
- [Release notes](https://github.com/Wombosvideo/tw-animate-css/releases)
- [Commits](https://github.com/Wombosvideo/tw-animate-css/compare/v1.3.7...v1.3.8)

---
updated-dependencies:
- dependency-name: "@react-email/components"
  dependency-version: 0.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@react-email/render"
  dependency-version: 1.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: drizzle-orm
  dependency-version: 0.44.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: next-intl
  dependency-version: 4.3.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: nodemailer
  dependency-version: 7.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@types/nodemailer"
  dependency-version: 7.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: prod-patch-updates
- dependency-name: tw-animate-css
  dependency-version: 1.3.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-13 09:36:52 +02:00
dependabot[bot]
c3a5195575 Bump typescript-eslint in the dev-minor-updates group (#331)
Bumps the dev-minor-updates group with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `typescript-eslint` from 8.40.0 to 8.43.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.43.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.43.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-13 09:34:35 +02:00
Marvin
99765c7bd5 Update index.ts 2025-09-13 09:32:01 +02:00
Owen
8929f389f4 Adjust styling to make it more clear 2025-09-12 11:45:03 -07:00
Owen Schwartz
4141d91f1b New translations en-us.json (Norwegian Bokmal) 2025-09-11 21:55:28 -07:00
Owen Schwartz
90272c84d2 New translations en-us.json (Chinese Simplified) 2025-09-11 21:55:27 -07:00
Owen Schwartz
3006a8e58c New translations en-us.json (Turkish) 2025-09-11 21:55:26 -07:00
Owen Schwartz
52a9dbd45d New translations en-us.json (Russian) 2025-09-11 21:55:25 -07:00
Owen Schwartz
b2fb55d2c1 New translations en-us.json (Portuguese) 2025-09-11 21:55:23 -07:00
Owen Schwartz
a1c16d22d8 New translations en-us.json (Polish) 2025-09-11 21:55:22 -07:00
Owen Schwartz
0e9504ee4d New translations en-us.json (Dutch) 2025-09-11 21:55:21 -07:00
Owen Schwartz
e8cad6fc20 New translations en-us.json (Korean) 2025-09-11 21:55:20 -07:00
Owen Schwartz
bc261f7739 New translations en-us.json (Italian) 2025-09-11 21:55:19 -07:00
Owen Schwartz
0b8983a86b New translations en-us.json (German) 2025-09-11 21:55:17 -07:00
Owen Schwartz
5a61da3c53 New translations en-us.json (Czech) 2025-09-11 21:55:16 -07:00
Owen Schwartz
800fe6244c New translations en-us.json (Bulgarian) 2025-09-11 21:55:15 -07:00
Owen Schwartz
9e1fec812c New translations en-us.json (Spanish) 2025-09-11 21:55:14 -07:00
Owen Schwartz
61632f9c97 New translations en-us.json (French) 2025-09-11 21:55:12 -07:00
Owen
f5e44129d8 Eslint fix 2025-09-11 21:32:12 -07:00
Owen
3eaca924da Update migrations 2025-09-11 21:28:15 -07:00
Owen
da1c706334 Translate 2025-09-11 21:26:13 -07:00
Owen
3b726dfb1e Merge branch 'dev' into declare 2025-09-11 21:24:27 -07:00
Owen
d51e7f7e40 Add prefix to ui and resource 2025-09-11 21:20:33 -07:00
Owen
2551e0c291 Handle different routers based on target path 2025-09-11 15:30:07 -07:00
Owen
2efd5c31ab Headers input working on resource 2025-09-11 13:58:12 -07:00
Owen
1eacb8ff36 Get the headers into the traefik config 2025-09-11 12:20:50 -07:00
Owen
612446c3c9 Work accross sites? 2025-09-11 11:42:37 -07:00
Owen Schwartz
e121e16ad9 Merge pull request #1441 from fosrl/dependabot/go_modules/install/prod-minor-updates-f3fcceee1e
Bump golang.org/x/term from 0.34.0 to 0.35.0 in /install in the prod-minor-updates group
2025-09-11 10:38:17 -07:00
Owen Schwartz
23616b41be Merge pull request #1445 from fosrl/crowdin_dev
New Crowdin updates
2025-09-11 10:36:04 -07:00
Owen Schwartz
1778ba49b2 New translations en-us.json (Norwegian Bokmal) 2025-09-11 10:35:39 -07:00
Owen Schwartz
b6f2bd4703 New translations en-us.json (Chinese Simplified) 2025-09-11 10:35:38 -07:00
Owen Schwartz
5fd67224f6 New translations en-us.json (Turkish) 2025-09-11 10:35:37 -07:00
Owen Schwartz
c9d21dde0c New translations en-us.json (Russian) 2025-09-11 10:35:35 -07:00
Owen Schwartz
de2c5aa068 New translations en-us.json (Portuguese) 2025-09-11 10:35:34 -07:00
Owen Schwartz
ad01cecae6 New translations en-us.json (Polish) 2025-09-11 10:35:33 -07:00
Owen Schwartz
75ef14c75b New translations en-us.json (Dutch) 2025-09-11 10:35:32 -07:00
Owen Schwartz
03a5a0eddb New translations en-us.json (Korean) 2025-09-11 10:35:30 -07:00
Owen Schwartz
66befd35eb New translations en-us.json (Italian) 2025-09-11 10:35:29 -07:00
Owen Schwartz
3cbad16c30 New translations en-us.json (German) 2025-09-11 10:35:27 -07:00
Owen Schwartz
3bba7c5956 New translations en-us.json (Czech) 2025-09-11 10:35:26 -07:00
Owen Schwartz
0daa84c583 New translations en-us.json (Bulgarian) 2025-09-11 10:35:25 -07:00
Owen Schwartz
92358a52c0 New translations en-us.json (Spanish) 2025-09-11 10:35:23 -07:00
Owen Schwartz
faf17e9e86 New translations en-us.json (French) 2025-09-11 10:35:22 -07:00
Owen
ef6efe94b4 Eslint fix 2025-09-11 10:27:02 -07:00
Owen
819d7ea23e Merge branch 'main' into dev 2025-09-11 10:25:21 -07:00
Owen Schwartz
61ff192cfd Merge pull request #1444 from hetlelid/patch-1
Update page.tsx
2025-09-11 10:24:55 -07:00
Owen
ceb1b07ce2 Just style it a bit 2025-09-11 10:24:40 -07:00
Owen
90188d4358 Testing cross site issue 2025-09-11 10:12:27 -07:00
hetlelid
35aa0ab4e7 Update page.tsx
Added default location for the config files, for reference
2025-09-11 11:11:36 +02:00
Owen
14dd76db8b Apply blueprint over api call 2025-09-10 17:28:00 -07:00
Owen
fb26dfad65 Add migrations for 1.10.0 2025-09-10 17:15:54 -07:00
miloschwartz
bedc5adb75 add hide free domain option to domain picker 2025-09-10 15:36:05 -07:00
Owen
800b1f1520 Add basic blueprints 2025-09-10 15:33:56 -07:00
miloschwartz
a4571a80ae Merge branch 'patch' into dev 2025-09-10 14:44:25 -07:00
miloschwartz
a0a612618e fixed email undefined error on request email code 2025-09-10 14:20:25 -07:00
dependabot[bot]
db94728a5b Bump golang.org/x/term in /install in the prod-minor-updates group
Bumps the prod-minor-updates group in /install with 1 update: [golang.org/x/term](https://github.com/golang/term).


Updates `golang.org/x/term` from 0.34.0 to 0.35.0
- [Commits](https://github.com/golang/term/compare/v0.34.0...v0.35.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-version: 0.35.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-09 01:18:58 +00:00
Owen
04352a670a Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-09-08 17:50:57 -07:00
Owen
fe6e3b013e Resource identified with niceId now 2025-09-08 17:50:07 -07:00
Owen
a947a74194 Add resource niceId 2025-09-08 17:37:30 -07:00
miloschwartz
06055ff62b add common domain validation func 2025-09-08 17:25:01 -07:00
miloschwartz
45cb1562e5 pull api base url from config for axios 2025-09-08 16:55:40 -07:00
Pallavi
2f89a16852 minor fix to domain sanitize when create resources 2025-09-08 11:26:54 +05:30
Pallavi
86956b8cac fix enter key reload issue 2025-09-08 11:26:54 +05:30
Pallavi
84fb3add33 Enter key handling & hostname field reset in resource create 2025-09-08 11:26:54 +05:30
Owen Schwartz
56ee68d9f3 Merge pull request #1434 from fosrl/dependabot/github_actions/actions/setup-node-5
Bump actions/setup-node from 4 to 5
2025-09-07 22:01:36 -07:00
Owen Schwartz
e81fd3bb31 Merge pull request #1435 from fosrl/dependabot/github_actions/actions/setup-go-6
Bump actions/setup-go from 5 to 6
2025-09-07 22:01:28 -07:00
Owen Schwartz
938ca29777 Merge pull request #1436 from fosrl/dependabot/github_actions/actions/stale-10
Bump actions/stale from 9 to 10
2025-09-07 22:01:21 -07:00
Owen Schwartz
122902968f Merge pull request #1415 from fosrl/crowdin_dev
New Crowdin updates
2025-09-07 22:01:12 -07:00
Owen Schwartz
b55c30065f Merge pull request #1431 from Pallavikumarimdb/Fix/site-resource-destinationip-validation
Fix inconsistent destinationIp validation between create and update APIs
2025-09-07 21:11:32 -07:00
dependabot[bot]
92ac2dbac2 Bump actions/stale from 9 to 10
Bumps [actions/stale](https://github.com/actions/stale) from 9 to 10.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v9...v10)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '10'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 01:32:59 +00:00
dependabot[bot]
d3e6decef9 Bump actions/setup-go from 5 to 6
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5 to 6.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 01:32:10 +00:00
dependabot[bot]
579cd9d338 Bump actions/setup-node from 4 to 5
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 01:32:04 +00:00
Pallavi
9e2a58dd46 inconsistent destinationIp validation between create and update 2025-09-07 23:45:35 +05:30
Owen
64722617c1 Fix #1423 2025-09-07 10:47:08 -07:00
Owen Schwartz
5845ddbdda Merge pull request #1430 from Pallavikumarimdb/Fix/include-region-in-exitnode-query
Fix: Include "region" field in ExitNode query to match schema
2025-09-07 10:25:00 -07:00
Pallavi
bf9ce0df9b Include region field in ExitNode query to match schema 2025-09-07 22:47:06 +05:30
miloschwartz
8aee2ec3a1 update install link 2025-09-06 22:37:02 -07:00
Milo Schwartz
3292eafe4a Update README.md 2025-09-07 01:36:37 -04:00
miloschwartz
9ad31b2c81 auto detect public ip 2025-09-06 22:24:22 -07:00
miloschwartz
374ed79a18 remove extra components 2025-09-06 21:38:17 -07:00
miloschwartz
3d5f73e344 fix listIdp query error 2025-09-06 17:26:44 -07:00
Owen
6761428a96 Add region 2025-09-06 16:54:16 -07:00
Owen Schwartz
0a9b463eaa New translations en-us.json (Norwegian Bokmal) 2025-09-05 17:16:59 -07:00
Owen Schwartz
c219256fff New translations en-us.json (Chinese Simplified) 2025-09-05 17:16:58 -07:00
Owen Schwartz
7e48803dc5 New translations en-us.json (Turkish) 2025-09-05 17:16:57 -07:00
Owen Schwartz
d496b8a414 New translations en-us.json (Russian) 2025-09-05 17:16:55 -07:00
Owen Schwartz
4825129560 New translations en-us.json (Portuguese) 2025-09-05 17:16:54 -07:00
Owen Schwartz
adc54b2582 New translations en-us.json (Polish) 2025-09-05 17:16:53 -07:00
Owen Schwartz
863567c9b6 New translations en-us.json (Dutch) 2025-09-05 17:16:52 -07:00
Owen Schwartz
102555023b New translations en-us.json (Korean) 2025-09-05 17:16:51 -07:00
Owen Schwartz
f1a9eef531 New translations en-us.json (Italian) 2025-09-05 17:16:49 -07:00
Owen Schwartz
5f007a5b0f New translations en-us.json (German) 2025-09-05 17:16:48 -07:00
Owen Schwartz
9455141262 New translations en-us.json (Czech) 2025-09-05 17:16:47 -07:00
Owen Schwartz
37e1379c88 New translations en-us.json (Bulgarian) 2025-09-05 17:16:46 -07:00
Owen Schwartz
55d597e519 New translations en-us.json (Spanish) 2025-09-05 17:16:45 -07:00
Owen Schwartz
da5ee5c951 New translations en-us.json (French) 2025-09-05 17:16:43 -07:00
miloschwartz
b0bd9279fc add idp auto provision override on user 2025-09-05 16:14:25 -07:00
Owen
90456339ca Add node env for react email issue back 2025-09-05 11:51:44 -07:00
Owen
a653c8bad7 Update start command one more time 2025-09-05 11:45:42 -07:00
Owen
c4fa6cf458 Remove source map support 2025-09-05 11:25:13 -07:00
Owen
268fc7b923 Update build process 2025-09-05 11:23:43 -07:00
miloschwartz
02604f5290 increase telemetry report interval 2025-09-04 20:17:59 -07:00
miloschwartz
1dad7e86a0 add optional icon to strategy select 2025-09-04 18:02:42 -07:00
Owen
838e3efbca Pass in db to pickPort 2025-09-04 18:01:33 -07:00
miloschwartz
3e353717f5 add oidc variant 2025-09-04 17:52:52 -07:00
miloschwartz
0a4b74b91a scope user id check to idp in create idp user 2025-09-04 15:23:51 -07:00
miloschwartz
e69fbf3ccf Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-09-04 15:23:48 -07:00
miloschwartz
0b2349d6bf fix delete idp user 2025-09-04 15:15:10 -07:00
Owen
3a8f04cf14 Add transaction type 2025-09-04 14:01:12 -07:00
Owen
e941cf956f Fix typo in response 2025-09-04 14:01:11 -07:00
Owen Schwartz
29f7bcf6f5 New translations en-us.json (Norwegian Bokmal) 2025-09-04 11:40:07 -07:00
Owen Schwartz
1cf1e0dc57 New translations en-us.json (Chinese Simplified) 2025-09-04 11:40:06 -07:00
Owen Schwartz
175283805e New translations en-us.json (Portuguese) 2025-09-04 11:40:02 -07:00
Owen Schwartz
063c0405e8 New translations en-us.json (Dutch) 2025-09-04 11:40:00 -07:00
Owen Schwartz
947cb77753 New translations en-us.json (Korean) 2025-09-04 11:39:58 -07:00
miloschwartz
28b3b305ea remove special char domain placeholders 2025-09-04 11:27:06 -07:00
miloschwartz
df85f13aea move all components to components dir 2025-09-04 11:18:42 -07:00
Owen Schwartz
042e2c1390 Merge pull request #1413 from AstralDestiny/traefik-dynamic_config-cleanup
Update Traefik to not declare an unnecessary path and make the config cleaner.
2025-09-04 10:46:42 -07:00
AstralDestiny
e6314bee35 Update Traefik to not declare an unnecessary path and make the config cleaner. 2025-09-04 11:44:20 -04:00
Owen
4292d3262e Add niceId to resource 2025-09-03 17:34:16 -07:00
Owen
35d070ad29 Convert to exitNodeComm function 2025-09-02 16:11:08 -07:00
Owen Schwartz
cd79e77576 Merge pull request #1397 from fosrl/dev
1.9.4
2025-09-01 17:47:01 -07:00
Owen Schwartz
1f1c20d637 Merge pull request #1396 from fosrl/crowdin_dev
New Crowdin updates
2025-09-01 17:46:22 -07:00
Owen Schwartz
e87b3b1b54 New translations en-us.json (Norwegian Bokmal) 2025-09-01 17:46:02 -07:00
Owen Schwartz
a6f7b65625 New translations en-us.json (Chinese Simplified) 2025-09-01 17:46:01 -07:00
Owen Schwartz
722fa47132 New translations en-us.json (Turkish) 2025-09-01 17:46:00 -07:00
Owen Schwartz
f83e290b4c New translations en-us.json (Russian) 2025-09-01 17:45:59 -07:00
Owen Schwartz
11b4047283 New translations en-us.json (Portuguese) 2025-09-01 17:45:57 -07:00
Owen Schwartz
69b2032a86 New translations en-us.json (Polish) 2025-09-01 17:45:56 -07:00
Owen Schwartz
636298569f New translations en-us.json (Dutch) 2025-09-01 17:45:55 -07:00
Owen Schwartz
ed8a282d35 New translations en-us.json (Korean) 2025-09-01 17:45:54 -07:00
Owen Schwartz
3bd5e850e0 New translations en-us.json (Italian) 2025-09-01 17:45:52 -07:00
Owen Schwartz
070f1f9159 New translations en-us.json (German) 2025-09-01 17:45:51 -07:00
Owen Schwartz
195644cca5 New translations en-us.json (Czech) 2025-09-01 17:45:50 -07:00
Owen Schwartz
8092c86ecd New translations en-us.json (Bulgarian) 2025-09-01 17:45:49 -07:00
Owen Schwartz
28f33702da New translations en-us.json (Spanish) 2025-09-01 17:45:48 -07:00
Owen Schwartz
570632b8be New translations en-us.json (French) 2025-09-01 17:45:46 -07:00
Owen
f2881e1b31 Merge branch 'Pallavikumarimdb-enhancement-#906/persist-amount-of-entries' into dev 2025-09-01 17:40:02 -07:00
Owen
dad35e37ef Merge branch 'enhancement-#906/persist-amount-of-entries' of github.com:Pallavikumarimdb/pangolin into Pallavikumarimdb-enhancement-#906/persist-amount-of-entries 2025-09-01 17:39:16 -07:00
Owen
39afabd60e Source maps as js 2025-09-01 14:03:32 -07:00
Owen
dc7e14a34b Limit saas 2025-09-01 11:39:30 -07:00
Owen
1dca71a779 Try to include source maps 2025-09-01 11:29:49 -07:00
Pallavi
e9494efa8e quick fix 2025-09-01 23:06:39 +05:30
Owen Schwartz
8159a0f13d Merge pull request #1394 from Pallavikumarimdb/Fix/hostname-field-reset-port-and-method
Fix/hostname field reset port and method
2025-09-01 10:21:31 -07:00
Pallavi
ee9101e738 Save Amount of Entries 2025-09-01 22:26:12 +05:30
Pallavi
b670e6e3dc update parser to handle h2c 2025-09-01 21:47:50 +05:30
Pallavi
5e5754fa62 preserve port and method on host change 2025-09-01 21:22:18 +05:30
Owen Schwartz
5fcf76066f Merge pull request #1391 from fosrl/dev
1.9.3
2025-08-31 20:58:35 -07:00
Owen
601645fa72 Fix translations
Fix #1355
2025-08-31 20:56:49 -07:00
Owen
12765ad675 Merge branch 'Pallavikumarimdb-Fix/allow-unicode-domain-name' into dev 2025-08-31 19:41:35 -07:00
Owen
ad3383d23d Merge branch 'Fix/allow-unicode-domain-name' of github.com:Pallavikumarimdb/pangolin into Pallavikumarimdb-Fix/allow-unicode-domain-name 2025-08-31 19:40:13 -07:00
Pallavi
7d5961cf50 Support unicode with subdomain sanitized 2025-08-31 22:45:42 +05:30
Owen
864aa052f1 Merge branch 'Hetav21-enhancement-1318' into dev 2025-08-31 09:50:47 -07:00
Hetav21
be16196058 feat: make version numbers link to GitHub releases and add Discord link 2025-08-31 21:19:34 +05:30
Pallavi
8a62f12e8b fix lint 2025-08-31 17:53:36 +05:30
Pallavi
78f464f6ca Show/allow unicode domain name 2025-08-31 17:53:35 +05:30
Owen
f37eda4739 Fix #1376 2025-08-30 22:28:37 -07:00
Owen
4e106e9e5a Make more explicit in config telemetry
Fixes #1374
2025-08-30 22:22:42 -07:00
Owen
ccf8e5e6f4 Dont pull org from api key
Fixes #1361
2025-08-30 22:12:35 -07:00
Owen
9455adf61f Add list invitations to integration api
Fixes #1364
2025-08-30 21:18:22 -07:00
miloschwartz
970ab9818a translate managed page 2025-08-30 16:51:44 -07:00
Owen Schwartz
7848cf7141 Merge pull request #1377 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-f90e31e16c
Bump the dev-patch-updates group across 1 directory with 2 updates
2025-08-30 16:12:29 -07:00
Owen
8e5aa9c195 Merge branch 'Pallavikumarimdb-feature-906/smart-host-parsing' into dev 2025-08-30 15:52:45 -07:00
Owen
a03e9ba7dd Merge branch 'feature-906/smart-host-parsing' of github.com:Pallavikumarimdb/pangolin into Pallavikumarimdb-feature-906/smart-host-parsing 2025-08-30 15:51:15 -07:00
Owen
9e646ba385 Merge branch 'Pallavikumarimdb-Fix/domain-picker-issue' into dev 2025-08-30 15:24:15 -07:00
Owen
d9a4f20fe6 Merge branch 'Fix/domain-picker-issue' of github.com:Pallavikumarimdb/pangolin into Pallavikumarimdb-Fix/domain-picker-issue 2025-08-30 15:22:02 -07:00
Owen
e659f0e75d Fix type 2025-08-29 15:39:06 -07:00
Owen
8891d6239f Handle wildcard certs 2025-08-29 15:35:57 -07:00
Pallavi
e3bd3fb985 consistent full domain 2025-08-30 02:59:23 +05:30
Pallavi
54764dfacd unify subdomain validation schema to handle edge cases 2025-08-30 01:14:03 +05:30
Owen
b156b5ff2d Make /32 to not mess with newt 2025-08-28 22:42:27 -07:00
Owen
d8e547c9a0 Configure if allow raw resources 2025-08-28 22:11:24 -07:00
dependabot[bot]
a0b93377a4 Bump the dev-patch-updates group across 1 directory with 2 updates
Bumps the dev-patch-updates group with 2 updates in the / directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom).


Updates `@types/react` from 19.1.11 to 19.1.12
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 19.1.8 to 19.1.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-29 01:23:18 +00:00
Pallavi
e8a6efd079 subdomain validation consistent 2025-08-29 03:58:49 +05:30
Pallavi
18bb6caf8f allows typing flow while providing helpful validation 2025-08-29 02:44:39 +05:30
Pallavi
bc335d15c0 preserve subdomain with sanitizeSubdomain and validateSubdomain 2025-08-29 01:12:12 +05:30
Owen Schwartz
2a0d440a34 Merge pull request #1366 from fosrl/dev
1.9.2
2025-08-27 12:02:21 -07:00
Owen Schwartz
b0500fac29 Merge pull request #1367 from fosrl/crowdin_dev
New Crowdin updates
2025-08-27 11:59:06 -07:00
Owen Schwartz
af16e6423a New translations en-us.json (Norwegian Bokmal) 2025-08-27 11:58:46 -07:00
Owen Schwartz
ff90471f0f New translations en-us.json (Chinese Simplified) 2025-08-27 11:58:44 -07:00
Owen Schwartz
bcc501c524 New translations en-us.json (Turkish) 2025-08-27 11:58:43 -07:00
Owen Schwartz
c4ef211a3e New translations en-us.json (Russian) 2025-08-27 11:58:42 -07:00
Owen Schwartz
592c0eb7ab New translations en-us.json (Portuguese) 2025-08-27 11:58:41 -07:00
Owen Schwartz
880a000865 New translations en-us.json (Polish) 2025-08-27 11:58:40 -07:00
Owen Schwartz
a9571f6adf New translations en-us.json (Dutch) 2025-08-27 11:58:38 -07:00
Owen Schwartz
ca91f313bc New translations en-us.json (Korean) 2025-08-27 11:58:37 -07:00
Owen Schwartz
76b9753916 New translations en-us.json (Italian) 2025-08-27 11:58:36 -07:00
Owen Schwartz
cd8bbe28bf New translations en-us.json (German) 2025-08-27 11:58:35 -07:00
Owen Schwartz
9550c11594 New translations en-us.json (Spanish) 2025-08-27 11:58:32 -07:00
Owen Schwartz
7ac21cad25 New translations en-us.json (French) 2025-08-27 11:58:30 -07:00
Owen
2008a3955a Change destructuring 2025-08-27 11:31:15 -07:00
Owen
f1641c9f3e Dont create exit node on new key
Fixes #1347
Fixes #776
Fixes #1090
2025-08-27 11:25:10 -07:00
Owen Schwartz
bec5bbd033 Merge pull request #1329 from fosrl/dependabot/go_modules/install/prod-minor-updates-b66dbea3a9
Bump golang.org/x/term from 0.33.0 to 0.34.0 in /install in the prod-minor-updates group
2025-08-27 10:55:48 -07:00
Owen Schwartz
ae11f72e28 Merge pull request #1362 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-43a727f364
Bump the dev-patch-updates group across 1 directory with 3 updates
2025-08-27 10:50:20 -07:00
Owen Schwartz
6b88cb3920 Merge pull request #1354 from fosrl/crowdin_dev
New Crowdin updates
2025-08-27 10:47:58 -07:00
dependabot[bot]
38772111e8 Bump the dev-patch-updates group across 1 directory with 3 updates
Bumps the dev-patch-updates group with 3 updates in the / directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react), [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) and [tsx](https://github.com/privatenumber/tsx).


Updates `@types/react` from 19.1.10 to 19.1.11
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 19.1.7 to 19.1.8
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `tsx` from 4.20.4 to 4.20.5
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.20.4...v4.20.5)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tsx
  dependency-version: 4.20.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-27 11:45:42 +00:00
Owen Schwartz
14f50c3e66 New translations en-us.json (Czech) 2025-08-27 02:22:26 -07:00
Owen
b89a2c9e49 Trust the gerbil proxy for proxyProtcol 2025-08-26 22:36:33 -07:00
Owen Schwartz
2d2eda988c New translations en-us.json (Norwegian Bokmal) 2025-08-26 22:34:55 -07:00
Owen Schwartz
432033969b New translations en-us.json (Chinese Simplified) 2025-08-26 22:34:54 -07:00
Owen Schwartz
1fbf74e1f7 New translations en-us.json (Turkish) 2025-08-26 22:34:53 -07:00
Owen Schwartz
93648ff00b New translations en-us.json (Russian) 2025-08-26 22:34:52 -07:00
Owen Schwartz
9513136610 New translations en-us.json (Portuguese) 2025-08-26 22:34:50 -07:00
Owen Schwartz
43a2a39f8d New translations en-us.json (Polish) 2025-08-26 22:34:49 -07:00
Owen Schwartz
218351de9a New translations en-us.json (Dutch) 2025-08-26 22:34:48 -07:00
Owen Schwartz
b92b922eee New translations en-us.json (Korean) 2025-08-26 22:34:46 -07:00
Owen Schwartz
91be4937ee New translations en-us.json (Italian) 2025-08-26 22:34:45 -07:00
Owen Schwartz
19b36a5fae New translations en-us.json (German) 2025-08-26 22:34:44 -07:00
Owen Schwartz
bb9ee7dfd2 New translations en-us.json (Czech) 2025-08-26 22:34:42 -07:00
Owen Schwartz
ac0351b525 New translations en-us.json (Bulgarian) 2025-08-26 22:34:41 -07:00
Owen Schwartz
405f5ad7cc New translations en-us.json (Spanish) 2025-08-26 22:34:40 -07:00
Owen Schwartz
8cc2712da3 New translations en-us.json (French) 2025-08-26 22:34:39 -07:00
Owen
c02ac8d1bf Seperate out function 2025-08-26 17:19:04 -07:00
Owen
a1802add19 Geoblocking works 2025-08-26 17:14:55 -07:00
Owen
218a6642a2 Merge branch 'dev' into geoip 2025-08-25 21:07:17 -07:00
dependabot[bot]
21a83a5755 Bump golang.org/x/term in /install in the prod-minor-updates group
Bumps the prod-minor-updates group in /install with 1 update: [golang.org/x/term](https://github.com/golang/term).


Updates `golang.org/x/term` from 0.33.0 to 0.34.0
- [Commits](https://github.com/golang/term/compare/v0.33.0...v0.34.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-26 02:12:49 +00:00
Owen Schwartz
bec75e51f6 New translations en-us.json (French) 2025-08-25 17:41:14 -07:00
Owen Schwartz
6c9b445be6 Merge pull request #1353 from fosrl/dev
1.9.1
2025-08-25 17:13:33 -07:00
Owen
06b17fa941 Merge branch 'main' into dev 2025-08-25 17:07:28 -07:00
Owen
e1d4c029e7 Remove cancel button
Fixes #1312
2025-08-25 17:00:51 -07:00
Owen
293fd70ccb Remove bad file 2025-08-25 16:51:33 -07:00
Owen Schwartz
4ee863db5a Merge pull request #1352 from fosrl/crowdin_dev
New Crowdin updates
2025-08-25 16:42:41 -07:00
Owen Schwartz
2717be0fed New translations en-us.json (Norwegian Bokmal) 2025-08-25 16:42:22 -07:00
Owen Schwartz
1f312e146f New translations en-us.json (Chinese Simplified) 2025-08-25 16:42:21 -07:00
Owen Schwartz
b91557ebb0 New translations en-us.json (Turkish) 2025-08-25 16:42:20 -07:00
Owen Schwartz
465380b5a3 New translations en-us.json (Russian) 2025-08-25 16:42:19 -07:00
Owen Schwartz
60af901feb New translations en-us.json (Portuguese) 2025-08-25 16:42:17 -07:00
Owen Schwartz
ea78a654ff New translations en-us.json (Polish) 2025-08-25 16:42:16 -07:00
Owen Schwartz
f28b6ad0a5 New translations en-us.json (Dutch) 2025-08-25 16:42:15 -07:00
Owen Schwartz
a3bdab1318 New translations en-us.json (Korean) 2025-08-25 16:42:14 -07:00
Owen Schwartz
f8c5d01e3c New translations en-us.json (Italian) 2025-08-25 16:42:13 -07:00
Owen Schwartz
3ebe218b7f New translations en-us.json (German) 2025-08-25 16:42:12 -07:00
Owen Schwartz
7d039ab729 New translations en-us.json (Czech) 2025-08-25 16:42:10 -07:00
Owen Schwartz
b2b6c8c268 New translations en-us.json (Bulgarian) 2025-08-25 16:42:09 -07:00
Owen Schwartz
4950f25063 New translations en-us.json (Spanish) 2025-08-25 16:42:08 -07:00
Owen Schwartz
524d6b48d9 New translations en-us.json (French) 2025-08-25 16:42:07 -07:00
Owen
29fb5735e2 Add missing api endpoints to integration
Fixes #1344
2025-08-25 16:23:22 -07:00
Owen
247fc85440 Fix #1339 2025-08-25 16:08:37 -07:00
Owen
2b4302572c Fix #1343 2025-08-25 13:58:21 -07:00
Owen
9b28780e62 Merge branch 'main' of github.com:fosrl/pangolin 2025-08-25 13:56:34 -07:00
Owen Schwartz
8656f68008 Merge pull request #1341 from SINF-KEN/main
fix typos french.
2025-08-25 11:10:35 -07:00
SINF-KEN
15651b6919 fix typos french. 2025-08-25 12:33:45 +02:00
Owen
78d3861382 Add pass rule 2025-08-24 22:20:09 -07:00
Owen
72f19274cd Add ip lookup 2025-08-24 21:58:52 -07:00
Owen
adbcd1a2e0 Add missing cols 2025-08-24 13:51:03 -07:00
Owen
5b7727fab4 Fix #1332 2025-08-24 12:22:54 -07:00
Owen
9627dfa90c Add ipKeyGenerator 2025-08-24 12:18:34 -07:00
Owen
50022c9fc8 Update readme 2025-08-24 10:33:03 -07:00
Owen Schwartz
e0b76ffebc Merge pull request #1322 from fosrl/dev
1.9.0
2025-08-24 10:31:23 -07:00
Owen Schwartz
be5a9a840c Merge pull request #1323 from fosrl/crowdin_dev
New Crowdin updates
2025-08-23 15:51:54 -07:00
Owen Schwartz
6e5f429e0a New translations en-us.json (Norwegian Bokmal) 2025-08-23 15:51:05 -07:00
Owen Schwartz
e9d9d6e2f4 New translations en-us.json (Chinese Simplified) 2025-08-23 15:51:04 -07:00
Owen Schwartz
b4a57e630c New translations en-us.json (Turkish) 2025-08-23 15:51:03 -07:00
Owen Schwartz
1062e33dc8 New translations en-us.json (Russian) 2025-08-23 15:51:02 -07:00
Owen Schwartz
0e14441f73 New translations en-us.json (Portuguese) 2025-08-23 15:51:01 -07:00
Owen Schwartz
a6a909ae4f New translations en-us.json (Polish) 2025-08-23 15:51:00 -07:00
Owen Schwartz
2b4a39e64c New translations en-us.json (Dutch) 2025-08-23 15:50:59 -07:00
Owen Schwartz
82b4921602 New translations en-us.json (Korean) 2025-08-23 15:50:58 -07:00
Owen Schwartz
4229324a5d New translations en-us.json (Italian) 2025-08-23 15:50:57 -07:00
Owen Schwartz
34d3ca9c51 New translations en-us.json (German) 2025-08-23 15:50:55 -07:00
Owen Schwartz
9bd7002917 New translations en-us.json (Spanish) 2025-08-23 15:50:53 -07:00
Owen Schwartz
ebed9f7a68 New translations en-us.json (French) 2025-08-23 15:50:52 -07:00
Owen
5d34bd82c0 Adjust const one more time 2025-08-23 15:36:19 -07:00
Owen
8bcb2b3b0f Fix type error 2025-08-23 15:30:03 -07:00
Owen
32ba17cf91 Fix linter errors 2025-08-23 15:26:43 -07:00
Owen
704ded4410 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-08-23 15:23:09 -07:00
Owen
88277976c6 Merge branch 'main' into dev 2025-08-23 15:21:32 -07:00
Owen Schwartz
cb95f02912 Merge pull request #1308 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-65c0d343c4
Bump the dev-minor-updates group with 3 updates
2025-08-23 15:20:25 -07:00
Owen Schwartz
928b406359 Merge pull request #1310 from fosrl/crowdin_dev
New Crowdin updates
2025-08-23 15:16:26 -07:00
Owen Schwartz
4757c7db8c Merge pull request #1281 from jackrosenberg/push-nymutulytrsq
fix: change default integration_api to 3004
2025-08-23 15:16:03 -07:00
Owen
5df87641a1 Fix #1321 2025-08-23 15:13:44 -07:00
Owen
04077c53fd Update url to cloud 2025-08-23 12:31:16 -07:00
Owen
574be52b84 Revert b4be620a5b 2025-08-22 10:43:04 -07:00
Owen Schwartz
a66613c5ca New translations en-us.json (Czech) 2025-08-22 09:05:46 -07:00
Owen Schwartz
01b3b19715 New translations en-us.json (Czech) 2025-08-22 07:34:03 -07:00
Pallavi
fb1481c69c fix lint issue 2025-08-22 19:18:47 +05:30
Pallavi
9557f755a5 Add Smart Host Parsing 2025-08-22 13:07:03 +05:30
Owen
60d8831399 Rename hybrid to managed 2025-08-21 14:19:21 -07:00
Owen
5ff5660db3 Add key 2025-08-21 14:12:09 -07:00
Owen Schwartz
d62c359452 New translations en-us.json (Bulgarian) 2025-08-21 00:53:41 -07:00
Owen Schwartz
ec0b6b64fe New translations en-us.json (Bulgarian) 2025-08-20 23:16:40 -07:00
Owen
c53eac76f8 Bug fixes around hybrid 2025-08-20 18:50:39 -07:00
Owen
49cb2ae260 Fixes for siteResources with clients 2025-08-20 18:49:58 -07:00
Owen
77796e8a75 Adjust again for uncertian config 2025-08-20 17:48:55 -07:00
Owen
49f0f6ec7d Installer working with hybrid 2025-08-20 17:00:52 -07:00
Owen Schwartz
2c273a85d8 New translations en-us.json (Bulgarian) 2025-08-20 14:56:23 -07:00
Owen
8273554a1c Hybrid install mode done? 2025-08-20 12:40:21 -07:00
Owen
ad8ab63fd5 Reorging functions 2025-08-20 11:20:46 -07:00
Owen
7de0761329 Rename function 2025-08-20 11:20:46 -07:00
Owen
907dab7d05 Move docker podman question and add hybird question
Allow empty config

Continue to adjust config for hybrid
2025-08-20 11:20:34 -07:00
Owen
2907f22200 Fix server component issue 2025-08-19 22:20:11 -07:00
Owen
7bbe1b2dbe Align correctly 2025-08-19 22:18:42 -07:00
Owen Schwartz
099513072c Merge pull request #1306 from fosrl/crowdin_dev
New Crowdin updates
2025-08-19 22:13:21 -07:00
Owen
7de8bb00e7 Use the sites if they are offline for now 2025-08-19 22:07:52 -07:00
dependabot[bot]
12d44696e8 Bump the dev-minor-updates group with 3 updates
Bumps the dev-minor-updates group with 3 updates: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@dotenvx/dotenvx` from 1.48.4 to 1.49.0
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.48.4...v1.49.0)

Updates `@types/node` from 24.2.1 to 24.3.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `typescript-eslint` from 8.39.1 to 8.40.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.40.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.49.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: "@types/node"
  dependency-version: 24.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: typescript-eslint
  dependency-version: 8.40.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-20 04:47:04 +00:00
Owen
25cef26251 Fix ws reconnect and change create site 2025-08-19 21:29:56 -07:00
Owen Schwartz
dceb398695 New translations en-us.json (Chinese Simplified) 2025-08-19 12:13:19 -07:00
Owen Schwartz
f60599abd3 New translations en-us.json (Turkish) 2025-08-19 12:13:18 -07:00
Owen Schwartz
44f8098e4a New translations en-us.json (Russian) 2025-08-19 12:13:16 -07:00
Owen Schwartz
747979f939 New translations en-us.json (Portuguese) 2025-08-19 12:13:15 -07:00
Owen Schwartz
b3083ae779 New translations en-us.json (Polish) 2025-08-19 12:13:14 -07:00
Owen Schwartz
67580a8b69 New translations en-us.json (Norwegian Bokmal) 2025-08-19 12:13:11 -07:00
Owen Schwartz
291c7aaf0b New translations en-us.json (Dutch) 2025-08-19 12:13:10 -07:00
Owen Schwartz
1a098eecf6 New translations en-us.json (Korean) 2025-08-19 12:13:08 -07:00
Owen Schwartz
0a05bdba1d New translations en-us.json (Italian) 2025-08-19 12:13:07 -07:00
Owen Schwartz
37bfc07ffb New translations en-us.json (German) 2025-08-19 12:13:06 -07:00
Owen Schwartz
eae3ab2dc1 New translations en-us.json (Czech) 2025-08-19 12:13:04 -07:00
Owen Schwartz
1665bf6515 New translations en-us.json (Bulgarian) 2025-08-19 12:13:03 -07:00
Owen Schwartz
0383ffb7f3 New translations en-us.json (Spanish) 2025-08-19 12:13:02 -07:00
Owen Schwartz
a0d6646e49 New translations en-us.json (French) 2025-08-19 12:13:01 -07:00
Owen
254b3a0fc8 Also filer out offline sites? 2025-08-19 11:26:37 -07:00
Owen
21743e5a23 Clarify site address 2025-08-19 11:26:37 -07:00
Owen Schwartz
0550924e08 Merge pull request #1278 from fosrl/dependabot/npm_and_yarn/express-rate-limit-8.0.1
Bump express-rate-limit from 7.5.1 to 8.0.1
2025-08-18 22:18:05 -07:00
Owen Schwartz
7867302be5 Merge pull request #1297 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-1706bce14d
Bump the dev-patch-updates group with 2 updates
2025-08-18 22:17:20 -07:00
Owen Schwartz
14815b388d Merge pull request #1298 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-c7b744908a
Bump the prod-patch-updates group across 1 directory with 13 updates
2025-08-18 22:17:08 -07:00
Owen Schwartz
92cc82220e Merge pull request #1299 from fosrl/dependabot/github_actions/actions/checkout-5
Bump actions/checkout from 4 to 5
2025-08-18 22:16:16 -07:00
Owen Schwartz
da1fae6016 Merge pull request #1304 from Pallavikumarimdb/Fix/Manage-resources-cardheader-responsive
Fix: responsive layout for CardHeader (small/medium/large screens)  inside manage resources page.
2025-08-18 22:09:12 -07:00
miloschwartz
34002470a5 add migration to scirpts 2025-08-18 16:27:51 -07:00
miloschwartz
49f84bccad migrations 2025-08-18 15:43:48 -07:00
Owen
4bcb4a1590 Merge branch 'hybrid' into dev 2025-08-18 15:29:23 -07:00
miloschwartz
378de19f41 add pg 1.9.0 migration 2025-08-18 15:29:04 -07:00
Owen
ffe2512734 Update 2025-08-18 15:27:59 -07:00
Pallavi
b4be620a5b Fix: responsive layout for CardHeader (small/medium/large screens) 2025-08-19 03:53:49 +05:30
miloschwartz
ac8b546393 add sqlite 1.9.0 migration 2025-08-18 14:29:06 -07:00
Owen
9bdf31ee97 Add csrf to auth 2025-08-18 12:22:45 -07:00
Owen
c29cd05db8 Update to pull defaults from var 2025-08-18 12:22:45 -07:00
miloschwartz
cd34820138 prompt for convert node in installer 2025-08-18 12:06:59 -07:00
miloschwartz
d207318494 remove org from get client route 2025-08-18 12:06:01 -07:00
Owen
117062f1d1 One start command 2025-08-17 22:18:25 -07:00
Owen
9d561ba94d Remove bad import 2025-08-17 22:01:30 -07:00
Owen
97fcaed9b4 Optionally use file mode 2025-08-17 21:58:27 -07:00
Owen
5e53ea3607 Merge branch 'hybrid' of github.com:fosrl/pangolin into hybrid 2025-08-17 21:47:13 -07:00
Owen
7dc74cb61b Fix import for traefikConfig 2025-08-17 21:45:17 -07:00
Owen
fbefcfedb9 Also allow local traefikConfig 2025-08-17 21:44:28 -07:00
miloschwartz
36c0d9aba2 add hybrid splash 2025-08-17 21:29:21 -07:00
Owen
8c8a981452 Make more efficient the cert get 2025-08-17 20:18:10 -07:00
dependabot[bot]
7dd586e31d Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 02:32:20 +00:00
dependabot[bot]
366a31b41b Bump the prod-patch-updates group across 1 directory with 13 updates
Bumps the prod-patch-updates group with 13 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives) | `1.3.2` | `1.3.3` |
| [@radix-ui/react-collapsible](https://github.com/radix-ui/primitives) | `1.1.11` | `1.1.12` |
| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives) | `1.1.14` | `1.1.15` |
| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives) | `2.1.15` | `2.1.16` |
| [@radix-ui/react-popover](https://github.com/radix-ui/primitives) | `1.1.14` | `1.1.15` |
| [@radix-ui/react-radio-group](https://github.com/radix-ui/primitives) | `1.3.7` | `1.3.8` |
| [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives) | `1.2.9` | `1.2.10` |
| [@radix-ui/react-select](https://github.com/radix-ui/primitives) | `2.2.5` | `2.2.6` |
| [@radix-ui/react-switch](https://github.com/radix-ui/primitives) | `1.2.5` | `1.2.6` |
| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives) | `1.1.12` | `1.1.13` |
| [@radix-ui/react-toast](https://github.com/radix-ui/primitives) | `1.2.14` | `1.2.15` |
| [@radix-ui/react-tooltip](https://github.com/radix-ui/primitives) | `1.2.7` | `1.2.8` |
| [tw-animate-css](https://github.com/Wombosvideo/tw-animate-css) | `1.3.6` | `1.3.7` |



Updates `@radix-ui/react-checkbox` from 1.3.2 to 1.3.3
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-collapsible` from 1.1.11 to 1.1.12
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-dialog` from 1.1.14 to 1.1.15
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-dropdown-menu` from 2.1.15 to 2.1.16
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-popover` from 1.1.14 to 1.1.15
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-radio-group` from 1.3.7 to 1.3.8
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-scroll-area` from 1.2.9 to 1.2.10
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-select` from 2.2.5 to 2.2.6
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-switch` from 1.2.5 to 1.2.6
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-tabs` from 1.1.12 to 1.1.13
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-toast` from 1.2.14 to 1.2.15
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-tooltip` from 1.2.7 to 1.2.8
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `tw-animate-css` from 1.3.6 to 1.3.7
- [Release notes](https://github.com/Wombosvideo/tw-animate-css/releases)
- [Commits](https://github.com/Wombosvideo/tw-animate-css/compare/v1.3.6...v1.3.7)

---
updated-dependencies:
- dependency-name: "@radix-ui/react-checkbox"
  dependency-version: 1.3.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-collapsible"
  dependency-version: 1.1.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-dialog"
  dependency-version: 1.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-dropdown-menu"
  dependency-version: 2.1.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-popover"
  dependency-version: 1.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-radio-group"
  dependency-version: 1.3.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-scroll-area"
  dependency-version: 1.2.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-select"
  dependency-version: 2.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-switch"
  dependency-version: 1.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-tabs"
  dependency-version: 1.1.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-toast"
  dependency-version: 1.2.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-tooltip"
  dependency-version: 1.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: tw-animate-css
  dependency-version: 1.3.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 02:22:55 +00:00
dependabot[bot]
f09557d73c Bump the dev-patch-updates group with 2 updates
Bumps the dev-patch-updates group with 2 updates: [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss).


Updates `@tailwindcss/postcss` from 4.1.11 to 4.1.12
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.12/packages/@tailwindcss-postcss)

Updates `tailwindcss` from 4.1.11 to 4.1.12
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.12/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 02:18:49 +00:00
Owen
33a2ac402c Fix " 2025-08-17 18:36:23 -07:00
Owen
632333c49f Fix build args again 2025-08-17 18:31:08 -07:00
Owen
c8bea4d7de Finish adding arg 2025-08-17 18:20:53 -07:00
Owen
c1d75d32c2 Remove old docker files 2025-08-17 18:19:33 -07:00
Owen
b805daec51 Move to build arg 2025-08-17 18:18:26 -07:00
Owen
af2088df4e Control which types of sites work and tell user 2025-08-17 18:01:36 -07:00
Owen
3b8d1f40a7 Include get hostname, filter sites fix gerbil conf 2025-08-17 11:23:43 -07:00
Owen
8355d3664e Retry the token request 2025-08-16 17:53:33 -07:00
Owen
83a696f743 Make traefik config wor 2025-08-16 17:29:27 -07:00
Owen
7ca507b1ce Fixing traefik problems 2025-08-16 17:16:19 -07:00
Owen
609435328e Smoothing over initial connection issues 2025-08-16 16:42:34 -07:00
Owen
d771317e3f Fix traefik config 2025-08-16 14:57:19 -07:00
Owen
d548563e65 Export the right thing 2025-08-16 14:54:16 -07:00
Owen
f07cd8aee3 Fix traefik config merge 2025-08-16 12:07:15 -07:00
miloschwartz
48963f24df add oss check 2025-08-16 12:06:42 -07:00
Owen
7bf98c0c40 Merge branch 'dev' into hybrid 2025-08-16 12:04:16 -07:00
Owen
e73383cc79 Add auth to gerbil calls 2025-08-15 16:53:30 -07:00
miloschwartz
79ce93d578 Merge branch 'site-targets-auto-login' into dev 2025-08-15 16:42:09 -07:00
miloschwartz
200a7fcd40 fix sidebar spacing 2025-08-15 16:00:58 -07:00
Owen
e043d0e654 Use new function 2025-08-15 15:59:38 -07:00
Owen
21ce678e5b Move exit node function 2025-08-15 15:52:09 -07:00
Owen
5c94887949 Use new exit node functions 2025-08-15 15:45:45 -07:00
Owen
69a9bcb3da Add exit node helper functions 2025-08-15 15:34:31 -07:00
Owen
2fea091e1f Move newt version 2025-08-15 12:24:54 -07:00
Owen Schwartz
24314a103f Merge pull request #1284 from Pallavikumarimdb/Fix/missing-hostmeta-export-PG
add missing hostmeta export for PG schema
2025-08-15 10:55:22 -07:00
Pallavi
b56db41d0b add missing hostmeta export for PG schema 2025-08-15 21:23:07 +05:30
Owen
825bff5d60 Badger & traefik working now? 2025-08-14 21:48:14 -07:00
Owen
f9184cf489 Handle badger config correctly 2025-08-14 20:30:07 -07:00
miloschwartz
5c04b1e14a add site targets, client resources, and auto login 2025-08-14 18:24:21 -07:00
Owen
2c96eb7851 Adding and removing peers working; better axios errors 2025-08-14 17:57:50 -07:00
miloschwartz
67ba225003 add statistics 2025-08-14 17:06:07 -07:00
Owen
04ecf41c5a Move exit node comms to new file 2025-08-14 15:39:05 -07:00
Owen
6600de7320 Traefik config & gerbil config working? 2025-08-14 14:47:07 -07:00
Owen
f7b82f0a7a Work on pulling in remote traefik 2025-08-14 12:35:33 -07:00
Owen
65bdb232f4 Use right logging 2025-08-14 12:01:07 -07:00
Owen
200e3af384 Websocket connects 2025-08-14 11:58:08 -07:00
Owen
aabfa91f80 Fix ping new integer 2025-08-14 11:11:01 -07:00
Jack Rosenberg
e5468a7391 fix: change default integration_api to 3004 2025-08-14 19:53:25 +02:00
Owen
d5a11edd0c Remove orgId 2025-08-14 10:38:22 -07:00
Owen
fcc86b07ba Break out hole punch 2025-08-13 22:05:26 -07:00
miloschwartz
74d2527af5 make email lower case in pangctl reset password closes #1210 2025-08-13 22:00:20 -07:00
Owen
50cf284273 Break out bandwidth 2025-08-13 21:45:44 -07:00
Owen
aaddde0a9b Add export 2025-08-13 21:41:33 -07:00
Owen
ac87345b7a Seperate get relays 2025-08-13 21:35:06 -07:00
Owen
23079d9ac0 Fix exit node ping message 2025-08-13 20:48:54 -07:00
Owen
b573d63648 Add cols to exit node 2025-08-13 20:41:29 -07:00
Owen
34d705a54e Rename olm offline 2025-08-13 20:31:48 -07:00
Owen
eeb1d4954d Use an epoch number for the clients online to fix query 2025-08-13 20:27:57 -07:00
Owen
b638adedff Seperate get gerbil config 2025-08-13 20:27:48 -07:00
Owen
285e24cdc7 Use an epoch number for the clients online to fix query 2025-08-13 20:26:50 -07:00
dependabot[bot]
396e643b06 Bump express-rate-limit from 7.5.1 to 8.0.1
Bumps [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) from 7.5.1 to 8.0.1.
- [Release notes](https://github.com/express-rate-limit/express-rate-limit/releases)
- [Commits](https://github.com/express-rate-limit/express-rate-limit/compare/v7.5.1...v8.0.1)

---
updated-dependencies:
- dependency-name: express-rate-limit
  dependency-version: 8.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-14 02:08:28 +00:00
Owen
dc50190dc3 Handle token 2025-08-13 17:30:59 -07:00
Owen
2c8bf4f18c Handle oss tls 2025-08-13 16:23:24 -07:00
Owen
1f6379a7e6 Break out traefik config 2025-08-13 16:15:23 -07:00
Owen
ddd8eb1da0 Change sni proxy url 2025-08-13 16:02:03 -07:00
Owen
4c463de45f Version does not need to be notNull 2025-08-13 14:47:03 -07:00
Owen
1f4a7a7f6f Add olm version 2025-08-13 12:35:09 -07:00
Owen
e7df29104e Fix backwards compat path 2025-08-13 12:28:45 -07:00
Owen
9987b35b60 Update package lock again 2025-08-13 12:26:38 -07:00
Owen
16e876ab68 Clean up checkbox 2025-08-13 12:13:47 -07:00
Owen
50fc2fc74e Add newt install command 2025-08-13 11:30:21 -07:00
Owen
c244dc9c0c Add accept clients to install 2025-08-13 11:15:14 -07:00
Owen
0f50981573 Update lock 2025-08-13 11:15:06 -07:00
Owen
0c1cb20936 Merge branch 'main' into dev 2025-08-13 10:58:04 -07:00
Owen Schwartz
192617a884 Merge pull request #1268 from fosrl/crowdin_dev
New Crowdin updates
2025-08-13 10:18:21 -07:00
Owen Schwartz
297991ef5f New translations en-us.json (Chinese Simplified) 2025-08-12 22:16:21 -07:00
Owen Schwartz
75f97c4a31 New translations en-us.json (Turkish) 2025-08-12 22:16:20 -07:00
Owen Schwartz
40f520086c New translations en-us.json (Russian) 2025-08-12 22:16:18 -07:00
Owen Schwartz
c8dda4f90d New translations en-us.json (Portuguese) 2025-08-12 22:16:17 -07:00
Owen Schwartz
5f09f97032 New translations en-us.json (Polish) 2025-08-12 22:16:15 -07:00
Owen Schwartz
168056d595 New translations en-us.json (Dutch) 2025-08-12 22:16:14 -07:00
Owen Schwartz
c70eaa0096 New translations en-us.json (Korean) 2025-08-12 22:16:13 -07:00
Owen Schwartz
5f36b13408 New translations en-us.json (Italian) 2025-08-12 22:16:11 -07:00
Owen Schwartz
9dc73efa3a New translations en-us.json (German) 2025-08-12 22:16:10 -07:00
Owen Schwartz
e9c2868998 New translations en-us.json (Czech) 2025-08-12 22:16:09 -07:00
Owen Schwartz
0a13b04c55 New translations en-us.json (Bulgarian) 2025-08-12 22:16:07 -07:00
Owen Schwartz
cf12d3ee56 New translations en-us.json (Spanish) 2025-08-12 22:16:06 -07:00
Owen Schwartz
cea7190453 New translations en-us.json (French) 2025-08-12 22:16:04 -07:00
Owen Schwartz
c6d78680fb New translations en-us.json (Norwegian Bokmal) 2025-08-12 22:16:03 -07:00
Owen Schwartz
0bf302e013 Merge pull request #1129 from adrianeastles/feature/form-signup-improvements
Form Signup Improvements - Password Requirements & Pre-Filled Email on signup form Invite
2025-08-12 21:52:44 -07:00
Owen
1351fb6689 Merge branch 'feature/form-signup-improvements' of github.com:adrianeastles/pangolin into adrianeastles-feature/form-signup-improvements 2025-08-12 21:40:55 -07:00
Owen
af638d666c Dont look for port if not root; causes permission 2025-08-12 21:34:24 -07:00
Owen Schwartz
e4fe601d9d Merge pull request #1208 from adrianeastles/feature/setup-token-security
Add setup token security for initial server setup
2025-08-12 21:31:58 -07:00
Owen
4f3cd71e1e Merge branch 'feature/setup-token-security' of github.com:adrianeastles/pangolin into adrianeastles-feature/setup-token-security 2025-08-12 21:12:55 -07:00
Owen Schwartz
9c0295db9f Merge pull request #1246 from Lokowitz/update-express
Update express to version 5
2025-08-12 20:38:02 -07:00
Owen Schwartz
3fc2d1df80 Merge pull request #1252 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-ce9f23b7ef
Bump the prod-minor-updates group with 2 updates
2025-08-12 20:37:13 -07:00
Owen Schwartz
4a6747dcc7 Merge pull request #1266 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-eb33d068de
Bump the dev-patch-updates group across 1 directory with 6 updates
2025-08-12 20:36:51 -07:00
Owen Schwartz
54b3c92953 Merge pull request #1262 from jackrosenberg/patch-1
fix: fixed api error message in createSite.ts
2025-08-12 20:36:26 -07:00
dependabot[bot]
a4d460e850 Bump the dev-patch-updates group across 1 directory with 6 updates
Bumps the dev-patch-updates group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.2.0` | `24.2.1` |
| [@types/pg](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pg) | `8.15.4` | `8.15.5` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.1.9` | `19.1.10` |
| [esbuild](https://github.com/evanw/esbuild) | `0.25.6` | `0.25.9` |
| [tsx](https://github.com/privatenumber/tsx) | `4.20.3` | `4.20.4` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.39.0` | `8.39.1` |



Updates `@types/node` from 24.2.0 to 24.2.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@types/pg` from 8.15.4 to 8.15.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/pg)

Updates `@types/react` from 19.1.9 to 19.1.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `esbuild` from 0.25.6 to 0.25.9
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.6...v0.25.9)

Updates `tsx` from 4.20.3 to 4.20.4
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.20.3...v4.20.4)

Updates `typescript-eslint` from 8.39.0 to 8.39.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.39.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.2.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/pg"
  dependency-version: 8.15.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/react"
  dependency-version: 19.1.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.25.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tsx
  dependency-version: 4.20.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: typescript-eslint
  dependency-version: 8.39.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 02:39:05 +00:00
Owen
3d8869066a Adjust pulling in config 2025-08-12 16:47:59 -07:00
Owen
880a123149 Import tcm 2025-08-12 16:31:53 -07:00
Owen
39e35bc1d6 Add traefik config management 2025-08-12 16:27:41 -07:00
Owen
f219f1e36b Move remote proxy 2025-08-12 16:27:34 -07:00
Owen
25ed3d65f8 Make the proxy more general 2025-08-12 15:58:20 -07:00
Owen
30dbabd73d Add internal proxy for gerbil endpoints 2025-08-12 15:27:03 -07:00
Owen
ea2e5bf486 Merge branch 'dev' into hybrid 2025-08-12 15:02:43 -07:00
Owen
ae52fcc757 Merge branch 'dev' into clients-multi-pop 2025-08-12 15:01:00 -07:00
Owen
b6c2f123e8 Add basic ws client 2025-08-12 14:30:23 -07:00
Owen
15f900317a Basic client 2025-08-12 13:53:57 -07:00
Owen
22545cac8b Basic verify session breakout 2025-08-12 13:40:59 -07:00
jack rosenberg
03c8d82471 fix: fixed api error message in createSite.ts 2025-08-12 17:34:40 +02:00
dependabot[bot]
14d7a138a5 Bump the prod-minor-updates group with 2 updates
Bumps the prod-minor-updates group with 2 updates: [eslint](https://github.com/eslint/eslint) and [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react).


Updates `eslint` from 9.32.0 to 9.33.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.32.0...v9.33.0)

Updates `lucide-react` from 0.536.0 to 0.539.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.539.0/packages/lucide-react)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.33.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.539.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 02:26:46 +00:00
Marvin
a829eb949b modified: package-lock.json
modified:   package.json
	modified:   server/nextServer.ts
2025-08-10 19:02:50 +00:00
Owen Schwartz
fd605d9c81 Merge pull request #1244 from fosrl/crowdin_dev
New Crowdin updates
2025-08-10 10:17:31 -07:00
Owen
55b4a9eddb Merge branch 'main' into dev 2025-08-10 10:16:47 -07:00
Owen Schwartz
9ccf77b99c Merge pull request #1113 from fosrl/copilot/fix-1112
Fix ESLint issues: prefer-const warnings and missing semicolons
2025-08-10 10:15:58 -07:00
Owen
ea27075bab Lint fix 2025-08-10 10:14:45 -07:00
Owen
c3723d0fce Add semi 2025-08-10 10:14:04 -07:00
Owen
0edb3cd316 Merge branch 'main' of github.com:fosrl/pangolin into copilot/fix-1112 2025-08-10 10:11:19 -07:00
Owen
e9e6b0bc4f Merge branch 'main' into copilot/fix-1112 2025-08-10 10:10:10 -07:00
Owen
4701da201d Fix a few consts to lets 2025-08-10 10:09:52 -07:00
Owen
d6d2e052dd Fix missing bracket 2025-08-10 10:04:41 -07:00
Owen Schwartz
d3d1dcfe1d New translations en-us.json (Norwegian Bokmal) 2025-08-09 12:24:58 -07:00
Owen Schwartz
918ebf5e65 Merge pull request #1228 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-7f7b11108e
Bump the prod-patch-updates group across 1 directory with 7 updates
2025-08-09 10:13:26 -07:00
Owen Schwartz
67184b88a8 Merge pull request #1134 from Lokowitz/update-node-version
update node to LTS 22
2025-08-09 10:12:57 -07:00
dependabot[bot]
fb0f4c3939 Bump the prod-patch-updates group across 1 directory with 7 updates
Bumps the prod-patch-updates group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@react-email/tailwind](https://github.com/resend/react-email/tree/HEAD/packages/tailwind) | `1.2.1` | `1.2.2` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.44.2` | `0.44.4` |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.1.0` | `19.1.1` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.1.8` | `19.1.9` |
| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.1.0` | `19.1.1` |
| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.1.6` | `19.1.7` |
| [tw-animate-css](https://github.com/Wombosvideo/tw-animate-css) | `1.3.5` | `1.3.6` |



Updates `@react-email/tailwind` from 1.2.1 to 1.2.2
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/@react-email/tailwind@1.2.2/packages/tailwind/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/tailwind@1.2.2/packages/tailwind)

Updates `drizzle-orm` from 0.44.2 to 0.44.4
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.44.2...0.44.4)

Updates `react` from 19.1.0 to 19.1.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.1.1/packages/react)

Updates `@types/react` from 19.1.8 to 19.1.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `react-dom` from 19.1.0 to 19.1.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.1.1/packages/react-dom)

Updates `@types/react-dom` from 19.1.6 to 19.1.7
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `tw-animate-css` from 1.3.5 to 1.3.6
- [Release notes](https://github.com/Wombosvideo/tw-animate-css/releases)
- [Commits](https://github.com/Wombosvideo/tw-animate-css/compare/v1.3.5...v1.3.6)

---
updated-dependencies:
- dependency-name: "@react-email/tailwind"
  dependency-version: 1.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: drizzle-orm
  dependency-version: 0.44.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: react
  dependency-version: 19.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@types/react"
  dependency-version: 19.1.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: react-dom
  dependency-version: 19.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: tw-animate-css
  dependency-version: 1.3.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-09 17:09:19 +00:00
Owen Schwartz
aae5343543 Merge pull request #1192 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-157f1fe21d
Bump the dev-minor-updates group across 1 directory with 5 updates
2025-08-09 10:06:16 -07:00
Owen Schwartz
51e9762ca8 Merge pull request #1229 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-12f913bac4
Bump the prod-minor-updates group across 1 directory with 9 updates
2025-08-09 10:05:47 -07:00
Owen Schwartz
330dafc652 Merge pull request #1242 from EliasTors/translation-nb-NO
Translation nb no
2025-08-09 10:02:47 -07:00
Owen Schwartz
7ddf9fa54e Merge pull request #1234 from fosrl/crowdin_dev
New Crowdin updates
2025-08-09 10:02:21 -07:00
Owen Schwartz
f2ca09eedd Merge pull request #1237 from adrianeastles/feature/passkey-pangctl-support
Pangctl command to reset a user’s passkeys (WebAuthn credentials)
2025-08-09 10:01:40 -07:00
Elias Torstensen
f0e2c8416d Merge branch 'dev' into translation-nb-NO 2025-08-08 21:41:43 +02:00
EliasT05
338b7a8c13 Added nb-NO to list of locals 2025-08-08 21:33:11 +02:00
EliasT05
b4284f82f3 Added nb-NO translation 2025-08-08 21:23:09 +02:00
Owen Schwartz
0ce430cab5 New translations en-us.json (Bulgarian) 2025-08-07 15:04:32 -07:00
Owen Schwartz
95c0f6c093 New translations en-us.json (Russian) 2025-08-07 15:04:30 -07:00
Owen Schwartz
387dbc360e New translations en-us.json (Chinese Simplified) 2025-08-07 15:04:29 -07:00
Owen Schwartz
a88be89c2f New translations en-us.json (Turkish) 2025-08-07 15:04:24 -07:00
Owen Schwartz
8bc353442f New translations en-us.json (Portuguese) 2025-08-07 15:04:22 -07:00
Owen Schwartz
b3502bd627 New translations en-us.json (Polish) 2025-08-07 15:04:21 -07:00
Owen Schwartz
56da7c242d New translations en-us.json (Dutch) 2025-08-07 15:04:20 -07:00
Owen Schwartz
fa8f49e87d New translations en-us.json (Korean) 2025-08-07 15:04:18 -07:00
Owen Schwartz
6e08a70afc New translations en-us.json (Italian) 2025-08-07 15:04:17 -07:00
Owen Schwartz
bd4be2b05c New translations en-us.json (German) 2025-08-07 15:04:16 -07:00
Owen Schwartz
6b6ff0a95e New translations en-us.json (Czech) 2025-08-07 15:04:15 -07:00
Owen Schwartz
4755cae5cb New translations en-us.json (Spanish) 2025-08-07 15:04:14 -07:00
Owen Schwartz
b2384ccc06 New translations en-us.json (French) 2025-08-07 15:04:12 -07:00
Owen
e6589308dd Update readme 2025-08-07 14:53:46 -07:00
dependabot[bot]
879b25be9f Bump the prod-minor-updates group across 1 directory with 9 updates
Bumps the prod-minor-updates group with 9 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components) | `0.3.1` | `0.5.0` |
| [@react-email/render](https://github.com/resend/react-email/tree/HEAD/packages/render) | `1.1.3` | `1.2.0` |
| [axios](https://github.com/axios/axios) | `1.10.0` | `1.11.0` |
| [eslint](https://github.com/eslint/eslint) | `9.31.0` | `9.32.0` |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.3.5` | `15.4.6` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.525.0` | `0.536.0` |
| [next](https://github.com/vercel/next.js) | `15.3.5` | `15.4.6` |
| [npm](https://github.com/npm/cli) | `11.4.2` | `11.5.2` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.60.0` | `7.62.0` |



Updates `@react-email/components` from 0.3.1 to 0.5.0
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/@react-email/components@0.5.0/packages/components/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@0.5.0/packages/components)

Updates `@react-email/render` from 1.1.3 to 1.2.0
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/@react-email/render@1.2.0/packages/render/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/render@1.2.0/packages/render)

Updates `axios` from 1.10.0 to 1.11.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.10.0...v1.11.0)

Updates `eslint` from 9.31.0 to 9.32.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.31.0...v9.32.0)

Updates `eslint-config-next` from 15.3.5 to 15.4.6
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v15.4.6/packages/eslint-config-next)

Updates `lucide-react` from 0.525.0 to 0.536.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.536.0/packages/lucide-react)

Updates `next` from 15.3.5 to 15.4.6
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.3.5...v15.4.6)

Updates `npm` from 11.4.2 to 11.5.2
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v11.4.2...v11.5.2)

Updates `react-hook-form` from 7.60.0 to 7.62.0
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.60.0...v7.62.0)

---
updated-dependencies:
- dependency-name: "@react-email/components"
  dependency-version: 0.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@react-email/render"
  dependency-version: 1.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: axios
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint
  dependency-version: 9.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint-config-next
  dependency-version: 15.4.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.536.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: next
  dependency-version: 15.4.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: npm
  dependency-version: 11.5.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.62.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 01:42:42 +00:00
dependabot[bot]
d3ad941b30 Bump the dev-minor-updates group across 1 directory with 5 updates
Bumps the dev-minor-updates group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx) | `1.47.6` | `1.48.4` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.0.14` | `24.1.0` |
| [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email) | `4.1.0` | `4.2.6` |
| [typescript](https://github.com/microsoft/TypeScript) | `5.8.3` | `5.9.2` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.37.0` | `8.38.0` |



Updates `@dotenvx/dotenvx` from 1.47.6 to 1.48.4
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.47.6...v1.48.4)

Updates `@types/node` from 24.0.14 to 24.1.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `react-email` from 4.1.0 to 4.2.6
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/react-email@4.2.6/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@4.2.6/packages/react-email)

Updates `typescript` from 5.8.3 to 5.9.2
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2)

Updates `typescript-eslint` from 8.37.0 to 8.38.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.38.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.48.4
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: "@types/node"
  dependency-version: 24.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: react-email
  dependency-version: 4.2.6
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: typescript
  dependency-version: 5.9.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: typescript-eslint
  dependency-version: 8.38.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 01:40:47 +00:00
Owen Schwartz
f077fbc3f5 Merge pull request #1219 from aclfe/port-check80443
Added checks for port 80 and 443
2025-08-06 10:33:24 -07:00
Owen
4679ce968b Merge branch 'Xentrice-IPv6_optional' into dev 2025-08-06 10:22:19 -07:00
Owen
101e462649 Merge branch 'main' into dev 2025-08-06 10:21:54 -07:00
Owen
5d93ab9b9e Merge branch 'IPv6_optional' of github.com:Xentrice/pangolin into Xentrice-IPv6_optional 2025-08-06 10:19:51 -07:00
Owen
d557832509 Send this right IP this time 2025-08-05 11:37:45 -07:00
Owen
fe5c91db29 Change how you send the desitnations 2025-08-05 11:25:54 -07:00
Adrian Astles
b2947193ec Integrate setup token into installer, this will now parse the container logs to extract setup token automatically. Displays token with clear instructions and URL for initial admin setup. 2025-08-05 17:35:22 +08:00
Owen
f6440753b6 Only update proxy mapping if there is an existing 2025-08-04 21:34:07 -07:00
Owen
17cf903804 publicKey optional 2025-08-04 21:29:40 -07:00
Owen
dcf530d237 Add backward compatability 2025-08-04 20:36:25 -07:00
Owen
6b1808dab1 Handle multiple hp messages 2025-08-04 20:34:27 -07:00
Owen
5889efd74a Send all hp data now 2025-08-04 20:22:13 -07:00
Owen
1a9de1e5c5 Move endpoint to per site 2025-08-04 20:17:35 -07:00
Owen
d1404a2b07 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-08-04 20:02:08 -07:00
Sebastian Felber
664dbf3f4c make IPv6 optional during install 2025-08-04 15:45:33 +00:00
Owen Schwartz
f32a8e26b6 Merge pull request #1209 from fosrl/crowdin_dev
New Crowdin updates
2025-08-03 11:42:10 -07:00
Owen Schwartz
b1a92fd4e0 New translations en-us.json (Bulgarian) 2025-08-03 11:40:48 -07:00
Owen Schwartz
1ea9fd2d49 New translations en-us.json (Russian) 2025-08-03 11:40:47 -07:00
Owen Schwartz
f31e4e3176 New translations en-us.json (Chinese Simplified) 2025-08-03 11:40:46 -07:00
Owen Schwartz
e3287a7e9f New translations en-us.json (Turkish) 2025-08-03 11:40:45 -07:00
Owen Schwartz
ec21153d4b New translations en-us.json (Portuguese) 2025-08-03 11:40:44 -07:00
Owen Schwartz
917e7a8c1d New translations en-us.json (Polish) 2025-08-03 11:40:43 -07:00
Owen Schwartz
8e0a8dc272 New translations en-us.json (Dutch) 2025-08-03 11:40:41 -07:00
Owen Schwartz
91bac29ea3 New translations en-us.json (Korean) 2025-08-03 11:40:40 -07:00
Owen Schwartz
3e333769bb New translations en-us.json (Italian) 2025-08-03 11:40:39 -07:00
Owen Schwartz
b4bde6660a New translations en-us.json (German) 2025-08-03 11:40:38 -07:00
Owen Schwartz
917f752081 New translations en-us.json (Czech) 2025-08-03 11:40:37 -07:00
Owen Schwartz
915d561286 New translations en-us.json (Spanish) 2025-08-03 11:40:36 -07:00
Owen Schwartz
01ef809fd3 New translations en-us.json (French) 2025-08-03 11:40:35 -07:00
Owen Schwartz
19902092ce Merge pull request #1177 from Error-Gap/portbinding-fixes
Portbinding fixes
2025-08-03 11:37:30 -07:00
Owen Schwartz
39603b6e53 Merge pull request #1205 from Pallavikumarimdb/feature-default-language
System wide default language detection via browser language header
2025-08-03 11:35:41 -07:00
Adrian Astles
9c85a09d3e revert: package-lock.json to original state 2025-08-03 21:20:25 +08:00
Adrian Astles
69baa6785f feat: Add setup token security for initial server setup
- Add setupTokens database table with proper schema
- Implement setup token generation on first server startup
- Add token validation endpoint and modify admin creation
- Update initial setup page to require setup token
- Add migration scripts for both SQLite and PostgreSQL
- Add internationalization support for setup token fields
- Implement proper error handling and logging
- Add CLI command for resetting user security keys

This prevents unauthorized access during initial server setup by requiring
a token that is generated and displayed in the server console.
2025-08-03 21:17:18 +08:00
Adrian Astles
bb84d01e14 Reset a user's security keys (passkeys) by deleting all their webauthn credentials.
pangctl reset-user-security-keys --email user@example.com

This command will:
1. Find the user by email address
2. Check if they have any registered security keys
3. Delete all their security keys from the database
4. Provide feedback on the operation
2025-08-03 20:47:27 +08:00
Pallavi
616dae2d8b code format 2025-08-03 12:26:21 +05:30
Pallavi
3fbfe50e09 Default language detection via browser language header 2025-08-03 12:21:41 +05:30
Kairav Mittal
c0c8edb9d1 Added checks for port 80 and 443
In my issue #1203, I noticed there was a problem when ports 80 and 443 were already in use. This caused the docker containers to be created but not running
2025-08-03 11:30:33 +05:30
miloschwartz
84268e484d update docs links 2025-08-01 22:34:02 -07:00
Owen Schwartz
c473c2fa81 Merge pull request #1200 from Lokowitz/update-versions
Update versions
2025-08-01 21:24:39 -07:00
miloschwartz
7402590f49 remove api-key-org association for root keys 2025-08-01 15:56:03 -07:00
Marvin
529d1c9f66 modified: .github/workflows/cicd.yml 2025-08-01 18:37:08 +00:00
Marvin
e85b772ca5 update versions 2025-08-01 18:33:25 +00:00
Owen
f75169fc26 Add missing langs 2025-08-01 11:08:30 -07:00
Owen Schwartz
07b86521a5 Merge pull request #1196 from confusedalex/fix-nix
fix: adapt nix run command
2025-08-01 09:34:02 -07:00
confusedalex
961008bbe1 fix: adapt nix run command 2025-08-01 11:31:29 +02:00
Owen
6d359b6bb9 Add createdAt to org insert 2025-07-31 17:53:11 -07:00
Owen
ea6f803e78 Add createdAt to org 2025-07-31 17:51:30 -07:00
Owen
0151f8a6a9 Fix bad sourcePort 2025-07-31 15:57:30 -07:00
Owen
39c5101957 Merge branch 'main' into dev 2025-07-31 15:55:54 -07:00
Owen
9b1cd5f79c Ignore the config dir 2025-07-31 15:01:29 -07:00
Owen
36d0b83ed3 Fix errors again 2025-07-31 15:00:17 -07:00
Owen
f0138fad4f Improve gerbil logging 2025-07-31 14:25:22 -07:00
Owen
69802e78f8 Org is not optional 2025-07-31 11:06:07 -07:00
Owen
92e69f561f Org is not optional 2025-07-31 11:05:24 -07:00
miloschwartz
b351520e92 add clients enabled middleware 2025-07-30 23:18:51 -07:00
T Aviss
481714f095 Fix for issues with binding ports other than 80/443
server/routers/badger/verifySession.ts : verifyResourceSession() updated code behind "cleanHost" var to a regex which strips the trailing :port for any port (rather than a string match for 80/443)
src/app/auth/resource/[resourceId]/page.tsx : ResourceAuthPage() added a secondary match for serverResourceHost and redirectHost that accounts for ports
server/routers/badger/exchangeSession.ts : Updated exchangeSession() to use the same "cleanHost" type var (with port-stripping) as in verifyResourceSession(), replaced references to "host" with "cleanHost"
2025-07-30 22:16:46 -07:00
miloschwartz
d38656e026 add clients to int api 2025-07-30 21:31:16 -07:00
Owen
69b28b9b02 Merge branch 'dev' 2025-07-30 15:19:27 -07:00
Owen Schwartz
35a68703c2 Merge pull request #1173 from fosrl/crowdin_dev
New Crowdin updates
2025-07-30 15:19:04 -07:00
Owen Schwartz
c49fe04750 New translations en-us.json (Russian) 2025-07-30 15:18:36 -07:00
Owen Schwartz
31feabbec7 New translations en-us.json (Chinese Simplified) 2025-07-30 15:18:35 -07:00
Owen Schwartz
bc3cb2c3c9 New translations en-us.json (Turkish) 2025-07-30 15:18:34 -07:00
Owen Schwartz
5ec4481c92 New translations en-us.json (Portuguese) 2025-07-30 15:18:32 -07:00
Owen Schwartz
be5cb48dfe New translations en-us.json (Polish) 2025-07-30 15:18:31 -07:00
Owen Schwartz
48ff1ece16 New translations en-us.json (Dutch) 2025-07-30 15:18:30 -07:00
Owen Schwartz
ed20ed592f New translations en-us.json (Italian) 2025-07-30 15:18:28 -07:00
Owen Schwartz
4fb3435c29 New translations en-us.json (German) 2025-07-30 15:18:27 -07:00
Owen Schwartz
37eb14a01a New translations en-us.json (Spanish) 2025-07-30 15:18:25 -07:00
Owen Schwartz
d403bc86e3 New translations en-us.json (French) 2025-07-30 15:18:24 -07:00
Owen Schwartz
0e2f0f2a4d Merge pull request #1150 from fosrl/crowdin_dev
New Crowdin updates
2025-07-30 15:11:48 -07:00
Owen Schwartz
1a4d34a802 Merge pull request #1172 from fosrl/dev
1.8.0
2025-07-30 15:07:47 -07:00
Owen
bb15af9954 Add ports warn at start 2025-07-30 10:23:52 -07:00
Owen
8a250d1011 rm YC 2025-07-30 10:23:44 -07:00
Owen
2f9994f600 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-07-30 10:09:34 -07:00
Owen
1cca06a274 Add note about wintun 2025-07-29 23:09:49 -07:00
miloschwartz
8fdb3ea631 hide favicon 2025-07-29 10:46:08 -07:00
Owen
35823d5751 Fix adding sites to client 2025-07-28 22:40:27 -07:00
Owen
66f90a542a Rename to pg 2025-07-28 18:34:23 -07:00
Owen
49981c4bee Add 21820 to docker 2025-07-28 18:34:01 -07:00
Owen
d732c1a845 Clean up migrations 2025-07-28 17:32:15 -07:00
Owen
4d7e25f97b Complete migrations 2025-07-28 17:22:53 -07:00
Owen
80656f48e0 Sqlite migration done 2025-07-28 17:18:51 -07:00
Owen
ebde149980 Merge branch 'main' into dev 2025-07-28 17:15:05 -07:00
miloschwartz
adc0a81592 delete org domains and resources on org delete 2025-07-28 15:34:56 -07:00
Owen Schwartz
b596f00ce5 New translations en-us.json (Chinese Simplified) 2025-07-28 14:16:24 -07:00
Owen Schwartz
448442f92b New translations en-us.json (Turkish) 2025-07-28 14:16:23 -07:00
Owen Schwartz
8518201562 New translations en-us.json (Portuguese) 2025-07-28 14:16:21 -07:00
Owen Schwartz
17586c4559 New translations en-us.json (Polish) 2025-07-28 14:16:19 -07:00
Owen Schwartz
f8622da7d4 New translations en-us.json (Dutch) 2025-07-28 14:16:18 -07:00
Owen Schwartz
b1a27e9060 New translations en-us.json (Korean) 2025-07-28 14:16:17 -07:00
Owen Schwartz
3c6423d444 New translations en-us.json (Italian) 2025-07-28 14:16:15 -07:00
Owen Schwartz
91b03160ea New translations en-us.json (German) 2025-07-28 14:16:14 -07:00
Owen Schwartz
0c1e20ba48 New translations en-us.json (Czech) 2025-07-28 14:16:13 -07:00
Owen Schwartz
1dcac85c0d New translations en-us.json (Spanish) 2025-07-28 14:16:12 -07:00
Owen Schwartz
3fc72dbec2 New translations en-us.json (French) 2025-07-28 14:16:11 -07:00
miloschwartz
494329f568 delete resources on delete org 2025-07-28 12:55:20 -07:00
Owen
a1e8211ba7 Dont send enableProxy 2025-07-28 12:53:13 -07:00
miloschwartz
80aa7502af fix resource domain not required 2025-07-28 12:52:44 -07:00
miloschwartz
67bae76048 minor visual tweaks to member landing 2025-07-28 12:21:15 -07:00
Milo Schwartz
bda2aa46b6 Merge pull request #1124 from adrianeastles/feature/member-resouce-landing-page
New Member Resource Landing Page
2025-07-28 14:33:09 -04:00
copilot-swe-agent[bot]
27ac204bb6 Fix variables incorrectly changed from let to const - revert to let where variables are reassigned
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-07-28 17:43:40 +00:00
copilot-swe-agent[bot]
a2526ea244 Revert mappings variable from const to let in getAllRelays.ts
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-07-28 17:30:21 +00:00
Owen Schwartz
6d9ba8dd2f Merge pull request #1104 from jackrosenberg/nixos_newt
add nixos option for newt in site creation
2025-07-28 10:19:23 -07:00
Owen
2ca8febff7 We dont need this config 2025-07-27 14:12:01 -07:00
Owen
e105a523e4 Add log and fix default 2025-07-27 14:11:36 -07:00
Owen
28f8b05dbc Basic clients working 2025-07-27 10:21:27 -07:00
Owen Schwartz
d95286db0e Merge pull request #1139 from SigmaSquadron/push-xlmpuutwtnuy
add shebangs to migration and server scripts
2025-07-27 10:11:17 -07:00
Owen Schwartz
8e45c34e8e Merge pull request #1138 from SigmaSquadron/push-uolqlutswopp
add an environment variable for the smtp_pass config option
2025-07-27 10:09:25 -07:00
Fernando Rodrigues
9e87c42d0c add shebangs to migration and server scripts
In NixOS, we wrap these files in a bash script to allow users to just run them as normal executables, instead of calling them as arguments to Node.JS. In our build scripts, we just add the shebang after the files have been compiled, but adding it upstream will allow all Pangolin users to just run ./server.mjs to start their Pangolin instances.

Signed-off-by: Fernando Rodrigues <alpha@sigmasquadron.net>
2025-07-27 13:10:18 +10:00
Fernando Rodrigues
0b52cd002e add an environment variable for the smtp_pass config option
The password for secure authentication may be sensitive, so it is best
to not leave it lying around in a config file. This commit introduces
the EMAIL_SMTP_PASS environment variable, which can be set to configure
the SMTP password without writing it to the configuration file.

Signed-off-by: Fernando Rodrigues <alpha@sigmasquadron.net>
2025-07-27 13:03:29 +10:00
Marvin
39c43c0c09 modified: .github/workflows/cicd.yml
modified:   .github/workflows/linting.yml
	modified:   .github/workflows/test.yml
	modified:   .nvmrc
	modified:   Dockerfile.dev
	modified:   Dockerfile.pg
	modified:   Dockerfile.sqlite
	modified:   esbuild.mjs
	modified:   package-lock.json
	modified:   tsconfig.json
2025-07-26 14:17:55 +00:00
Adrian Astles
350485612e This improves the user experience by automatically filling the email field
and preventing users from changing the email they were invited with.

- Update invite link generation to include email parameter in URL
- Modify signup form to pre-fill and lock email field when provided via invite
- Update invite page and status card to preserve email through redirect chain
- Ensure existing invite URLs continue to work without breaking changes
2025-07-25 22:46:40 +08:00
Adrian Astles
df31c13912 added real-time password validation to signup form. 2025-07-25 21:59:25 +08:00
Owen
15adfcca8c Add remote subnets to ui 2025-07-24 22:01:22 -07:00
Owen
1466788f77 Clients ui done 2025-07-24 21:42:44 -07:00
Owen
760fe3aca9 Create client component done 2025-07-24 21:26:02 -07:00
Owen
5f75813e84 Handle relaying change values in gerbil 2025-07-24 20:47:39 -07:00
Owen
59cb06acf4 Support relaying on register 2025-07-24 14:48:24 -07:00
Adrian Astles
6349406523 Removed member resouce sidebar to work with new sidebar. 2025-07-24 21:30:20 +08:00
Adrian Astles
bcc2c59f08 Add member portal functionality - extracted from feature/member-landing-page 2025-07-24 21:04:55 +08:00
jack
52d46f9879 add nixos option for newt in site creation 2025-07-23 10:02:58 +02:00
Owen Schwartz
0b50a5474d Merge pull request #1041 from wayneyaoo/feature/podman-installer
Add podman support to the installer
2025-07-22 21:41:32 -07:00
copilot-swe-agent[bot]
2259879595 Fix ESLint issues: prefer-const warnings and missing semicolons
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-07-22 19:07:43 +00:00
copilot-swe-agent[bot]
4f5091ed7f Initial commit: Document plan to fix ESLint issues
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-07-22 18:56:04 +00:00
copilot-swe-agent[bot]
b5afd73024 Initial plan 2025-07-22 18:47:17 +00:00
Owen
5c929badeb Send endpoint 2025-07-22 11:21:39 -07:00
Owen Schwartz
3f2de333fb Merge pull request #1111 from Xentrice/main
add IPv6 support for docker network
2025-07-22 11:06:06 -07:00
Sebastian Felber
7c12b8ae25 add IPv6 support for docker network 2025-07-22 16:20:02 +02:00
miloschwartz
b54ccbfa2f fix log in loading button 2025-07-21 17:26:02 -07:00
miloschwartz
114ce8997f add tos and pp consent 2025-07-21 16:57:21 -07:00
Owen
f1bba3b958 Fix issues in pg schema 2025-07-21 16:32:13 -07:00
miloschwartz
053acef728 allow using password to log in if security keys are available 2025-07-21 14:28:32 -07:00
miloschwartz
9f2710185b center toast 2025-07-21 13:10:39 -07:00
Owen
d000879c01 Add config for domains 2025-07-21 12:42:50 -07:00
Owen
25ae169fee Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-07-21 11:48:32 -07:00
Wayne Yao
4443dda0f6 Fix a bug that error check prevents port configuration 2025-07-21 22:48:10 +08:00
Wayne Yao
c484e989a9 Merge branch 'fosrl:main' into feature/podman-installer 2025-07-21 21:36:10 +08:00
miloschwartz
86a4656651 fix multi level subdomain conflict bug 2025-07-19 22:54:30 -07:00
Owen
f25aefeb11 Merge branch 'main' of github.com:fosrl/pangolin 2025-07-19 10:33:49 -07:00
Owen Schwartz
228643c7d7 Merge pull request #1097 from ivenos/patch-1
Replace .io domain with .com domain in README
2025-07-19 10:32:08 -07:00
Owen Schwartz
072d6d7094 Merge pull request #1095 from Lokowitz/fix-test
fix test
2025-07-19 10:29:20 -07:00
Iven
de3ce672b8 Replace .io domain with .com domain 2025-07-19 18:31:08 +02:00
Marvin
6f5c191998 Update test.yml 2025-07-19 11:09:19 +02:00
Owen
bbaea4def0 Handle peer relay dynamically now 2025-07-18 21:42:12 -07:00
Milo Schwartz
54f9282166 Merge pull request #1091 from fosrl/dev
Dev
2025-07-18 18:53:45 -04:00
miloschwartz
a39b1db266 bump version 2025-07-18 15:50:55 -07:00
miloschwartz
2ddb4ec905 allow multi level sudomains in domain picker 2025-07-18 15:48:23 -07:00
miloschwartz
7a59e3acf7 fix external user select box 2025-07-18 14:45:16 -07:00
miloschwartz
b34c3db956 fix redirect bug for some accounts when disable create org is enabled 2025-07-18 12:59:57 -07:00
Owen
afea958aca Also limit to org 2025-07-18 11:48:14 -07:00
Owen
dca2a29865 Fix #1085 2025-07-18 11:32:07 -07:00
Owen
97b8e84143 Fix #1085 2025-07-18 11:16:10 -07:00
Owen Schwartz
23eb0da7d7 Merge pull request #1089 from tomribbens/unauthenticated_email
test if smtp user/pass config is set and if not set auth: null
2025-07-18 10:28:17 -07:00
Owen Schwartz
2edda471e7 Merge pull request #1087 from itsbhanusharma/patch-1
Small Typo causes crowdsec to fail
2025-07-18 10:26:20 -07:00
Tom Ribbens
676aa1358d test if user/pass config is set and if not set auth: null 2025-07-18 17:09:22 +02:00
Bhanu
87a36d6ae3 Small Typo causes crowdsec to fail
first rule is named iame instead of name. seems like a recent typo. I edited file manually and it seems to have allowed crowdsec to boot up.
2025-07-18 18:40:15 +05:30
Owen
b67611094e YC 2025-07-18 00:28:10 -07:00
Owen
2e986def78 const 2025-07-17 23:15:16 -07:00
miloschwartz
d16a05959d Merge branch 'main' into dev 2025-07-17 23:14:50 -07:00
Owen
7e58e0b490 Correctly handle ssl on new domains 2025-07-17 22:57:47 -07:00
Owen
9b01aecf3c Add default cert resovler 2025-07-17 22:37:33 -07:00
miloschwartz
86043fd5f8 add defaults for domain cert resolver and prefer wildcard cert 2025-07-17 22:35:07 -07:00
Milo Schwartz
372a1758e9 Update README.md 2025-07-17 19:35:27 -04:00
Owen
0a2b1d9e53 Use a records for the wildcard 2025-07-17 16:17:01 -07:00
Owen
e562946308 Fix logic 2025-07-17 16:03:34 -07:00
Owen
398e15b3c6 Format 2025-07-17 15:59:28 -07:00
miloschwartz
c225a54dbe Merge branch 'dev' 2025-07-17 15:05:02 -07:00
Owen
5148988dcc Also dont return if you are passing an exit node 2025-07-17 14:59:49 -07:00
Owen
28b57ba652 Allow null exit node id as well 2025-07-17 14:57:09 -07:00
Owen
9c7e74ef37 Remove ping logic 2025-07-17 14:43:47 -07:00
Owen
330b28ad9c Fix local sites 2025-07-17 14:35:22 -07:00
miloschwartz
da7166a7ea fix config 2025-07-17 14:34:57 -07:00
Milo Schwartz
e8793c5d8d Update README.md 2025-07-17 16:35:00 -04:00
miloschwartz
c63d45e344 Merge branch 'main' into dev 2025-07-17 13:20:34 -07:00
miloschwartz
1159a79410 fix emails 2025-07-17 13:20:27 -07:00
Milo Schwartz
5b5e65ac08 Merge pull request #1074 from fosrl/dev
1.7.0
2025-07-17 15:47:52 -04:00
Owen
417811e94f Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-07-17 12:26:51 -07:00
Owen Schwartz
9c40057c51 Merge pull request #1072 from fosrl/crowdin_dev
New Crowdin updates
2025-07-17 12:26:05 -07:00
Owen Schwartz
a6409c16c3 New translations en-us.json (Chinese Simplified) 2025-07-17 12:25:16 -07:00
Owen
ba4667528c Merge branch 'main' of github.com:fosrl/pangolin into dev 2025-07-17 12:25:15 -07:00
Owen Schwartz
a2368d7c3f New translations en-us.json (Turkish) 2025-07-17 12:25:15 -07:00
Owen Schwartz
e90b203a7d New translations en-us.json (Portuguese) 2025-07-17 12:25:14 -07:00
Owen Schwartz
b7389d74db New translations en-us.json (Dutch) 2025-07-17 12:25:13 -07:00
Owen Schwartz
24321521c7 New translations en-us.json (Italian) 2025-07-17 12:25:11 -07:00
Owen Schwartz
f85497d446 New translations en-us.json (German) 2025-07-17 12:25:10 -07:00
Owen Schwartz
1f9e92fdb7 New translations en-us.json (Spanish) 2025-07-17 12:25:09 -07:00
Owen Schwartz
b66d2b95c5 New translations en-us.json (French) 2025-07-17 12:25:08 -07:00
Owen Schwartz
6f013b3bc4 New translations en-us.json (Polish) 2025-07-17 12:25:06 -07:00
miloschwartz
cdf8a01c14 readme adjustments 2025-07-17 12:19:06 -07:00
Owen
547923bbb4 Update cloud links 2025-07-17 12:17:27 -07:00
Owen Schwartz
a8c3c1bece New translations en-us.json (Korean) 2025-07-17 12:14:53 -07:00
Owen Schwartz
0f47a5d51e New translations en-us.json (Czech) 2025-07-17 12:14:52 -07:00
Owen Schwartz
9f9196427f New translations en-us.json (Chinese Simplified) 2025-07-17 12:14:51 -07:00
Owen Schwartz
341d688e79 New translations en-us.json (Turkish) 2025-07-17 12:14:49 -07:00
Owen Schwartz
92c5d1ed46 New translations en-us.json (Portuguese) 2025-07-17 12:14:48 -07:00
Owen Schwartz
55d8579b1a New translations en-us.json (Dutch) 2025-07-17 12:14:47 -07:00
Owen Schwartz
51a74c5045 New translations en-us.json (Italian) 2025-07-17 12:14:45 -07:00
Owen Schwartz
64f1af4d0b New translations en-us.json (German) 2025-07-17 12:14:44 -07:00
Owen Schwartz
8dd5daf495 New translations en-us.json (Spanish) 2025-07-17 12:14:43 -07:00
Owen Schwartz
0ee87d736c New translations en-us.json (French) 2025-07-17 12:14:41 -07:00
Owen Schwartz
ba822af355 New translations en-us.json (Polish) 2025-07-17 12:14:40 -07:00
Owen Schwartz
78c1990b42 New translations en-us.json (Russian) 2025-07-17 12:14:39 -07:00
Owen
768179a664 Rename file 2025-07-17 12:10:37 -07:00
Owen
1268c46f02 Update diagram 2025-07-17 12:08:56 -07:00
miloschwartz
d870a49381 change domain picker description and fix metadata title 2025-07-17 12:05:08 -07:00
Owen
8e476cc07e Update readme 2025-07-17 11:58:28 -07:00
Owen Schwartz
ea54fd6e98 New translations en-us.json (Korean) 2025-07-16 23:06:51 -07:00
Owen Schwartz
ea001cc0db New translations en-us.json (Czech) 2025-07-16 23:06:49 -07:00
Owen Schwartz
2378343c74 New translations en-us.json (Chinese Simplified) 2025-07-16 23:06:48 -07:00
Owen Schwartz
018b3346bb New translations en-us.json (Turkish) 2025-07-16 23:06:47 -07:00
Owen Schwartz
d104829a6d New translations en-us.json (Portuguese) 2025-07-16 23:06:46 -07:00
Owen Schwartz
0035460712 New translations en-us.json (Dutch) 2025-07-16 23:06:45 -07:00
Owen Schwartz
cae57ffcd8 New translations en-us.json (Italian) 2025-07-16 23:06:43 -07:00
Owen Schwartz
b587ff663c New translations en-us.json (German) 2025-07-16 23:06:42 -07:00
Owen Schwartz
531a888592 New translations en-us.json (Spanish) 2025-07-16 23:06:41 -07:00
Owen Schwartz
a13b167c41 New translations en-us.json (French) 2025-07-16 23:06:40 -07:00
Owen Schwartz
c1f9195a38 New translations en-us.json (Polish) 2025-07-16 23:06:38 -07:00
Owen Schwartz
e1ea7c6986 New translations en-us.json (Russian) 2025-07-16 23:06:37 -07:00
Owen
bd21927069 Working on readme 2025-07-16 22:31:15 -07:00
Owen
f1f4f7e5f3 Working on adjusting readme 2025-07-16 22:30:20 -07:00
miloschwartz
ccdcda7f1d add screenshots and minor fixes 2025-07-16 22:18:11 -07:00
dependabot[bot]
e9586b7336 Bump the dev-patch-updates group across 1 directory with 2 updates
Bumps the dev-patch-updates group with 2 updates in the / directory: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx) and [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@dotenvx/dotenvx` from 1.47.3 to 1.47.6
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.47.3...v1.47.6)

Updates `@types/node` from 24.0.12 to 24.0.14
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.47.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/node"
  dependency-version: 24.0.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 22:01:58 -07:00
Owen Schwartz
da36a218df Merge pull request #1069 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-5cee210a78
Bump the dev-patch-updates group across 1 directory with 2 updates
2025-07-16 22:01:25 -07:00
Owen Schwartz
1723089844 Merge pull request #1071 from fosrl/crowdin_dev
New Crowdin updates
2025-07-16 22:01:07 -07:00
Owen Schwartz
e99eb04e2f New translations en-us.json (Korean) 2025-07-16 22:00:38 -07:00
Owen Schwartz
5fddd71fc2 New translations en-us.json (Czech) 2025-07-16 22:00:37 -07:00
Owen Schwartz
c682b03736 New translations en-us.json (Chinese Simplified) 2025-07-16 22:00:36 -07:00
Owen Schwartz
4008767e1b New translations en-us.json (Turkish) 2025-07-16 22:00:35 -07:00
Owen Schwartz
74c768e2fb New translations en-us.json (Portuguese) 2025-07-16 22:00:34 -07:00
Owen Schwartz
03b883c320 New translations en-us.json (Dutch) 2025-07-16 22:00:33 -07:00
Owen Schwartz
807ddaa0bb New translations en-us.json (Italian) 2025-07-16 22:00:32 -07:00
Owen Schwartz
da9d555168 New translations en-us.json (German) 2025-07-16 22:00:31 -07:00
Owen Schwartz
05ba2c0103 New translations en-us.json (Spanish) 2025-07-16 22:00:29 -07:00
Owen Schwartz
de96b722d5 New translations en-us.json (French) 2025-07-16 22:00:28 -07:00
Owen Schwartz
afde493040 New translations en-us.json (Polish) 2025-07-16 22:00:27 -07:00
Owen Schwartz
cce440cf49 New translations en-us.json (Russian) 2025-07-16 22:00:26 -07:00
Owen
e96dbdb026 Working on readm 2025-07-16 21:58:52 -07:00
Owen
f4cd163c34 Fix get config for gerbil 2025-07-16 21:15:19 -07:00
Owen
0af9bdc964 Move ws 2025-07-16 19:07:25 -07:00
Owen
71bb1105f7 a 2025-07-16 18:20:05 -07:00
Owen
84c28645be Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-07-16 18:13:25 -07:00
miloschwartz
665ef08733 minor fixes for release 2025-07-16 18:09:17 -07:00
Owen
b3e63a5f8a Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-07-16 17:26:27 -07:00
miloschwartz
92c09b8843 fix sqlite crash on code 13 bug 2025-07-16 17:26:15 -07:00
Owen
7b726a41ef Remove extra try catch 2025-07-16 16:56:05 -07:00
miloschwartz
a1a0587a2b add build file 2025-07-16 16:41:59 -07:00
miloschwartz
98be9cee83 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-07-16 15:50:14 -07:00
miloschwartz
0646934c9d add stores 2025-07-16 15:50:03 -07:00
Owen
f0f68632ff Add transaction 2025-07-16 12:34:53 -07:00
Owen
e557bda48e Fix default 2025-07-16 12:34:42 -07:00
Owen
2992de5139 Add basic org subnet thing to postgres
T#
2025-07-16 12:00:38 -07:00
Owen
779532b1c9 Generate the initial subnets for sites and orgs 2025-07-16 11:56:26 -07:00
Owen
300175ac67 Defaults for org 2025-07-16 11:56:26 -07:00
miloschwartz
a356147164 remove not null from orgs 2025-07-16 11:52:36 -07:00
miloschwartz
d1489a9a78 fixes to sqlite migration 2025-07-16 11:47:59 -07:00
Owen
021bc073a2 Make org subnet optional 2025-07-16 11:35:38 -07:00
dependabot[bot]
4e571e1e4d Bump the dev-patch-updates group across 1 directory with 2 updates
Bumps the dev-patch-updates group with 2 updates in the / directory: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx) and [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@dotenvx/dotenvx` from 1.47.3 to 1.47.6
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.47.3...v1.47.6)

Updates `@types/node` from 24.0.12 to 24.0.14
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.47.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/node"
  dependency-version: 24.0.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 01:43:17 +00:00
miloschwartz
1dff9baa61 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-07-15 16:24:26 -07:00
miloschwartz
19d54778f5 add branding logo component 2025-07-15 16:24:16 -07:00
Owen
99d0fa974b Remove breakpoints 2025-07-15 16:17:31 -07:00
Owen
84ca275f1e Remove subnet check on the org for now 2025-07-15 16:15:22 -07:00
Owen
963bc5f0bc Add migrations to the callers 2025-07-15 15:59:37 -07:00
Owen
b446c2ce4b Add initial migration 2025-07-15 15:58:01 -07:00
Owen
65a4f7af28 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-07-15 15:52:37 -07:00
Owen
f6b2c5bbf3 Initial migration created for sqlite 2025-07-15 15:52:15 -07:00
miloschwartz
e99905e3c9 translate domains and prevent delete config domain 2025-07-15 15:51:37 -07:00
miloschwartz
5c0b42446d Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-07-15 15:27:38 -07:00
miloschwartz
a3be0d4655 ensure subdomain is null if is base domain 2025-07-15 15:27:23 -07:00
Owen
47729c2348 Remove reference to deleted site form 2025-07-15 15:13:50 -07:00
Owen
78bfcf5b1c Fix some clients address showing issues 2025-07-15 15:11:30 -07:00
miloschwartz
f1291d4d7d remove is base domain resource and flag 2025-07-15 15:07:34 -07:00
Owen
ff809416f5 Regenerate package lock 2025-07-15 14:44:08 -07:00
miloschwartz
83a4677026 don't allow deleting config managed domains 2025-07-15 13:20:44 -07:00
Owen
ffe8593a07 Remove create site modal 2025-07-15 12:07:25 -07:00
Owen
60e4db16ff Fix dockerfiles 2025-07-15 11:39:19 -07:00
miloschwartz
2e510778be fix header 2025-07-14 22:37:08 -07:00
miloschwartz
c492559010 fix profile icon merge issue 2025-07-14 22:32:42 -07:00
miloschwartz
a8dc36b6d2 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-07-14 22:21:12 -07:00
miloschwartz
379d31aac6 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-07-14 22:21:04 -07:00
Owen
28fc1ab063 Rename to sqlite 2025-07-14 18:27:06 -07:00
Owen
75e01018a5 Add docker file for dev 2025-07-14 18:24:37 -07:00
miloschwartz
b7df0b122d introduce strict rate limitso on auth router endpoints 2025-07-14 18:00:41 -07:00
Owen
f9798a8d86 Redis 2025-07-14 17:10:26 -07:00
Owen
7691bdd181 Add back "swagger-ui-express": "^5.0.1", 2025-07-14 17:00:34 -07:00
Owen
3dc79da2fa Merge branch 'dev' into clients-pops-dev 2025-07-14 16:59:00 -07:00
Owen
83b00c1cfa Fix domain picker build and copy in for domains 2025-07-14 16:37:54 -07:00
miloschwartz
d6fdb38c22 remove vacuum 2025-07-14 16:27:18 -07:00
miloschwartz
3505342a8d style consistency changes to add security key form 2025-07-14 15:43:33 -07:00
Owen
78661799f2 Resources working with new picker 2025-07-14 15:36:15 -07:00
Owen
ec57996b01 Hide license 2025-07-14 14:56:03 -07:00
miloschwartz
0a97d91aed restore migrations and fix rate limit 2025-07-14 14:55:09 -07:00
Owen
753027ffc7 Translate missing translations 2025-07-14 14:45:46 -07:00
Milo Schwartz
d3383f0f1a Merge pull request #1011 from adrianeastles/feat/internal-user-passkey-support
Internal User - Passwordless Login for Org Members
2025-07-14 17:43:20 -04:00
Milo Schwartz
9075ecb007 Merge branch 'dev' into feat/internal-user-passkey-support 2025-07-14 17:43:01 -04:00
Owen
4b8cc7c4d3 Control with build 2025-07-14 12:46:47 -07:00
Owen
2f20397c60 Flag deleting orgs 2025-07-14 12:38:58 -07:00
Owen
7f227932da Domain picker support wildcard 2025-07-14 12:24:38 -07:00
Owen
69d253fba3 Create wildcard domains 2025-07-14 12:18:12 -07:00
Owen
b75800c583 Reintroduce clients conditionally 2025-07-14 11:43:13 -07:00
Owen
a35add3fc6 Consolidate imports 2025-07-14 10:56:24 -07:00
Owen
b17ff57582 Add missing new domain cols 2025-07-14 10:56:10 -07:00
miloschwartz
915ccdc007 server admin enforce 2fa per user 2025-07-13 21:58:37 -07:00
Owen
98a261e38c Pull up downstream changes 2025-07-13 21:57:24 -07:00
Adrian Astles
c9f5ffae42 Merge branch 'dev' into feat/internal-user-passkey-support 2025-07-14 07:20:33 +08:00
Owen
342675276b Add type & cap 2025-07-13 15:58:58 -07:00
Milo Schwartz
590296e64d Merge pull request #1035 from jnewing/feature-manage-2fa
Feature Manage Users 2fa
2025-07-13 18:33:36 -04:00
Milo Schwartz
17b39d16a3 Merge branch 'dev' into feature-manage-2fa 2025-07-13 18:33:27 -04:00
Owen
515a621eb4 Merge branch 'feature/podman-installer' of github.com:wayneyaoo/pangolin into wayneyaoo-feature/podman-installer 2025-07-13 15:09:39 -07:00
Owen Schwartz
ca0e950cdf Merge pull request #1038 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-3b5c1dc64f
Bump the prod-minor-updates group across 1 directory with 5 updates
2025-07-13 11:47:58 -07:00
dependabot[bot]
cec9e4101d Bump the prod-minor-updates group across 1 directory with 5 updates
Bumps the prod-minor-updates group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components) | `0.1.0` | `0.2.0` |
| [@react-email/tailwind](https://github.com/resend/react-email/tree/HEAD/packages/tailwind) | `1.0.5` | `1.1.0` |
| [eslint](https://github.com/eslint/eslint) | `9.29.0` | `9.30.1` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.522.0` | `0.525.0` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.58.1` | `7.60.0` |



Updates `@react-email/components` from 0.1.0 to 0.2.0
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/components/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@0.2.0/packages/components)

Updates `@react-email/tailwind` from 1.0.5 to 1.1.0
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/tailwind/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/tailwind@1.1.0/packages/tailwind)

Updates `eslint` from 9.29.0 to 9.30.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.29.0...v9.30.1)

Updates `lucide-react` from 0.522.0 to 0.525.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.525.0/packages/lucide-react)

Updates `react-hook-form` from 7.58.1 to 7.60.0
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.58.1...v7.60.0)

---
updated-dependencies:
- dependency-name: "@react-email/components"
  dependency-version: 0.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@react-email/tailwind"
  dependency-version: 1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint
  dependency-version: 9.30.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.525.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.60.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-13 18:47:45 +00:00
Owen Schwartz
862fabf6ad Merge pull request #1054 from daeho-ro/weblate
feat: Add Korean translations
2025-07-13 11:46:28 -07:00
Owen Schwartz
128a9aae4e Merge pull request #1045 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-4850a154df
Bump the dev-minor-updates group with 3 updates
2025-07-13 11:40:38 -07:00
Daeho Ro
1983d0067d Add Korean translations 2025-07-12 13:21:14 +09:00
Daeho Ro
bdaf48da20 Translated using Weblate (Korean)
Currently translated at 100.0% (1134 of 1134 strings)

Translated using Weblate (Korean)

Currently translated at 2.9% (33 of 1134 strings)

Translated using Weblate (Korean)

Currently translated at 2.9% (33 of 1134 strings)

Translated using Weblate (Korean)

Currently translated at 2.9% (33 of 1134 strings)

Added translation using Weblate (Korean)

Co-authored-by: Daeho Ro <40587651+daeho-ro@users.noreply.github.com>
Co-authored-by: Daeho Ro <email@daeho.ro>
Co-authored-by: OpenAI <noreply-mt-openai@weblate.org>
Co-authored-by: Weblate <noreply-mt-weblate@weblate.org>
Translate-URL: https://mini-i18n.daeho.ro/projects/pangolin/main/ko/
Translation: pangolin/main
2025-07-12 04:15:35 +00:00
dependabot[bot]
09024a93e9 Bump the dev-minor-updates group with 3 updates
Bumps the dev-minor-updates group with 3 updates: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx), [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@dotenvx/dotenvx` from 1.45.1 to 1.47.3
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.45.1...v1.47.3)

Updates `react-email` from 4.0.16 to 4.1.0
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@4.1.0/packages/react-email)

Updates `typescript-eslint` from 8.35.1 to 8.36.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.36.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.47.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: react-email
  dependency-version: 4.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: typescript-eslint
  dependency-version: 8.36.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-10 01:57:05 +00:00
Owen Schwartz
064e7071b2 Merge pull request #1037 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-47326aa7c5
Bump the dev-patch-updates group across 1 directory with 3 updates
2025-07-09 10:03:30 -07:00
Owen Schwartz
2b2fedb380 Merge pull request #1039 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-2cef69bbab
Bump the prod-patch-updates group across 1 directory with 7 updates
2025-07-09 10:02:58 -07:00
dependabot[bot]
5ff7c216b9 Bump the prod-patch-updates group across 1 directory with 7 updates
Bumps the prod-patch-updates group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.3.4` | `15.3.5` |
| [next](https://github.com/vercel/next.js) | `15.3.4` | `15.3.5` |
| [next-intl](https://github.com/amannn/next-intl) | `4.3.1` | `4.3.4` |
| [nodemailer](https://github.com/nodemailer/nodemailer) | `7.0.3` | `7.0.5` |
| [tw-animate-css](https://github.com/Wombosvideo/tw-animate-css) | `1.3.4` | `1.3.5` |
| [ws](https://github.com/websockets/ws) | `8.18.2` | `8.18.3` |
| [zod](https://github.com/colinhacks/zod) | `3.25.67` | `3.25.76` |



Updates `eslint-config-next` from 15.3.4 to 15.3.5
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v15.3.5/packages/eslint-config-next)

Updates `next` from 15.3.4 to 15.3.5
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.3.4...v15.3.5)

Updates `next-intl` from 4.3.1 to 4.3.4
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.3.1...v4.3.4)

Updates `nodemailer` from 7.0.3 to 7.0.5
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v7.0.3...v7.0.5)

Updates `tw-animate-css` from 1.3.4 to 1.3.5
- [Release notes](https://github.com/Wombosvideo/tw-animate-css/releases)
- [Commits](https://github.com/Wombosvideo/tw-animate-css/compare/v1.3.4...v1.3.5)

Updates `ws` from 8.18.2 to 8.18.3
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.18.2...8.18.3)

Updates `zod` from 3.25.67 to 3.25.76
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](https://github.com/colinhacks/zod/compare/v3.25.67...v3.25.76)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-version: 15.3.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: next
  dependency-version: 15.3.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: next-intl
  dependency-version: 4.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: nodemailer
  dependency-version: 7.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: tw-animate-css
  dependency-version: 1.3.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: ws
  dependency-version: 8.18.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: zod
  dependency-version: 3.25.76
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-09 01:20:06 +00:00
dependabot[bot]
c476ac7bc5 Bump the dev-patch-updates group across 1 directory with 3 updates
Bumps the dev-patch-updates group with 3 updates in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [drizzle-kit](https://github.com/drizzle-team/drizzle-orm) and [esbuild](https://github.com/evanw/esbuild).


Updates `@types/node` from 24.0.7 to 24.0.12
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `drizzle-kit` from 0.31.2 to 0.31.4
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/drizzle-kit@0.31.2...drizzle-kit@0.31.4)

Updates `esbuild` from 0.25.5 to 0.25.6
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.5...v0.25.6)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.0.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: drizzle-kit
  dependency-version: 0.31.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.25.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-09 01:18:19 +00:00
Wayne Yao
e83e8c2ee4 Add podman support to the installer. 2025-07-08 23:14:42 +08:00
Wayne Yao
607b168b56 Use explicity FQDN image path because Podman by default doesn't have unqualified-search, and we don't bother configuring it for users. Being explicit is also a good practice 2025-07-08 23:14:23 +08:00
Wayne Yao
e0cf0916dd Add a few targets to the Makefile to ease local development 2025-07-08 23:13:00 +08:00
J. Newing
0f3a5ce8ba Added users 2FA statsu to userstable 2025-07-08 10:21:24 -04:00
J. Newing
2a6298e9eb Admins can enable 2FA
Added the feature for admins to force 2FA on accounts. The next time the
user logs in they will have to setup 2FA on their account.
2025-07-08 10:21:24 -04:00
Adrian Astles
f97b133c8c Resolved build error. 2025-07-08 22:04:24 +08:00
Owen Schwartz
f11fa4f32d Merge pull request #1023 from Burzhui34/fix-russian-plural-forms
Fix plural forms for Russian language
2025-07-07 09:08:32 -07:00
Adrian Astles
f0a1c10ec5 fix(auth): improve security key login flow.
- Fix login to verify password before showing security key prompt
- Add proper 2FA verification flow when deleting security keys

Previously, users with security keys would see the security key prompt
even if they entered an incorrect password. Now the password is verified
first. Additionally, security key deletion now properly handles 2FA
verification when enabled.
2025-07-07 17:48:23 +08:00
Burzhui34
08fed8fe93 Fix plural forms for Russian language
Change =1/other to one/other format to support proper grammar in Russian
2025-07-06 21:04:27 +03:00
Adrian Astles
813992141a Fix version mismatch with package-lock.json with package.json 2025-07-07 01:08:01 +08:00
Owen Schwartz
f90129213e Merge pull request #1021 from fosrl/dependabot/github_actions/docker/setup-buildx-action-3
Bump docker/setup-buildx-action from 2 to 3
2025-07-06 10:07:50 -07:00
dependabot[bot]
838af30a38 Bump docker/setup-buildx-action from 2 to 3
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-06 17:02:46 +00:00
Owen Schwartz
13ff15311a Merge pull request #1019 from fosrl/dependabot/github_actions/actions/setup-go-5
Bump actions/setup-go from 4 to 5
2025-07-06 10:02:29 -07:00
Owen Schwartz
56e237c479 Merge pull request #1020 from fosrl/dependabot/github_actions/docker/login-action-3
Bump docker/login-action from 2 to 3
2025-07-06 10:01:49 -07:00
Owen Schwartz
ff1e10a025 Merge pull request #1022 from fosrl/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 3 to 4
2025-07-06 10:00:51 -07:00
dependabot[bot]
c259037dbf Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-06 16:38:48 +00:00
dependabot[bot]
7b4878620f Bump docker/login-action from 2 to 3
Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-06 16:38:42 +00:00
dependabot[bot]
38fd58c173 Bump actions/setup-go from 4 to 5
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4 to 5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-06 16:38:40 +00:00
Owen Schwartz
d1185d43f7 Merge pull request #1018 from Lokowitz/update-dependabot
Update dependabot with github-actions
2025-07-06 09:38:02 -07:00
Adrian Astles
a093c54b16 simplified security key management interface. 2025-07-06 20:41:26 +08:00
Marvin
30cc85b793 Update dependabot.yml 2025-07-06 13:12:43 +02:00
Adrian Astles
5009906385 renamed passkey to security key to stay aligned with the UI and other backend naming. 2025-07-05 21:51:31 +08:00
Adrian Astles
6ccc05b183 Update security key error handling and user feedback. Improve user guidance for security key interactions and Implement proper error handling for permission denials and timing issues. 2025-07-05 18:56:32 +08:00
Adrian Astles
3994b25a71 Merge branch 'dev' into feat/internal-user-passkey-support 2025-07-05 18:36:44 +08:00
Adrian Astles
5130071a60 improved security key management interface, also updated locales 2025-07-05 18:27:04 +08:00
Adrian Astles
d5e67835aa improved WebAuthn error messages and session handling. Compatibility guidance in error states, and Improve user guidance for common authentication issues. 2025-07-05 16:52:56 +08:00
Adrian Astles
bf8078ed66 enhance WebAuthn implementation and error handling. 2025-07-05 16:48:37 +08:00
Adrian Astles
1559a2a943 Fixed database dependencies. 2025-07-05 16:32:04 +08:00
Owen Schwartz
e2d5301376 Merge pull request #990 from Lokowitz/fix-test
Fix test
2025-07-04 08:57:56 -07:00
Adrian Astles
f31717145f feat(passkeys): Add password verification for passkey management
- Add password verification requirement when registering passkeys
- Add password verification requirement when deleting passkeys
- Add support for 2FA verification if enabled
- Add new delete confirmation dialog with password field
- Add recommendation message when only one passkey is registered
- Improve dialog styling and user experience
- Fix type issues with WebAuthn credential descriptors

Security: This change ensures that sensitive passkey operations require
password verification, similar to 2FA management, preventing unauthorized
modifications to authentication methods.
2025-07-03 22:57:29 +08:00
Adrian Astles
db76558944 refactor: rename passkeyChallenge to webauthnChallenge
- Renamed table for consistency with webauthnCredentials
- Created migration script 1.8.1.ts for table rename
- Updated schema definitions in SQLite and PostgreSQL
- Maintains WebAuthn standard naming convention
2025-07-03 21:53:07 +08:00
Owen
1bcb027e05 Fix translation issue with targets 2025-07-01 21:04:40 -07:00
miloschwartz
719d75f8a6 fix pg migration for >1.6.0 2025-07-01 21:03:10 -07:00
Milo Schwartz
8c164c410d Merge pull request #994 from fosrl/dev
remove duplicate yargs
2025-06-30 18:03:54 -04:00
miloschwartz
8c6a4a90aa remove duplicate yargs 2025-06-30 15:03:09 -07:00
miloschwartz
c679875273 add inset shadow 2025-06-30 14:18:17 -07:00
miloschwartz
1e5141c27c add newt version update available to table 2025-06-30 13:59:30 -07:00
Lokowitz
e56330be47 modified: Makefile 2025-06-30 20:08:44 +00:00
Lokowitz
764a63d784 modified: Makefile 2025-06-30 20:04:51 +00:00
Lokowitz
6f280c4664 modified: package-lock.json 2025-06-30 20:03:22 +00:00
Lokowitz
9b29f38d10 modified: package-lock.json 2025-06-30 19:54:59 +00:00
Marvin
6b60410791 modified: package-lock.json 2025-06-30 19:42:25 +00:00
Marvin
dffaceba6f modified: package-lock.json 2025-06-30 19:40:45 +00:00
miloschwartz
4ffdd6f74f clean up a few save buttons 2025-06-30 12:28:27 -07:00
Marvin
3499dd4f56 Update test.yml 2025-06-30 21:25:52 +02:00
Marvin
7004820326 Update Makefile 2025-06-30 21:25:16 +02:00
Marvin
24a17235ae Update test.yml 2025-06-30 21:24:32 +02:00
Milo Schwartz
66e8a4666c Merge pull request #988 from fosrl/dev
1.6.0
2025-06-30 14:31:30 -04:00
Owen
862dd6f0bc Update package-lock.json 2025-06-30 11:19:33 -07:00
miloschwartz
83afb23ac4 Merge branch 'main' into dev 2025-06-30 10:21:51 -07:00
miloschwartz
a0381eb2c6 clean up ui pass 1 2025-06-30 09:34:14 -07:00
Owen
3b6a44e683 Merge branch 'dev' into clients-pops 2025-06-27 18:01:21 -04:00
Owen
baee745d3c Fix orgId not in queries 2025-06-27 18:01:06 -04:00
miloschwartz
cc930ebf53 prevent site name from wrapping 2025-06-27 16:46:03 -04:00
miloschwartz
809a135721 add refresh sites button 2025-06-27 16:43:14 -04:00
Owen
073c318f12 Improve bandiwdth update 2025-06-27 10:36:58 -04:00
miloschwartz
8f1cfd8037 toggle clients with feature flag 2025-06-26 15:09:16 -04:00
miloschwartz
7bf9cccbf6 show account already exists if email not verified 2025-06-25 16:54:33 -04:00
miloschwartz
d194e230de option to log out if on verify email screen 2025-06-25 16:44:23 -04:00
miloschwartz
bd3d9d2da3 adjust ring offset 2025-06-25 15:29:32 -04:00
miloschwartz
e694817b57 add server init method to config 2025-06-25 12:18:29 -04:00
miloschwartz
66191a9610 fix org selector overflow 2025-06-24 17:19:03 -04:00
miloschwartz
9bb4d8b2a3 store last visited org in cookie 2025-06-24 14:54:07 -04:00
Owen Schwartz
2f5579b070 Merge pull request #960 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-c1dab6c5b3
Bump drizzle-kit from 0.31.1 to 0.31.2 in the dev-patch-updates group
2025-06-24 11:27:43 -04:00
Owen Schwartz
bc5d7f5f57 Merge pull request #961 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-d97bf475c8
Bump typescript-eslint from 8.34.1 to 8.35.0 in the dev-minor-updates group
2025-06-24 11:27:15 -04:00
dependabot[bot]
d729be0d71 Bump typescript-eslint in the dev-minor-updates group
Bumps the dev-minor-updates group with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `typescript-eslint` from 8.34.1 to 8.35.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.35.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.35.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-24 03:57:56 +00:00
dependabot[bot]
7ccf7f6f15 Bump drizzle-kit from 0.31.1 to 0.31.2 in the dev-patch-updates group
Bumps the dev-patch-updates group with 1 update: [drizzle-kit](https://github.com/drizzle-team/drizzle-orm).


Updates `drizzle-kit` from 0.31.1 to 0.31.2
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/drizzle-kit@0.31.1...drizzle-kit@0.31.2)

---
updated-dependencies:
- dependency-name: drizzle-kit
  dependency-version: 0.31.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-24 03:31:48 +00:00
Owen Schwartz
918dc98f71 Merge pull request #957 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-86f5eb48c3
Bump express-rate-limit from 7.5.0 to 7.5.1 in the prod-patch-updates group
2025-06-23 09:26:08 -04:00
Owen Schwartz
79a72528d7 Merge pull request #958 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-ca63e9bc34
Bump lucide-react from 0.518.0 to 0.522.0 in the prod-minor-updates group
2025-06-23 09:25:59 -04:00
Owen Schwartz
0f2cc7d425 Merge pull request #956 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-063149b7b9
Bump @dotenvx/dotenvx from 1.44.2 to 1.45.1 in the dev-minor-updates group
2025-06-23 09:25:48 -04:00
dependabot[bot]
8f75725987 Bump lucide-react in the prod-minor-updates group
Bumps the prod-minor-updates group with 1 update: [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react).


Updates `lucide-react` from 0.518.0 to 0.522.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.522.0/packages/lucide-react)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 0.522.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 01:29:13 +00:00
dependabot[bot]
2918a3f767 Bump express-rate-limit in the prod-patch-updates group
Bumps the prod-patch-updates group with 1 update: [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit).


Updates `express-rate-limit` from 7.5.0 to 7.5.1
- [Release notes](https://github.com/express-rate-limit/express-rate-limit/releases)
- [Commits](https://github.com/express-rate-limit/express-rate-limit/compare/v7.5.0...v7.5.1)

---
updated-dependencies:
- dependency-name: express-rate-limit
  dependency-version: 7.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 01:27:02 +00:00
dependabot[bot]
598c206bbd Bump @dotenvx/dotenvx in the dev-minor-updates group
Bumps the dev-minor-updates group with 1 update: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx).


Updates `@dotenvx/dotenvx` from 1.44.2 to 1.45.1
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.44.2...v1.45.1)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.45.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 01:24:39 +00:00
miloschwartz
34180ca454 set trust proxy for int api 2025-06-22 20:01:31 -04:00
miloschwartz
fb5010a2b5 use redis store in rate limiters 2025-06-22 19:55:05 -04:00
miloschwartz
0e87b6e48b Merge branch 'dev' into clients-pops 2025-06-22 17:50:39 -04:00
miloschwartz
d45443258b update selection algorithm 2025-06-22 17:19:40 -04:00
Owen
f3b44a3085 Add default type 2025-06-22 15:48:47 -04:00
Owen
9680260104 Add domain type 2025-06-22 12:58:33 -04:00
miloschwartz
2ead5f4506 add deprecated env vars warning 2025-06-21 16:59:10 -04:00
miloschwartz
4f68a26049 dont show org id taken after success 2025-06-21 16:42:59 -04:00
miloschwartz
49b88002fb add replaceme back to installer 2025-06-21 16:36:17 -04:00
miloschwartz
ead5df0a8c simplify installer and remove parsing from read config 2025-06-21 16:35:22 -04:00
Owen Schwartz
9f38ad9b4d Merge pull request #945 from fosrl/crowdin_dev
New Crowdin updates
2025-06-20 17:19:46 -04:00
miloschwartz
317a15b649 Merge branch 'dev' into clients-pops 2025-06-20 16:34:49 -04:00
Owen Schwartz
7748fb682d New translations en-us.json (Chinese Simplified) 2025-06-20 10:03:31 -04:00
Owen Schwartz
6f601c7814 New translations en-us.json (Turkish) 2025-06-20 10:03:30 -04:00
Owen Schwartz
c63dcd89b5 New translations en-us.json (Portuguese) 2025-06-20 10:03:29 -04:00
Owen Schwartz
8c6e3be8ce New translations en-us.json (Polish) 2025-06-20 10:03:27 -04:00
Owen Schwartz
13bfeae780 New translations en-us.json (Dutch) 2025-06-20 10:03:26 -04:00
Owen Schwartz
051162cd69 New translations en-us.json (Italian) 2025-06-20 10:03:25 -04:00
Owen Schwartz
9065d21778 New translations en-us.json (German) 2025-06-20 10:03:24 -04:00
Owen Schwartz
cafbad88f3 New translations en-us.json (Spanish) 2025-06-20 10:03:22 -04:00
Owen Schwartz
20965fc67b New translations en-us.json (French) 2025-06-20 10:03:21 -04:00
Owen Schwartz
3efb04a603 Merge pull request #942 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-9f90b90163
Bump the prod-patch-updates group with 3 updates
2025-06-20 09:44:43 -04:00
Owen Schwartz
d650d1e6eb Merge pull request #943 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-740e6d8f02
Bump lucide-react from 0.517.0 to 0.518.0 in the prod-minor-updates group
2025-06-20 09:44:26 -04:00
Owen Schwartz
2b23587200 New translations en-us.json (Chinese Simplified) 2025-06-19 22:40:15 -04:00
Owen Schwartz
a839f9146f New translations en-us.json (Turkish) 2025-06-19 22:40:14 -04:00
Owen Schwartz
a6138a02fd New translations en-us.json (Portuguese) 2025-06-19 22:40:13 -04:00
Owen Schwartz
0e18fc4700 New translations en-us.json (Polish) 2025-06-19 22:40:11 -04:00
Owen Schwartz
68015511c1 New translations en-us.json (Dutch) 2025-06-19 22:40:10 -04:00
Owen Schwartz
715d33fe90 New translations en-us.json (Italian) 2025-06-19 22:40:09 -04:00
Owen Schwartz
85b99852bb New translations en-us.json (German) 2025-06-19 22:40:08 -04:00
Owen Schwartz
a54c88eb32 New translations en-us.json (Spanish) 2025-06-19 22:40:07 -04:00
Owen Schwartz
6a5bdd40b6 New translations en-us.json (French) 2025-06-19 22:40:05 -04:00
miloschwartz
d03f45279c remove server admin from config and add onboarding ui 2025-06-19 22:11:05 -04:00
dependabot[bot]
e7b45df81f Bump lucide-react in the prod-minor-updates group
Bumps the prod-minor-updates group with 1 update: [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react).


Updates `lucide-react` from 0.517.0 to 0.518.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.518.0/packages/lucide-react)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 0.518.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-20 01:29:50 +00:00
dependabot[bot]
91df8c0556 Bump the prod-patch-updates group with 3 updates
Bumps the prod-patch-updates group with 3 updates: [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next), [next](https://github.com/vercel/next.js) and [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg).


Updates `eslint-config-next` from 15.3.3 to 15.3.4
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v15.3.4/packages/eslint-config-next)

Updates `next` from 15.3.3 to 15.3.4
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.3.3...v15.3.4)

Updates `pg` from 8.16.0 to 8.16.2
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.16.2/packages/pg)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-version: 15.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: next
  dependency-version: 15.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: pg
  dependency-version: 8.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-20 01:28:07 +00:00
Owen
2fd8134a57 Dont go over capacity or accept no capacity 2025-06-19 18:04:52 -04:00
miloschwartz
494b54ac32 add redis rate limiter 2025-06-19 16:58:03 -04:00
Owen
377eb2b851 Handle version in db 2025-06-19 16:40:20 -04:00
Owen
bd7e96b8af Send version and try to be reverse compatible 2025-06-19 16:40:02 -04:00
miloschwartz
acf25e8ad7 Merge branch 'dev' into clients-pops 2025-06-19 16:34:06 -04:00
miloschwartz
f300838f8e add migration for 1.6.0 2025-06-19 15:58:05 -04:00
miloschwartz
1bf2e23f5d make username lowercase 2025-06-19 15:41:49 -04:00
miloschwartz
58ba0d07b0 add migration to set trust_proxy to 1 if it exists in config 2025-06-19 12:08:06 -04:00
miloschwartz
97ae76e4e7 forward headers from server component and make trust_proxy config a number 2025-06-19 11:22:29 -04:00
Owen Schwartz
4b24d722b6 Merge pull request #933 from fosrl/dependabot/npm_and_yarn/tailwind-merge-3.3.1
Bump tailwind-merge from 2.6.0 to 3.3.1
2025-06-19 09:49:20 -04:00
Owen Schwartz
09efed4331 Merge pull request #930 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-b2e6812000
Bump the prod-minor-updates group with 7 updates
2025-06-19 09:43:37 -04:00
Owen
a0ac757982 Exit node filtering 2025-06-19 09:30:02 -04:00
dependabot[bot]
c86418dbbb Bump the prod-minor-updates group with 7 updates
Bumps the prod-minor-updates group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components) | `0.0.41` | `0.1.0` |
| [axios](https://github.com/axios/axios) | `1.9.0` | `1.10.0` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.38.3` | `0.44.2` |
| [eslint](https://github.com/eslint/eslint) | `9.28.0` | `9.29.0` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.511.0` | `0.516.0` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.56.4` | `7.58.1` |
| [zod-validation-error](https://github.com/causaly/zod-validation-error) | `3.4.1` | `3.5.1` |


Updates `@react-email/components` from 0.0.41 to 0.1.0
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/components/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@0.1.0/packages/components)

Updates `axios` from 1.9.0 to 1.10.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.9.0...v1.10.0)

Updates `drizzle-orm` from 0.38.3 to 0.44.2
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.38.3...0.44.2)

Updates `eslint` from 9.28.0 to 9.29.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.28.0...v9.29.0)

Updates `lucide-react` from 0.511.0 to 0.516.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.516.0/packages/lucide-react)

Updates `react-hook-form` from 7.56.4 to 7.58.1
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.56.4...v7.58.1)

Updates `zod-validation-error` from 3.4.1 to 3.5.1
- [Release notes](https://github.com/causaly/zod-validation-error/releases)
- [Changelog](https://github.com/causaly/zod-validation-error/blob/main/CHANGELOG.md)
- [Commits](https://github.com/causaly/zod-validation-error/compare/v3.4.1...v3.5.1)

---
updated-dependencies:
- dependency-name: "@react-email/components"
  dependency-version: 0.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: axios
  dependency-version: 1.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: drizzle-orm
  dependency-version: 0.44.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint
  dependency-version: 9.29.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.516.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.58.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: zod-validation-error
  dependency-version: 3.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-19 02:05:14 +00:00
miloschwartz
c043912f94 fix bug preventing creating raw resources with api key closes #920 2025-06-18 16:42:07 -04:00
miloschwartz
b56ba3ee23 prevent org id taken error for flashing after create org 2025-06-18 16:22:01 -04:00
miloschwartz
0b8bb5a974 don't use word mark in nav bar 2025-06-18 16:11:37 -04:00
miloschwartz
3b3d7b134a mark exit node as was previously connected 2025-06-18 15:57:45 -04:00
miloschwartz
b84b78a34d add server/db/index.ts to gitignore 2025-06-18 14:20:55 -04:00
Owen Schwartz
954b13ac60 Merge pull request #931 from fosrl/dependabot/npm_and_yarn/nodemailer-7.0.3
Bump nodemailer from 6.9.16 to 7.0.3
2025-06-18 09:10:19 -04:00
Owen Schwartz
bae540966b Merge pull request #936 from fosrl/dependabot/npm_and_yarn/brace-expansion-1.1.12
Bump brace-expansion from 1.1.11 to 1.1.12
2025-06-18 09:09:48 -04:00
dependabot[bot]
79d4ab1671 Bump brace-expansion from 1.1.11 to 1.1.12
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.12
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 12:55:21 +00:00
dependabot[bot]
31104d3d04 Bump nodemailer from 6.9.16 to 7.0.3
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 6.9.16 to 7.0.3.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.9.16...v7.0.3)

---
updated-dependencies:
- dependency-name: nodemailer
  dependency-version: 7.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 12:55:18 +00:00
Owen Schwartz
f254d98712 Merge pull request #929 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-97e741ec99
Bump the prod-patch-updates group with 4 updates
2025-06-18 08:54:07 -04:00
dependabot[bot]
b403f5018b Bump tailwind-merge from 2.6.0 to 3.3.1
Bumps [tailwind-merge](https://github.com/dcastil/tailwind-merge) from 2.6.0 to 3.3.1.
- [Release notes](https://github.com/dcastil/tailwind-merge/releases)
- [Commits](https://github.com/dcastil/tailwind-merge/compare/v2.6.0...v3.3.1)

---
updated-dependencies:
- dependency-name: tailwind-merge
  dependency-version: 3.3.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 01:48:55 +00:00
dependabot[bot]
fd219d5780 Bump the prod-patch-updates group with 4 updates
Bumps the prod-patch-updates group with 4 updates: [@asteasolutions/zod-to-openapi](https://github.com/asteasolutions/zod-to-openapi), [glob](https://github.com/isaacs/node-glob), [npm](https://github.com/npm/cli) and [zod](https://github.com/colinhacks/zod).


Updates `@asteasolutions/zod-to-openapi` from 7.3.3 to 7.3.4
- [Release notes](https://github.com/asteasolutions/zod-to-openapi/releases)
- [Commits](https://github.com/asteasolutions/zod-to-openapi/compare/v7.3.3...v7.3.4)

Updates `glob` from 11.0.2 to 11.0.3
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.2...v11.0.3)

Updates `npm` from 11.4.1 to 11.4.2
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v11.4.1...v11.4.2)

Updates `zod` from 3.25.56 to 3.25.67
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](https://github.com/colinhacks/zod/compare/v3.25.56...v3.25.67)

---
updated-dependencies:
- dependency-name: "@asteasolutions/zod-to-openapi"
  dependency-version: 7.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: glob
  dependency-version: 11.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: npm
  dependency-version: 11.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: zod
  dependency-version: 3.25.67
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 01:45:24 +00:00
miloschwartz
17ac5a5e81 add flag to disable config managed domains 2025-06-17 17:25:41 -04:00
miloschwartz
a24431bc3b fix hide raw resources again 2025-06-17 17:03:08 -04:00
Owen
cdfeb2ff86 Filter by exit node 2025-06-17 17:00:11 -04:00
miloschwartz
8199202dc3 fix hide raw resource option 2025-06-17 16:53:57 -04:00
miloschwartz
7fd1fb89f1 disable local and wg sites with flag 2025-06-17 16:35:05 -04:00
miloschwartz
32e54d0f94 hide raw resources ui if disabled 2025-06-17 16:23:33 -04:00
miloschwartz
21e9edd201 move max connections from config to db 2025-06-17 15:53:57 -04:00
miloschwartz
a0001aaa74 add max connection and weight calculation 2025-06-17 15:51:32 -04:00
Owen Schwartz
2b77c0fac8 Merge pull request #926 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-53bc854d25
Bump the dev-patch-updates group with 4 updates
2025-06-17 09:35:56 -04:00
dependabot[bot]
81ab008d83 Bump the dev-patch-updates group with 4 updates
Bumps the dev-patch-updates group with 4 updates: [@types/jsonwebtoken](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jsonwebtoken), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [postcss](https://github.com/postcss/postcss) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@types/jsonwebtoken` from 9.0.9 to 9.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jsonwebtoken)

Updates `@types/node` from 24.0.1 to 24.0.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `postcss` from 8.5.5 to 8.5.6
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.5...8.5.6)

Updates `typescript-eslint` from 8.34.0 to 8.34.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.34.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/jsonwebtoken"
  dependency-version: 9.0.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/node"
  dependency-version: 24.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: postcss
  dependency-version: 8.5.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: typescript-eslint
  dependency-version: 8.34.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-17 02:53:28 +00:00
miloschwartz
753307bb99 use new exit node info 2025-06-16 22:07:03 -04:00
Owen
970feb75dd Add priority 100 2025-06-16 17:41:40 -04:00
miloschwartz
08556789f9 add exit node name 2025-06-16 17:32:38 -04:00
miloschwartz
72d8ad3204 disable migrations 2025-06-16 15:23:28 -04:00
miloschwartz
6cdf53e262 use sqlite db 2025-06-16 15:19:37 -04:00
miloschwartz
f6d81c3a23 update schema 2025-06-16 12:30:15 -04:00
miloschwartz
4d7b905e98 fix typo 2025-06-16 11:33:24 -04:00
Owen
8c42dee5de Remove unneeded clientType 2025-06-15 18:18:28 -04:00
miloschwartz
23d529bb31 Merge branch 'dev' into clients-pops 2025-06-15 18:04:44 -04:00
miloschwartz
7bbb687047 make exit node name backwards compatible 2025-06-15 18:02:31 -04:00
miloschwartz
b39708700d add exit node name and fix db import issues 2025-06-15 17:49:27 -04:00
miloschwartz
d46b9eaf87 Merge branch 'redis' into clients-pops 2025-06-15 13:26:48 -04:00
miloschwartz
3e60a2bd6f Merge branch 'dev' into clients-pops 2025-06-15 13:25:21 -04:00
miloschwartz
4e2e434947 Merge branch 'dev' into redis 2025-06-15 13:25:04 -04:00
miloschwartz
af32dfbbcd move enable redis to flag 2025-06-15 13:24:51 -04:00
miloschwartz
fc19d0ba8b add set server admin password to cli 2025-06-15 13:19:07 -04:00
miloschwartz
83c10166e2 Merge branch 'redis' into clients-pops 2025-06-15 11:54:55 -04:00
Owen
ddd292422b Make error more clear
From #911
2025-06-15 10:53:03 -04:00
miloschwartz
8bb0401c25 Merge branch 'dev' into clients-pops 2025-06-13 16:43:33 -04:00
miloschwartz
139c9d2ce3 add redis conn to config 2025-06-13 16:42:15 -04:00
miloschwartz
21f4623e3e Merge branch 'dev' into redis 2025-06-13 13:05:24 -04:00
miloschwartz
b86ef93211 add replica connections for pg 2025-06-13 13:04:44 -04:00
Owen Schwartz
6384bcd934 Merge pull request #908 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-e7885b43cc
Bump the dev-patch-updates group across 1 directory with 5 updates
2025-06-13 09:39:45 -04:00
dependabot[bot]
3d4177bd93 Bump the dev-patch-updates group across 1 directory with 5 updates
Bumps the dev-patch-updates group with 4 updates in the / directory: [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss), [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react), [postcss](https://github.com/postcss/postcss) and [tsx](https://github.com/privatenumber/tsx).


Updates `@tailwindcss/postcss` from 4.1.8 to 4.1.10
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.10/packages/@tailwindcss-postcss)

Updates `@types/react` from 19.1.7 to 19.1.8
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `postcss` from 8.5.4 to 8.5.5
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.4...8.5.5)

Updates `tailwindcss` from 4.1.8 to 4.1.10
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.10/packages/tailwindcss)

Updates `tsx` from 4.20.1 to 4.20.3
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.20.1...v4.20.3)

---
updated-dependencies:
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/react"
  dependency-version: 19.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: postcss
  dependency-version: 8.5.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tsx
  dependency-version: 4.20.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-13 13:36:55 +00:00
Owen Schwartz
c6e1a9a171 Merge pull request #897 from fosrl/dependabot/npm_and_yarn/types/node-24.0.1
Bump @types/node from 22.15.30 to 24.0.1
2025-06-13 09:34:42 -04:00
Owen Schwartz
13825568fe Merge pull request #896 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-fd9b651c61
Bump tsx from 4.19.4 to 4.20.1 in the dev-minor-updates group
2025-06-13 09:34:21 -04:00
dependabot[bot]
05c6a010e4 Bump @types/node from 22.15.30 to 24.0.1
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.30 to 24.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-12 02:02:33 +00:00
dependabot[bot]
98178eaf24 Bump tsx from 4.19.4 to 4.20.1 in the dev-minor-updates group
Bumps the dev-minor-updates group with 1 update: [tsx](https://github.com/privatenumber/tsx).


Updates `tsx` from 4.19.4 to 4.20.1
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.19.4...v4.20.1)

---
updated-dependencies:
- dependency-name: tsx
  dependency-version: 4.20.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-12 02:02:17 +00:00
Owen
8266c26ef1 Merge branch 'dev' into clients-pops 2025-06-11 11:38:01 -04:00
Owen Schwartz
5c682fe923 Merge pull request #891 from fosrl/crowdin_dev
New Crowdin updates
2025-06-11 11:36:50 -04:00
Owen Schwartz
100dd80764 New translations en-us.json (Turkish) 2025-06-11 11:35:48 -04:00
Owen
a59222cabb Merge branch 'dev' into clients-pops 2025-06-11 11:15:54 -04:00
Owen Schwartz
867f1bcc96 Merge pull request #890 from fosrl/crowdin_dev
New Crowdin updates
2025-06-11 11:15:13 -04:00
Owen
459bc32f9d Merge branch 'dev' into clients-pops 2025-06-11 11:13:40 -04:00
Owen Schwartz
78b38c91e7 New translations en-us.json (Chinese Simplified) 2025-06-11 11:09:45 -04:00
Owen Schwartz
2ee88d6a46 New translations en-us.json (German) 2025-06-11 11:09:40 -04:00
Owen Schwartz
8d651cd44d Merge pull request #669 from Lokowitz/feature-i18n
Feature i18n added
2025-06-11 10:47:13 -04:00
Owen
8aa95db9bc Adjust button and add profile translations 2025-06-11 10:00:38 -04:00
Owen
31a41576d8 Fix translation & add space 2025-06-11 09:37:21 -04:00
Owen
9a2022a4fe Working on new exit node picking 2025-06-11 09:13:38 -04:00
Marvin
335c9b1fea Update zh-CN.json 2025-06-11 07:50:46 +02:00
Marvin
b395b65b86 Update de-DE.json 2025-06-11 07:48:19 +02:00
Marvin
768e4745e1 New Crowdin updates (#184)
* New translations en-us.json (French)

* New translations en-us.json (Spanish)

* New translations en-us.json (German)

* New translations en-us.json (Italian)

* New translations en-us.json (Dutch)

* New translations en-us.json (Polish)

* New translations en-us.json (Portuguese)

* New translations en-us.json (Turkish)

* New translations en-us.json (Chinese Simplified)
2025-06-11 07:45:16 +02:00
Owen Schwartz
ba33064852 Merge pull request #885 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-45f2eb23f4
Bump @dotenvx/dotenvx from 1.44.1 to 1.44.2 in the dev-patch-updates group
2025-06-10 22:29:13 -04:00
dependabot[bot]
94b5aadd76 Bump @dotenvx/dotenvx in the dev-patch-updates group
Bumps the dev-patch-updates group with 1 update: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx).


Updates `@dotenvx/dotenvx` from 1.44.1 to 1.44.2
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.44.1...v1.44.2)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.44.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-11 01:41:04 +00:00
Owen
a65ea9c360 Merge branch 'dev' into Lokowitz-feature-i18n 2025-06-10 18:40:24 -04:00
Owen
a6afce5c0e Restore eslint 2025-06-10 18:38:11 -04:00
Owen
d26ec69445 Add quotes 2025-06-10 18:37:26 -04:00
Owen
3c2ea1a75f Add translation and fix ts issues 2025-06-10 18:34:04 -04:00
Owen
0537992603 Merge branch 'dev' into clients-pops 2025-06-10 13:00:20 -04:00
Owen Schwartz
6acc2b6a17 Merge pull request #871 from Lokowitz/feat-add-test
feat - add test action
2025-06-10 12:38:32 -04:00
Marvin
83b4976305 Update Dockerfile 2025-06-10 15:59:58 +02:00
Marvin
b1cbb1b50f Update Dockerfile.pg 2025-06-10 15:59:30 +02:00
Marvin
ff9e5a383b Update test.yml 2025-06-10 14:00:34 +02:00
Lokowitz
d66739f69e update proxy section in resource 2025-06-10 07:30:30 +00:00
Marvin
fc6c93a08a Update Dockerfile.pg 2025-06-10 08:49:56 +02:00
Marvin
9897c53ed3 Update Dockerfile 2025-06-10 08:49:48 +02:00
Marvin
ced34dd2c6 Update Dockerfile.pg 2025-06-10 08:47:25 +02:00
Marvin
92caac309a Update Dockerfile 2025-06-10 08:43:16 +02:00
Marvin
3c7a91a047 Update test.yml 2025-06-10 08:42:09 +02:00
Marvin
571db825ad Merge branch 'fosrl:main' into feat-add-test 2025-06-10 08:06:48 +02:00
Marvin
0ae5ac9947 Update de-DE.json 2025-06-10 07:50:11 +02:00
Marvin
cd35148e48 Update zh-CN.json 2025-06-10 07:48:36 +02:00
Marvin
19ccf098f0 New Crowdin updates (#179)
* New translations en-us.json (French)

* New translations en-us.json (German)

* New translations en-us.json (Italian)

* New translations en-us.json (Polish)

* New translations en-us.json (Portuguese)

* New translations en-us.json (Turkish)

* New translations en-us.json (Chinese Simplified)

* New translations en-us.json (Spanish)

* New translations en-us.json (Dutch)

* New translations en-us.json (French)

* New translations en-us.json (German)

* New translations en-us.json (Italian)

* New translations en-us.json (Polish)

* New translations en-us.json (Portuguese)

* New translations en-us.json (Spanish)

* New translations en-us.json (Dutch)
2025-06-10 07:45:23 +02:00
Timo
2b64c0e84e Update de-DE.json (#154)
Updated DE until Line 100
2025-06-10 07:29:02 +02:00
风间苏苏
d62a3c64cf feat(i18n): chinese i18n (#178) 2025-06-10 07:27:28 +02:00
Owen
3503cc3338 Merge branch 'main' into dev 2025-06-09 22:07:02 -04:00
Owen Schwartz
6d83e29ee2 Merge pull request #878 from thijsvanloef/fix/linting
Automate Linting, change linting slightly, and fix semi colon errors.
2025-06-09 22:04:06 -04:00
Owen Schwartz
5f9c9eed0a Merge pull request #880 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-ec219de246
Bump @types/react from 19.1.6 to 19.1.7 in the dev-patch-updates group
2025-06-09 22:03:06 -04:00
dependabot[bot]
97ef363461 Bump @types/react from 19.1.6 to 19.1.7 in the dev-patch-updates group
Bumps the dev-patch-updates group with 1 update: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react).


Updates `@types/react` from 19.1.6 to 19.1.7
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-10 01:20:20 +00:00
Owen
c67a2dfa73 Add sidebar - needs translations 2025-06-09 18:10:04 -04:00
Owen
f29a5ccc67 Translate sidebar 2025-06-09 18:04:45 -04:00
Thijs van Loef
cbca88f76b fix semi colons 2025-06-09 23:52:16 +02:00
Thijs van Loef
3ee9051bc1 change naming 2025-06-09 23:51:53 +02:00
Thijs van Loef
097dafb553 enable automated linting 2025-06-09 23:49:35 +02:00
Owen
915581dfe7 Add label 2025-06-09 17:42:28 -04:00
Owen
a2cf4ffac1 Remove old internationalization 2025-06-09 17:41:31 -04:00
Milo Schwartz
6b4e52a725 Merge pull request #877 from fosrl/dev
1.5.1
2025-06-09 17:40:35 -04:00
Owen
454d7c4a88 Update lock 2025-06-09 17:40:10 -04:00
Owen
cb85ad460e Remove redundant icons; make update selector 2025-06-09 17:39:29 -04:00
miloschwartz
e41eafd497 enhance link styling and bump traefik version 2025-06-09 17:38:18 -04:00
Owen Schwartz
d70396a664 Merge pull request #876 from thijsvanloef/fix/define-files-in-eslint
Add Typescript specific linting & define files in eslint
2025-06-09 17:15:23 -04:00
Thijs van Loef
3d59556bcd readd accidentally removed line 2025-06-09 22:38:38 +02:00
Thijs van Loef
c7018e92b0 Merge branch 'dev' into fix/define-files-in-eslint 2025-06-09 22:36:56 +02:00
Thijs van Loef
a575bace39 add typescript eslint 2025-06-09 22:32:38 +02:00
Thijs van Loef
2047aa30e1 add typescript specific linting 2025-06-09 22:25:27 +02:00
Thijs van Loef
3b10453af3 define files in eslint 2025-06-09 22:18:38 +02:00
Owen
363b8b52af Merge branch 'dev' into Lokowitz-feature-i18n 2025-06-09 14:53:32 -04:00
Owen
3257edc2a0 Add link to docs for newt 2025-06-09 14:23:53 -04:00
miloschwartz
cd54e7dd38 pick first port on select container 2025-06-09 13:01:53 -04:00
Owen
9177eaba22 Merge branch 'main' into dev 2025-06-09 11:22:35 -04:00
Owen Schwartz
33ae2e08cc Merge pull request #872 from Lokowitz/fix-dependabot
fix - dependabot
2025-06-09 11:17:45 -04:00
Owen Schwartz
4fc61386d3 Merge pull request #867 from thijsvanloef/fix-767/unit-aware-sorting
Fix - Sort Data In/Out correctly in Sites Management page in the Pangolin Dashboard
2025-06-09 11:17:15 -04:00
Owen
c409266954 Fix #860 2025-06-09 11:13:58 -04:00
Owen
57315a36ee Merge branch 'main' into dev 2025-06-09 11:07:42 -04:00
Owen Schwartz
63637b91a8 Merge pull request #874 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-637b1bbe0a
Bump the dev-patch-updates group across 1 directory with 4 updates
2025-06-09 11:06:32 -04:00
Owen Schwartz
09238cd98a Merge pull request #873 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-1931de1053
Bump zod from 3.25.46 to 3.25.56 in the prod-patch-updates group across 1 directory
2025-06-09 11:06:08 -04:00
Owen Schwartz
67b149ce4b Merge pull request #834 from fosrl/dependabot/npm_and_yarn/tar-fs-2.1.3
Bump tar-fs from 2.1.2 to 2.1.3
2025-06-09 11:05:24 -04:00
Thijs van Loef
96151de814 improve readability 2025-06-09 13:18:22 +02:00
Thijs van Loef
f2e461a1ee improve readability 2025-06-09 13:06:08 +02:00
dependabot[bot]
8125622c98 Bump the dev-patch-updates group across 1 directory with 4 updates
Bumps the dev-patch-updates group with 4 updates in the / directory: [@types/cookie-parser](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/cookie-parser), [@types/cors](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/cors), [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) and [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email).


Updates `@types/cookie-parser` from 1.4.8 to 1.4.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/cookie-parser)

Updates `@types/cors` from 2.8.18 to 2.8.19
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/cors)

Updates `@types/react-dom` from 19.1.5 to 19.1.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `react-email` from 4.0.15 to 4.0.16
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@4.0.16/packages/react-email)

---
updated-dependencies:
- dependency-name: "@types/cookie-parser"
  dependency-version: 1.4.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/cors"
  dependency-version: 2.8.19
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: react-email
  dependency-version: 4.0.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 02:06:40 +00:00
dependabot[bot]
1a6942ccc9 Bump zod in the prod-patch-updates group across 1 directory
Bumps the prod-patch-updates group with 1 update in the / directory: [zod](https://github.com/colinhacks/zod).


Updates `zod` from 3.25.46 to 3.25.56
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](https://github.com/colinhacks/zod/compare/v3.25.46...v3.25.56)

---
updated-dependencies:
- dependency-name: zod
  dependency-version: 3.25.56
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 02:05:59 +00:00
Marvin
7b0e1df778 Update dependabot.yml 2025-06-08 17:29:14 +02:00
Marvin
6f8c538086 Update Dockerfile 2025-06-08 16:57:01 +02:00
Marvin
b353a8f9b4 Update Makefile 2025-06-08 16:56:46 +02:00
Marvin
0eb35f2221 Create test.yml 2025-06-08 16:56:21 +02:00
Owen Schwartz
7d6b114d67 Merge pull request #869 from Lokowitz/fix-package
Fix - package-lock
2025-06-08 08:47:40 -04:00
Lokowitz
a169256770 update package-lock 2025-06-08 12:30:32 +00:00
Lokowitz
2e54afd72f rebuild package-lock 2025-06-08 12:26:52 +00:00
Thijs van Loef
26207bd951 add datasize helper and add correct sorting to sitestable 2025-06-08 00:07:49 +02:00
Owen
3ed681e277 Bump temp version 2025-06-06 12:16:58 -04:00
Owen
c135b5e3cf Dont request unless its a newt 2025-06-06 12:15:15 -04:00
Owen
e648307f0b Merge branch 'main' into dev 2025-06-06 12:04:24 -04:00
Owen Schwartz
0e4f35e87a Merge pull request #855 from Lokowitz/main
fix - removed package-lock.json from .gitignore
2025-06-06 12:00:49 -04:00
Marvin
553dffd4ee removed package-lock.json from .gitignore
update package-lock.json
2025-06-06 07:00:07 +00:00
风间苏苏
b4b19d2263 chore(i18n): partial Simplified Chinese localization (draft) (#143)
* Chinese i18n

* fix(i18n): corrected mislabeled language name from "中国人" to "简体中文"

* chore(i18n): initial Simplified Chinese translation
2025-06-06 08:29:49 +02:00
Marvin
c7c39676d1 add NL and ES
resolve conflicts
2025-06-06 06:06:56 +00:00
Marvin
a6348a3e28 Merge remote-tracking branch 'upstream/dev' into feature-i18n 2025-06-06 06:03:55 +00:00
Marvin
75212f1e05 New Crowdin updates (#153)
* New translations en-us.json (Spanish)

* New translations en-us.json (Dutch)
2025-06-06 07:55:44 +02:00
miloschwartz
c1fd38ac39 fix typo 2025-06-05 15:48:37 -04:00
miloschwartz
33e2798313 Merge branch 'main' into dev 2025-06-05 14:44:55 -04:00
miloschwartz
f0cb65f65c dont import db in nextjs 2025-06-05 14:44:34 -04:00
Marvin
e885676ad8 add chinese 2025-06-05 17:30:49 +00:00
Marvin
b75d0a921e resolve conflicts 2025-06-05 17:27:38 +00:00
Marvin
34fa5fe438 Merge remote-tracking branch 'upstream/dev' into feature-i18n 2025-06-05 17:27:13 +00:00
Marvin
c2449ce795 New translations en-us.json (Chinese Simplified) (#149) 2025-06-05 19:18:22 +02:00
Milo Schwartz
9bb6cb14a6 Merge pull request #843 from fosrl/dev
1.5.0
2025-06-05 12:11:47 -04:00
miloschwartz
b6f67e0f0b Merge branch 'main' into dev 2025-06-05 12:11:37 -04:00
miloschwartz
980545c636 dont throw if fail to migration config 2025-06-05 11:55:59 -04:00
miloschwartz
92135ff9c1 minor visal adjustments to docker container view 2025-06-05 11:51:48 -04:00
Marvin
dd7b91f770 Merge remote-tracking branch 'upstream/dev' into feature-i18n 2025-06-05 04:41:28 +00:00
Owen
ab843b1a43 Clean up unused 2025-06-04 17:42:19 -04:00
miloschwartz
4593edbb45 add get role to integration api 2025-06-04 17:28:46 -04:00
Owen
96b451843c Update placeholder 2025-06-04 17:27:10 -04:00
Owen
54aa3ce7d8 Comment the socket status for now 2025-06-04 17:18:42 -04:00
Owen
45a70152ee Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-06-04 17:17:56 -04:00
miloschwartz
8c5f00a446 remove .sqlite from Dockerfile 2025-06-04 17:17:18 -04:00
miloschwartz
af98610d0d fix migration number and add allowed_headers migration 2025-06-04 17:15:11 -04:00
Owen
875ec662ad Fix retry 2025-06-04 16:05:41 -04:00
Owen
8800ec9675 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-06-04 16:02:52 -04:00
Owen
df4da75c57 Dont do socket on non-newt sites 2025-06-04 16:02:45 -04:00
miloschwartz
717dfae26c look for ipv6 in brackets and fix cors headers in install config 2025-06-04 15:56:16 -04:00
Owen
58a2a9dcc9 Fix db import for pg 2025-06-04 15:24:15 -04:00
Owen
27a0df4ed4 Add migration for 1.4.0 2025-06-04 15:16:42 -04:00
Milo Schwartz
6fc6f325a7 Merge pull request #807 from pyrho/feat/auth-header
send user data to badger when authenticated
2025-06-04 12:17:23 -04:00
miloschwartz
b46e49922c Merge branch 'dev' into postgres 2025-06-04 12:04:28 -04:00
miloschwartz
2cca561e51 support postgresql as database option 2025-06-04 12:02:07 -04:00
Marvin
fbc1aa25a3 merge with dev and resolved confics 2025-06-04 09:01:43 +00:00
Marvin
e8870cf174 Merge remote-tracking branch 'upstream/dev' into feature-i18n 2025-06-04 09:01:37 +00:00
Owen
17919192e0 Speed up when the button shows 2025-06-03 21:04:08 -04:00
vlalx
d768bb163a I18n additionals (#125)
* New translation keys

* Updates in src/components

* Updates in src/providers

* remove lable in selector, not needed

---------

Co-authored-by: Lokowitz <marvinlokowitz@gmail.com>
2025-06-03 20:10:00 +02:00
vlalx
dc6fafba41 Fixes for build (#124) 2025-06-03 19:48:20 +02:00
dependabot[bot]
9f979c5019 Bump tar-fs from 2.1.2 to 2.1.3
Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 2.1.2 to 2.1.3.
- [Commits](https://github.com/mafintosh/tar-fs/commits)

---
updated-dependencies:
- dependency-name: tar-fs
  dependency-version: 2.1.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-03 09:32:28 +00:00
Owen Schwartz
c3d2c34279 Merge pull request #831 from TheresaQWQ/patch-1
fix typo
2025-06-02 22:42:17 -04:00
风间苏苏
430f187fde fix typo 2025-06-03 10:37:27 +08:00
Owen
f438d2ddbf Watch target inputs 2025-06-02 21:13:57 -04:00
Owen
6d519af198 Rollback select packages; update fav 2025-06-02 20:47:22 -04:00
Owen Schwartz
a34e88257d Merge pull request #823 from fosrl/dependabot/npm_and_yarn/multi-5726d3b8f4
Bump esbuild and drizzle-kit
2025-06-02 09:08:28 -04:00
Owen
ea0ab0e63c Merge branch 'dev' into improbableone-hub-dev 2025-06-01 23:31:11 -04:00
dependabot[bot]
80375cd0dc Bump esbuild and drizzle-kit
Bumps [esbuild](https://github.com/evanw/esbuild) to 0.25.2 and updates ancestor dependency [drizzle-kit](https://github.com/drizzle-team/drizzle-orm). These dependencies need to be updated together.


Updates `esbuild` from 0.18.20 to 0.25.2
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2023.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.18.20...v0.25.2)

Updates `drizzle-kit` from 0.30.6 to 0.31.1
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/drizzle-kit@0.30.6...drizzle-kit@0.31.1)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.25.2
  dependency-type: indirect
- dependency-name: drizzle-kit
  dependency-version: 0.31.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 03:26:24 +00:00
Owen
f817ba7664 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-06-01 23:19:18 -04:00
Owen
3398088e03 Merge branch 'Lokowitz-main' into dev 2025-06-01 23:18:58 -04:00
Owen
e586dd50f4 Merge branch 'main' of github.com:Lokowitz/pangolin into Lokowitz-main 2025-06-01 23:15:54 -04:00
Owen Schwartz
5a71c0ba65 Merge pull request #817 from PrtmPhlp/main
docker run command in detached mode
2025-06-01 22:32:22 -04:00
Marvin
f13b6abd78 Update dependabot.yml 2025-06-01 15:50:14 +02:00
Marvin
34c6b590d7 Update dependabot.yml 2025-06-01 15:47:54 +02:00
Marvin
ab797203eb Update dependabot.yml 2025-06-01 15:46:23 +02:00
Marvin
30e8b1f0fe Update dependabot.yml 2025-06-01 15:39:20 +02:00
dependabot[bot]
d03bee98f5 Bump yargs from 17.7.2 to 18.0.0 in the dev-major-updates group (#119)
Bumps the dev-major-updates group with 1 update: [yargs](https://github.com/yargs/yargs).


Updates `yargs` from 17.7.2 to 18.0.0
- [Release notes](https://github.com/yargs/yargs/releases)
- [Changelog](https://github.com/yargs/yargs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/yargs/yargs/compare/v17.7.2...v18.0.0)

---
updated-dependencies:
- dependency-name: yargs
  dependency-version: 18.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-01 15:25:08 +02:00
dependabot[bot]
fa365fb7b8 Bump the dev-minor-updates group with 4 updates (#118)
Bumps the dev-minor-updates group with 4 updates: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [drizzle-kit](https://github.com/drizzle-team/drizzle-orm) and [typescript](https://github.com/microsoft/TypeScript).


Updates `@dotenvx/dotenvx` from 1.32.0 to 1.44.1
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.32.0...v1.44.1)

Updates `@types/node` from 22.10.10 to 22.15.29
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `drizzle-kit` from 0.30.6 to 0.31.1
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/drizzle-kit@0.30.6...drizzle-kit@0.31.1)

Updates `typescript` from 5.7.3 to 5.8.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.3...v5.8.3)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.44.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: "@types/node"
  dependency-version: 22.15.29
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: drizzle-kit
  dependency-version: 0.31.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: typescript
  dependency-version: 5.8.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-01 15:16:59 +02:00
dependabot[bot]
ea1cd4b0d4 Bump the prod-minor-updates group with 27 updates (#121)
* Bump the prod-minor-updates group with 27 updates

Bumps the prod-minor-updates group with 27 updates:

| Package | From | To |
| --- | --- | --- |
| [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives) | `1.1.3` | `1.3.2` |
| [@radix-ui/react-radio-group](https://github.com/radix-ui/primitives) | `1.2.2` | `1.3.7` |
| [@radix-ui/react-select](https://github.com/radix-ui/primitives) | `2.1.4` | `2.2.5` |
| [@radix-ui/react-slot](https://github.com/radix-ui/primitives) | `1.1.1` | `1.2.3` |
| [@radix-ui/react-switch](https://github.com/radix-ui/primitives) | `1.1.2` | `1.2.5` |
| [@react-email/render](https://github.com/resend/react-email/tree/HEAD/packages/render) | `1.0.6` | `1.1.2` |
| [@tanstack/react-table](https://github.com/TanStack/table/tree/HEAD/packages/react-table) | `8.20.6` | `8.21.3` |
| [arctic](https://github.com/pilcrowonpaper/arctic) | `3.6.0` | `3.7.0` |
| [axios](https://github.com/axios/axios) | `1.8.4` | `1.9.0` |
| [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) | `11.7.0` | `11.10.0` |
| [cmdk](https://github.com/pacocoursey/cmdk/tree/HEAD/cmdk) | `1.0.4` | `1.1.1` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.38.3` | `0.44.1` |
| [eslint](https://github.com/eslint/eslint) | `9.17.0` | `9.28.0` |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `15.1.3` | `15.3.3` |
| [helmet](https://github.com/helmetjs/helmet) | `8.0.0` | `8.1.0` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.469.0` | `0.511.0` |
| [next](https://github.com/vercel/next.js) | `15.2.4` | `15.3.3` |
| [npm](https://github.com/npm/cli) | `11.2.0` | `11.4.1` |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.0.0` | `19.1.0` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.1.1` | `19.1.6` |
| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.0.0` | `19.1.0` |
| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.1.2` | `19.1.5` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.54.2` | `7.56.4` |
| [semver](https://github.com/npm/node-semver) | `7.6.3` | `7.7.2` |
| [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) | `7.5.8` | `7.7.0` |
| [tw-animate-css](https://github.com/Wombosvideo/tw-animate-css) | `1.2.8` | `1.3.2` |
| [zod](https://github.com/colinhacks/zod) | `3.24.1` | `3.25.46` |


Updates `@radix-ui/react-checkbox` from 1.1.3 to 1.3.2
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-radio-group` from 1.2.2 to 1.3.7
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-select` from 2.1.4 to 2.2.5
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-slot` from 1.1.1 to 1.2.3
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-switch` from 1.1.2 to 1.2.5
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@react-email/render` from 1.0.6 to 1.1.2
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/render/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/render@1.1.2/packages/render)

Updates `@tanstack/react-table` from 8.20.6 to 8.21.3
- [Release notes](https://github.com/TanStack/table/releases)
- [Commits](https://github.com/TanStack/table/commits/v8.21.3/packages/react-table)

Updates `arctic` from 3.6.0 to 3.7.0
- [Release notes](https://github.com/pilcrowonpaper/arctic/releases)
- [Commits](https://github.com/pilcrowonpaper/arctic/compare/v3.6.0...v3.7.0)

Updates `axios` from 1.8.4 to 1.9.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.8.4...v1.9.0)

Updates `better-sqlite3` from 11.7.0 to 11.10.0
- [Release notes](https://github.com/WiseLibs/better-sqlite3/releases)
- [Commits](https://github.com/WiseLibs/better-sqlite3/compare/v11.7.0...v11.10.0)

Updates `cmdk` from 1.0.4 to 1.1.1
- [Release notes](https://github.com/pacocoursey/cmdk/releases)
- [Commits](https://github.com/pacocoursey/cmdk/commits/v1.1.1/cmdk)

Updates `drizzle-orm` from 0.38.3 to 0.44.1
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.38.3...0.44.1)

Updates `eslint` from 9.17.0 to 9.28.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.17.0...v9.28.0)

Updates `eslint-config-next` from 15.1.3 to 15.3.3
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v15.3.3/packages/eslint-config-next)

Updates `helmet` from 8.0.0 to 8.1.0
- [Changelog](https://github.com/helmetjs/helmet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/helmetjs/helmet/compare/v8.0.0...v8.1.0)

Updates `lucide-react` from 0.469.0 to 0.511.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.511.0/packages/lucide-react)

Updates `next` from 15.2.4 to 15.3.3
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.2.4...v15.3.3)

Updates `npm` from 11.2.0 to 11.4.1
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v11.2.0...v11.4.1)

Updates `react` from 19.0.0 to 19.1.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.1.0/packages/react)

Updates `@types/react` from 19.1.1 to 19.1.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `react-dom` from 19.0.0 to 19.1.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.1.0/packages/react-dom)

Updates `@types/react-dom` from 19.1.2 to 19.1.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `react-hook-form` from 7.54.2 to 7.56.4
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.54.2...v7.56.4)

Updates `semver` from 7.6.3 to 7.7.2
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.6.3...v7.7.2)

Updates `@types/semver` from 7.5.8 to 7.7.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

Updates `tw-animate-css` from 1.2.8 to 1.3.2
- [Release notes](https://github.com/Wombosvideo/tw-animate-css/releases)
- [Commits](https://github.com/Wombosvideo/tw-animate-css/compare/v1.2.8...v1.3.2)

Updates `zod` from 3.24.1 to 3.25.46
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](https://github.com/colinhacks/zod/compare/v3.24.1...v3.25.46)

---
updated-dependencies:
- dependency-name: "@radix-ui/react-checkbox"
  dependency-version: 1.3.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@radix-ui/react-radio-group"
  dependency-version: 1.3.7
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@radix-ui/react-select"
  dependency-version: 2.2.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@radix-ui/react-slot"
  dependency-version: 1.2.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@radix-ui/react-switch"
  dependency-version: 1.2.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@react-email/render"
  dependency-version: 1.1.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@tanstack/react-table"
  dependency-version: 8.21.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: arctic
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: axios
  dependency-version: 1.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: better-sqlite3
  dependency-version: 11.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: cmdk
  dependency-version: 1.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: drizzle-orm
  dependency-version: 0.44.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint
  dependency-version: 9.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint-config-next
  dependency-version: 15.3.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: helmet
  dependency-version: 8.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.511.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: next
  dependency-version: 15.3.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: npm
  dependency-version: 11.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react
  dependency-version: 19.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@types/react"
  dependency-version: 19.1.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: prod-minor-updates
- dependency-name: react-dom
  dependency-version: 19.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.56.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: semver
  dependency-version: 7.7.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@types/semver"
  dependency-version: 7.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: tw-animate-css
  dependency-version: 1.3.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: zod
  dependency-version: 3.25.46
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

* modified:   package-lock.json
	modified:   package.json

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marvin <127591405+Lokowitz@users.noreply.github.com>
2025-06-01 15:07:49 +02:00
dependabot[bot]
be0c7444e9 Bump node from 20-alpine to 24-alpine in the major-updates group (#111)
Bumps the major-updates group with 1 update: node.


Updates `node` from 20-alpine to 24-alpine

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24-alpine
  dependency-type: direct:production
  dependency-group: major-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-01 14:12:08 +02:00
dependabot[bot]
858c809514 Bump the dev-patch-updates group with 8 updates (#117)
Bumps the dev-patch-updates group with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.1.4` | `4.1.8` |
| [@types/cors](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/cors) | `2.8.17` | `2.8.18` |
| [esbuild](https://github.com/evanw/esbuild) | `0.25.2` | `0.25.5` |
| [postcss](https://github.com/postcss/postcss) | `8.5.1` | `8.5.4` |
| [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email) | `4.0.6` | `4.0.15` |
| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.1.4` | `4.1.8` |
| [tsc-alias](https://github.com/justkey007/tsc-alias) | `1.8.10` | `1.8.16` |
| [tsx](https://github.com/privatenumber/tsx) | `4.19.3` | `4.19.4` |


Updates `@tailwindcss/postcss` from 4.1.4 to 4.1.8
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.8/packages/@tailwindcss-postcss)

Updates `@types/cors` from 2.8.17 to 2.8.18
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/cors)

Updates `esbuild` from 0.25.2 to 0.25.5
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.2...v0.25.5)

Updates `postcss` from 8.5.1 to 8.5.4
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.1...8.5.4)

Updates `react-email` from 4.0.6 to 4.0.15
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@4.0.15/packages/react-email)

Updates `tailwindcss` from 4.1.4 to 4.1.8
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.8/packages/tailwindcss)

Updates `tsc-alias` from 1.8.10 to 1.8.16
- [Release notes](https://github.com/justkey007/tsc-alias/releases)
- [Commits](https://github.com/justkey007/tsc-alias/compare/v1.8.10...v1.8.16)

Updates `tsx` from 4.19.3 to 4.19.4
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.19.3...v4.19.4)

---
updated-dependencies:
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/cors"
  dependency-version: 2.8.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.25.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: postcss
  dependency-version: 8.5.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: react-email
  dependency-version: 4.0.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tsc-alias
  dependency-version: 1.8.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tsx
  dependency-version: 4.19.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-01 14:11:51 +02:00
dependabot[bot]
10ff2c8a65 Bump the prod-patch-updates group with 19 updates (#120)
Bumps the prod-patch-updates group with 19 updates:

| Package | From | To |
| --- | --- | --- |
| [@asteasolutions/zod-to-openapi](https://github.com/asteasolutions/zod-to-openapi) | `7.3.0` | `7.3.2` |
| [@radix-ui/react-avatar](https://github.com/radix-ui/primitives) | `1.1.2` | `1.1.10` |
| [@radix-ui/react-collapsible](https://github.com/radix-ui/primitives) | `1.1.2` | `1.1.11` |
| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives) | `1.1.4` | `1.1.14` |
| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives) | `2.1.4` | `2.1.15` |
| [@radix-ui/react-label](https://github.com/radix-ui/primitives) | `2.1.1` | `2.1.7` |
| [@radix-ui/react-popover](https://github.com/radix-ui/primitives) | `1.1.4` | `1.1.14` |
| [@radix-ui/react-progress](https://github.com/radix-ui/primitives) | `1.1.4` | `1.1.7` |
| [@radix-ui/react-separator](https://github.com/radix-ui/primitives) | `1.1.1` | `1.1.7` |
| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives) | `1.1.2` | `1.1.12` |
| [@radix-ui/react-toast](https://github.com/radix-ui/primitives) | `1.2.4` | `1.2.14` |
| [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components) | `0.0.36` | `0.0.41` |
| [@react-email/tailwind](https://github.com/resend/react-email/tree/HEAD/packages/tailwind) | `1.0.4` | `1.0.5` |
| [glob](https://github.com/isaacs/node-glob) | `11.0.0` | `11.0.2` |
| [input-otp](https://github.com/guilhermerodz/input-otp/tree/HEAD/packages/input-otp) | `1.4.1` | `1.4.2` |
| [next-themes](https://github.com/pacocoursey/next-themes) | `0.4.4` | `0.4.6` |
| [ws](https://github.com/websockets/ws) | `8.18.0` | `8.18.2` |
| [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) | `8.5.13` | `8.18.1` |
| [zod-validation-error](https://github.com/causaly/zod-validation-error) | `3.4.0` | `3.4.1` |


Updates `@asteasolutions/zod-to-openapi` from 7.3.0 to 7.3.2
- [Release notes](https://github.com/asteasolutions/zod-to-openapi/releases)
- [Commits](https://github.com/asteasolutions/zod-to-openapi/compare/v7.3.0...v7.3.2)

Updates `@radix-ui/react-avatar` from 1.1.2 to 1.1.10
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-collapsible` from 1.1.2 to 1.1.11
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-dialog` from 1.1.4 to 1.1.14
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-dropdown-menu` from 2.1.4 to 2.1.15
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-label` from 2.1.1 to 2.1.7
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-popover` from 1.1.4 to 1.1.14
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-progress` from 1.1.4 to 1.1.7
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-separator` from 1.1.1 to 1.1.7
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-tabs` from 1.1.2 to 1.1.12
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-toast` from 1.2.4 to 1.2.14
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@react-email/components` from 0.0.36 to 0.0.41
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/components/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@0.0.41/packages/components)

Updates `@react-email/tailwind` from 1.0.4 to 1.0.5
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/tailwind/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/tailwind@1.0.5/packages/tailwind)

Updates `glob` from 11.0.0 to 11.0.2
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.0...v11.0.2)

Updates `input-otp` from 1.4.1 to 1.4.2
- [Changelog](https://github.com/guilhermerodz/input-otp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guilhermerodz/input-otp/commits/HEAD/packages/input-otp)

Updates `next-themes` from 0.4.4 to 0.4.6
- [Release notes](https://github.com/pacocoursey/next-themes/releases)
- [Commits](https://github.com/pacocoursey/next-themes/compare/v0.4.4...v0.4.6)

Updates `ws` from 8.18.0 to 8.18.2
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.18.0...8.18.2)

Updates `@types/ws` from 8.5.13 to 8.18.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ws)

Updates `zod-validation-error` from 3.4.0 to 3.4.1
- [Release notes](https://github.com/causaly/zod-validation-error/releases)
- [Changelog](https://github.com/causaly/zod-validation-error/blob/main/CHANGELOG.md)
- [Commits](https://github.com/causaly/zod-validation-error/compare/v3.4.0...v3.4.1)

---
updated-dependencies:
- dependency-name: "@asteasolutions/zod-to-openapi"
  dependency-version: 7.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-avatar"
  dependency-version: 1.1.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-collapsible"
  dependency-version: 1.1.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-dialog"
  dependency-version: 1.1.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-dropdown-menu"
  dependency-version: 2.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-label"
  dependency-version: 2.1.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-popover"
  dependency-version: 1.1.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-progress"
  dependency-version: 1.1.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-separator"
  dependency-version: 1.1.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-tabs"
  dependency-version: 1.1.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-toast"
  dependency-version: 1.2.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@react-email/components"
  dependency-version: 0.0.41
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@react-email/tailwind"
  dependency-version: 1.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: glob
  dependency-version: 11.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: input-otp
  dependency-version: 1.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: next-themes
  dependency-version: 0.4.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: ws
  dependency-version: 8.18.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@types/ws"
  dependency-version: 8.18.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: prod-patch-updates
- dependency-name: zod-validation-error
  dependency-version: 3.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-01 14:08:55 +02:00
PrtmPhlp
167d0b6867 unnecessary file 2025-06-01 12:19:09 +02:00
PrtmPhlp
8c121daf6c docker run command in detached mode 2025-06-01 12:15:14 +02:00
Marvin
a23d437bd3 Create dependabot.yml 2025-06-01 11:01:55 +02:00
Owen
cd280d1396 Also start the service 2025-05-31 11:02:53 -04:00
Owen
d18200739a Check if docker is running 2025-05-31 11:01:03 -04:00
Owen
a62b2e8d10 Use 41 for dnf5 2025-05-31 10:56:38 -04:00
Owen Schwartz
c92069a1f4 Merge pull request #796 from socheatsok78/non-root-installer
Allow installer to run without requires `sudo`
2025-05-31 10:48:47 -04:00
Damien Rajon
c5e37c1608 send user data to badger when authenticated 2025-05-30 20:37:21 +02:00
Rajesh V
948eb7f6d0 docker socket 2025-05-29 22:34:05 +05:30
miloschwartz
62a0104e70 Merge branch 'dev' into postgres 2025-05-29 12:09:56 -04:00
miloschwartz
6dd8db5cd1 add new logo 2025-05-29 12:09:49 -04:00
Socheat Sok
9ea7275371 Ensure installer check if current user is in docker group 2025-05-29 22:49:42 +07:00
Socheat Sok
c997b8625f Re: "Allow installer to run without sudo & only need it when need to install Docker" 2025-05-29 21:55:50 +07:00
Socheat Sok
6f3514199a Revert "Allow installer to run without sudo & only need it when need to install Docker"
This reverts commit 56fd366a7d.
2025-05-29 21:45:57 +07:00
Owen
0cfc4d7dad Update for new dnf 2025-05-29 10:40:15 -04:00
Socheat Sok
56fd366a7d Allow installer to run without sudo & only need it when need to install Docker 2025-05-29 16:05:31 +07:00
Owen
1c18b2bffb Create redis connection 2025-05-28 20:59:06 -04:00
Owen
23b5dcfbed Update readme 2025-05-27 20:47:23 -04:00
Owen
d523ebe0e0 Merge branch 'dev' into auth-providers-clients 2025-05-27 20:46:09 -04:00
miloschwartz
30ebbaaef0 Merge branch 'dev' into postgres 2025-05-27 17:19:43 -04:00
Marvin
dba5a73e0e New Crowdin updates (#28)
* New translations en-us.json (French)

* New translations en-us.json (German)

* New translations en-us.json (Italian)

* New translations en-us.json (Polish)

* New translations en-us.json (Portuguese)

* New translations en-us.json (Turkish)

* New translations en-us.json (French)

* New translations en-us.json (German)

* New translations en-us.json (Italian)

* New translations en-us.json (Polish)

* New translations en-us.json (Portuguese)
2025-05-25 21:09:05 +02:00
Lokowitz
f07e8d08c3 update all 2025-05-25 19:01:20 +00:00
vlalx
ea24759bb3 I18n components (#27)
* New translation keys in en-US locale

* New translation keys in de-DE locale

* New translation keys in fr-FR locale

* New translation keys in it-IT locale

* New translation keys in pl-PL locale

* New translation keys in pt-PT locale

* New translation keys in tr-TR locale

* Move into function

* Replace string matching to boolean check

* Add FIXIT in UsersTable

* Use localization for size units

* Missed and restored translation keys

* fixup! New translation keys in tr-TR locale

* Add translation keys in components
2025-05-25 16:41:38 +02:00
Owen Schwartz
b467d6afa1 Merge pull request #779 from jpgnz/main
README.md - Append https:// to geoblock
2025-05-24 23:59:11 -04:00
James Graham
373441b7ab Fix geolock url in README.md
Geoblock url needed https:// appended
2025-05-25 13:36:44 +12:00
Marvin
af3694da34 New Crowdin updates (#26)
* New translations en-us.json (French)

* New translations en-us.json (German)

* New translations en-us.json (Italian)

* New translations en-us.json (Polish)

* New translations en-us.json (Portuguese)

* New translations en-us.json (Turkish)

* New translations en-us.json (French)

* New translations en-us.json (German)

* New translations en-us.json (Italian)

* New translations en-us.json (Polish)

* New translations en-us.json (Portuguese)

* New translations en-us.json (Turkish)

* New translations en-us.json (French)

* New translations en-us.json (German)

* New translations en-us.json (Italian)

* New translations en-us.json (Polish)

* New translations en-us.json (Portuguese)
2025-05-17 22:39:07 +02:00
Lokowitz
ae4ef4eb99 modified: messages/en-US.json
modified:   src/components/tags/autocomplete.tsx
2025-05-17 20:34:01 +00:00
Lokowitz
547e777eb0 more fixes 2025-05-17 20:16:26 +00:00
Lokowitz
d9ee40c898 more fixes 2025-05-17 20:04:56 +00:00
Lokowitz
eff812eaa8 first fixes 2025-05-17 18:17:22 +00:00
vlalx
731ec1da69 I18n app other (#24)
* New translation keys in en-US locale

* New translation keys in de-DE locale

* New translation keys in fr-FR locale

* New translation keys in it-IT locale

* New translation keys in pl-PL locale

* New translation keys in pt-PT locale

* New translation keys in tr-TR locale

* Add translation keys in app/invite, app/setup and other files

* Fix build

---------

Co-authored-by: Lokowitz <marvinlokowitz@gmail.com>
2025-05-17 18:23:34 +02:00
vlalx
b8ed5ac1c5 I18n auth (#23)
* New translation keys in en-US locale

* New translation keys in de-DE locale

* New translation keys in fr-FR locale

* New translation keys in it-IT locale

* New translation keys in pl-PL locale

* New translation keys in pt-PT locale

* New translation keys in tr-TR locale

* Add translation keys in app/auth

* Fix build

---------

Co-authored-by: Lokowitz <marvinlokowitz@gmail.com>
2025-05-17 18:11:56 +02:00
vlalx
d2d84be99a I18n admin (#22)
* New translation keys in en-US locale

* New translation keys in de-DE locale

* New translation keys in fr-FR locale

* New translation keys in it-IT locale

* New translation keys in pl-PL locale

* New translation keys in pt-PT locale

* New translation keys in tr-TR locale

* Add translation keys in app/admin

* Fix build

---------

Co-authored-by: Lokowitz <marvinlokowitz@gmail.com>
2025-05-17 18:04:19 +02:00
vlalx
96bfc3cf36 I18n orgId/settings (#21)
* New translation keys in en-US locale

* New translation keys in de-DE locale

* New translation keys in fr-FR locale

* New translation keys in it-IT locale

* New translation keys in pl-PL locale

* New translation keys in pt-PT locale

* New translation keys in tr-TR locale

* Add translation keys if settings/resources/resourceId/authentication

* New translation keys in en-US locale

* New translation keys in de-DE locale

* New translation keys in fr-FR locale

* New translation keys in it-IT locale

* New translation keys in pl-PL locale

* New translation keys in pt-PT locale

* New translation keys in tr-TR locale

* Add translation keys if settings/resources/resourceId/general

* Small naming fix

* New translation keys in en-US locale

* New translation keys in de-DE locale

* New translation keys in fr-FR locale

* New translation keys in it-IT locale

* New translation keys in pl-PL locale

* New translation keys in pt-PT locale

* New translation keys in tr-TR locale

* Add translation keys if settings/access/roles

* New translation keys in en-US locale

* New translation keys in de-DE locale

* New translation keys in fr-FR locale

* New translation keys in it-IT locale

* New translation keys in pl-PL locale

* New translation keys in pt-PT locale

* New translation keys in tr-TR locale

* Add translation keys in orgId/settings

* Fixes after merge

* Fixes after merge

* Fixes after merge

* Small fix

* Fix build
2025-05-17 17:49:01 +02:00
Lokowitz
6f54e3da9e New translations en-us.json (German) 2025-05-17 15:39:40 +00:00
Owen Schwartz
825730052b Merge pull request #736 from TuncTaylan/traefik-log-rotation
traefik log rotation with default values
2025-05-16 10:28:48 -04:00
Owen Schwartz
edc8716297 Merge pull request #735 from TuncTaylan/traefik-update
update to traefik v3.4.0
2025-05-16 10:27:50 -04:00
Taylan
3ee4aaf194 log rotation with default values 2025-05-16 09:20:40 +02:00
Taylan
b9a5d486b9 update to v3.4.0 2025-05-16 09:16:49 +02:00
miloschwartz
d3b9363392 Merge branch 'dev' into auth-providers-clients 2025-05-13 15:08:46 -04:00
miloschwartz
dc66ebeed6 Merge branch 'dev' into postgres 2025-05-13 15:08:05 -04:00
Milo Schwartz
1f584bf3e8 Merge pull request #717 from fosrl/dev
1.4.0
2025-05-13 11:12:03 -04:00
miloschwartz
5b0200154a add feature parity 2025-05-13 11:09:38 -04:00
miloschwartz
1e55d96376 add different driver 2025-05-12 17:21:03 -04:00
Owen
285b99f1b7 Can adjust sites 2025-05-11 12:29:58 -04:00
Owen
8ad8f98f48 Able to update sites from the frontend 2025-05-11 11:11:27 -04:00
Owen
160a7ff3db Merge branch 'dev' into auth-providers-clients 2025-05-11 10:31:29 -04:00
Milo Schwartz
a512148348 Merge pull request #701 from fosrl/dev
1.3.2
2025-05-10 11:30:07 -04:00
miloschwartz
d9eccd6c13 bump version 2025-05-10 11:28:22 -04:00
Lokowitz
1f95d7161a fixes for invitations 2025-05-10 14:20:21 +00:00
Marvin
3a1f4d7545 Merge pull request #17 from vlalx/i18n_invitations
I18n invitations
2025-05-10 16:17:40 +02:00
miloschwartz
492669f68a set default congig values 2025-05-09 18:32:14 -04:00
miloschwartz
caded23b51 allow root path 2025-05-09 17:37:55 -04:00
miloschwartz
e9cc48a3ae fix bug causing duplicate targets 2025-05-09 17:18:42 -04:00
miloschwartz
4ed98c227b fix setting tlsServerName and hostHeader conflict 2025-05-09 17:12:01 -04:00
miloschwartz
f66fb7d4a3 fix justification for profile icon 2025-05-09 17:09:22 -04:00
miloschwartz
f25990a9a7 add id token and claims to debug logs 2025-05-09 16:46:51 -04:00
miloschwartz
21d5b67ef1 Merge branch 'main' into dev 2025-05-09 16:44:09 -04:00
Milo Schwartz
198810121c Update README.md 2025-05-09 16:44:01 -04:00
vlalx
408822ab7f Fix missed translation keys 2025-05-09 20:03:32 +03:00
vlalx
840d5c2b66 Add translation keys in settings/access/invitations 2025-05-07 17:46:16 +03:00
vlalx
491b4e7b18 New translation keys in tr-TR locale 2025-05-07 17:45:12 +03:00
vlalx
89729a451c New translation keys in pt-PT locale 2025-05-07 17:44:56 +03:00
vlalx
0fd3271ef4 New translation keys in pl-PL locale 2025-05-07 17:44:46 +03:00
vlalx
fa21934d5d New translation keys in it-IT locale 2025-05-07 17:44:36 +03:00
vlalx
f91a4e88d5 New translation keys in fr-FR locale 2025-05-07 17:43:51 +03:00
vlalx
3e9dc4753b New translation keys in de-DE locale 2025-05-07 17:43:42 +03:00
vlalx
b03415a0eb New translation keys in en-US locale 2025-05-07 17:43:17 +03:00
Marvin
a8e8676b0a Merge pull request #16 from vlalx/i18n_admin_api_keys
i18n in admin/api-keys
2025-05-06 14:10:27 +02:00
vlalx
8242a66b97 Add translation keys in admin/api-keys 2025-05-06 15:02:23 +03:00
vlalx
d994a8100d Add missed translation keys in settings/api-keys 2025-05-06 15:02:21 +03:00
vlalx
1ee8561e2a New translation keys in tr-TR locale 2025-05-06 15:00:21 +03:00
vlalx
bb7421c54e New translation keys in pt-PT locale 2025-05-06 15:00:07 +03:00
vlalx
99352aa2a9 New translation keys in pl-PL locale 2025-05-06 14:59:52 +03:00
vlalx
31d54eb63c New translation keys in it-IT locale 2025-05-06 14:59:41 +03:00
vlalx
58c12996f1 New translation keys in fr-FR locale 2025-05-06 14:59:24 +03:00
vlalx
3dba4aa36d New translation keys in de-DE locale 2025-05-06 14:59:11 +03:00
vlalx
d88fc132cc New translation keys in en-US locale 2025-05-06 14:58:41 +03:00
Lokowitz
c6ff868be8 modified: src/app/setup/page.tsx 2025-05-06 10:25:00 +00:00
Marvin
e8d2cde465 Merge pull request #15 from Lokowitz/translations_new_i18n
New Crowdin updates
2025-05-06 12:14:20 +02:00
Marvin
2bd06ff493 New translations en-us.json (Turkish) 2025-05-06 12:13:19 +02:00
Marvin
75dc6edd51 New translations en-us.json (Portuguese) 2025-05-06 12:13:18 +02:00
Marvin
afc6ee596d New translations en-us.json (Polish) 2025-05-06 12:13:17 +02:00
Marvin
d47c2f9dcf New translations en-us.json (Italian) 2025-05-06 12:13:17 +02:00
Marvin
23f9d314df New translations en-us.json (German) 2025-05-06 12:13:16 +02:00
Marvin
cae4f5d840 New translations en-us.json (French) 2025-05-06 12:13:15 +02:00
Lokowitz
1e72b0f854 add admin/license i18n 2025-05-06 09:41:44 +00:00
Lokowitz
4dd9f4736d add admin/user i18n 2025-05-06 06:49:47 +00:00
Marvin
e38941adf1 Merge pull request #14 from vlalx/support_i18n
api keys
2025-05-06 07:21:55 +02:00
vlalx
b9c7c8c966 api keys 2025-05-06 06:33:43 +03:00
Lokowitz
87b95986c3 ... 2025-05-05 19:37:23 +00:00
Marvin
e48a0fcabc Merge pull request #12 from Lokowitz/translations_i18n
New Crowdin updates
2025-05-05 21:34:53 +02:00
Marvin
e9e9478f6c New translations en-us.json (Portuguese) 2025-05-05 21:33:43 +02:00
Marvin
bc050097c3 New translations en-us.json (Polish) 2025-05-05 21:33:41 +02:00
Marvin
dde2f45669 New translations en-us.json (Italian) 2025-05-05 21:33:39 +02:00
Marvin
f62f2e3b08 New translations en-us.json (French) 2025-05-05 21:33:38 +02:00
Marvin
0b235f985f New translations en-us.json (German) 2025-05-05 21:33:37 +02:00
Marvin
bb0c1c839b New translations en-us.json (Turkish) 2025-05-05 21:26:42 +02:00
Marvin
4e02a7712a New translations en-us.json (Portuguese) 2025-05-05 21:26:41 +02:00
Marvin
8df01208e0 New translations en-us.json (Polish) 2025-05-05 21:26:40 +02:00
Marvin
938cc31b8a New translations en-us.json (Italian) 2025-05-05 21:26:39 +02:00
Marvin
08bd3cfd0b New translations en-us.json (French) 2025-05-05 21:26:38 +02:00
Marvin
3bb4b44f19 New translations en-us.json (German) 2025-05-05 21:26:35 +02:00
Lokowitz
a058f4acf3 complete sites i18n 2025-05-05 19:24:14 +00:00
Marvin
55222450f3 New translations en-us.json (Turkish) 2025-05-05 18:18:45 +02:00
Marvin
17789ef1a5 New translations en-us.json (Portuguese) 2025-05-05 18:18:44 +02:00
Marvin
dd24b4ad74 New translations en-us.json (Polish) 2025-05-05 18:18:43 +02:00
Marvin
6b8fa28308 New translations en-us.json (Italian) 2025-05-05 18:18:42 +02:00
Marvin
d9aab7b3ff New translations en-us.json (French) 2025-05-05 18:18:41 +02:00
Marvin
5b44f3552d New translations en-us.json (German) 2025-05-05 18:18:40 +02:00
Lokowitz
fa1997adc1 complete share link i18n 2025-05-05 16:10:08 +00:00
Marvin
29375385c0 Create de-DE.json 2025-05-04 19:41:09 +02:00
Marvin
4f5c3a86ff Merge pull request #11 from Lokowitz/translations_i18n
Translations i18n
2025-05-04 19:40:27 +02:00
Marvin
6e5391cb8f Delete messages/de-DE.json 2025-05-04 19:40:10 +02:00
Lokowitz
3d4b9d48e3 modified: src/components/LocaleSwitcher.tsx
modified:   src/i18n/config.ts
2025-05-04 17:20:01 +00:00
Marvin
aca1cc0518 New translations en-us.json (Turkish) 2025-05-04 19:15:33 +02:00
Marvin
2543bf356c New translations en-us.json (Portuguese) 2025-05-04 19:15:33 +02:00
Marvin
95fed840d4 New translations en-us.json (Polish) 2025-05-04 19:15:32 +02:00
Marvin
8a377d73fd New translations en-us.json (Italian) 2025-05-04 19:15:31 +02:00
Marvin
576fda2357 New translations en-us.json (French) 2025-05-04 19:15:30 +02:00
Marvin
230c08e541 New translations en-us.json (German) 2025-05-04 19:15:29 +02:00
Lokowitz
9e572685ba deleted: messages/de-DE.json 2025-05-04 17:00:29 +00:00
Marvin
7f4135e0cf New translations en-us.json (German) 2025-05-04 18:58:14 +02:00
Lokowitz
9d68c5666f remove language translation 2025-05-04 16:35:43 +00:00
Lokowitz
d460dd35c7 deleted: messages/de-DE.json 2025-05-04 16:29:47 +00:00
Lokowitz
059081ad8b more i18n 2025-05-04 16:23:08 +00:00
Lokowitz
7eb08474ff Add first i18n stuff 2025-05-04 15:11:42 +00:00
Owen
83c0379c6b Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-05-03 22:04:29 -04:00
Milo Schwartz
21f1326045 Merge pull request #651 from fosrl/dev
Dev
2025-05-03 13:07:18 -04:00
miloschwartz
f62e32724c Merge branch 'main' into dev 2025-05-03 12:43:50 -04:00
miloschwartz
5e052a446a 1.3.1 2025-05-03 12:25:02 -04:00
Owen
a76dd9c9d1 Merge branch 'dev' into auth-providers-clients 2025-05-03 11:45:11 -04:00
Owen
9a167b5acb Dont overwrite the secret and crowdsec vars 2025-05-02 14:16:10 -04:00
Milo Schwartz
5d2f3186cc Update README.md 2025-05-02 12:25:49 -04:00
miloschwartz
e58d10fc53 fix login form ts error 2025-05-02 11:05:20 -04:00
Milo Schwartz
4392bb604c Merge pull request #636 from fosrl/dev
1.3.0
2025-05-02 10:55:35 -04:00
Milo Schwartz
5a4a6655a5 Merge branch 'main' into dev 2025-05-02 10:55:21 -04:00
miloschwartz
a20befd89f add secret to example config 2025-05-02 10:52:12 -04:00
miloschwartz
a9f0b9aa38 add user checks in routes 2025-05-02 10:44:50 -04:00
Owen
f8e0219b49 Add api 2025-05-01 17:48:49 -04:00
Owen
cb431f3574 Add to readme 2025-05-01 17:45:18 -04:00
miloschwartz
1ff3a9b2f9 improve sidebar rendering 2025-04-30 22:56:10 -04:00
miloschwartz
237960fc5b various small fixes 2025-04-29 22:59:38 -04:00
Owen
752c474983 Merge branch 'dev' into auth-providers-clients 2025-04-29 11:39:12 -04:00
Owen
02ccb029ae Merge branch 'hp-multi-client' into auth-providers-clients 2025-04-29 11:34:32 -04:00
miloschwartz
3ebc01df8c add migration 2025-04-28 23:07:11 -04:00
miloschwartz
81adcd9234 add async 2025-04-28 22:06:13 -04:00
miloschwartz
cffc156cf6 manually merge wg qr code 2025-04-28 22:05:13 -04:00
Owen
e4af990bf2 Add secret 2025-04-28 21:55:57 -04:00
Owen
e236364124 Change api 2025-04-28 21:50:48 -04:00
miloschwartz
f5a3fd7202 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-04-28 21:48:13 -04:00
miloschwartz
b3026ba663 update package-lock 2025-04-28 21:48:04 -04:00
miloschwartz
18e6f16ce7 add snippets to create resource 2025-04-28 21:45:43 -04:00
miloschwartz
599d0a52bf add api key code and oidc auto provision code 2025-04-28 21:14:09 -04:00
Owen Schwartz
eed6081ade Merge pull request #558 from TuncTaylan/main
Added dependency of crowdsec to traefik and relaxed its health check
2025-04-28 20:29:17 -04:00
Milo Schwartz
c4ae34383d Merge pull request #595 from imbavirus/feature/wireguard-qrcode
Added QR code to wireguard config for easy scanning on mobile phones
2025-04-28 18:21:01 -04:00
Owen Schwartz
c543376a0a Merge pull request #612 from lxfrdl/feat/enhance_2fa_login
feat: enhance 2fa login usability
2025-04-28 18:18:57 -04:00
Alex Freidel
a5b782b72a feat: enhance 2fa login
As soon as all digits have been entered, the form will be sent automatically. Similar to GitHub's implementation.
2025-04-28 08:14:19 +02:00
miloschwartz
4819f410e6 add license system and ui 2025-04-27 13:03:00 -04:00
Owen Schwartz
4084849fdc Merge pull request #610 from michaelfuckner/main
Fix Typo
2025-04-27 10:24:06 -04:00
Michael Fuckner
35e5f39c71 Fix Typo 2025-04-27 11:33:16 +02:00
miloschwartz
80d76befc9 change terms 2025-04-25 17:13:20 -04:00
Justin van der Westhuizen
893244100e removed react-qr-code 2025-04-25 19:50:14 +02:00
Justin van der Westhuizen
2a43b3ce4a changed qrcode to react-qr-code 2025-04-25 19:46:19 +02:00
Owen Schwartz
b82754c7af Merge pull request #598 from imbavirus/bug/fixed-typo-in-db
Bug: fixed typo in exitNodes table
2025-04-25 10:31:50 -04:00
Owen Schwartz
8793d3976d Merge pull request #599 from TuncTaylan/traefik-update
use the new traefik version 3.3.6
2025-04-25 10:28:42 -04:00
Owen Schwartz
6e833d4cee Merge pull request #582 from vickodin/fix_link_to_geoblock
Improve README: Fix link to geoblock
2025-04-25 10:28:20 -04:00
Taylan
b3d0b69c04 use the new traefik version 3.3.6 2025-04-25 12:01:12 +02:00
Justin van der Westhuizen
28ac5e1237 fixed spelling of public in db (the L was missing) 2025-04-25 08:05:21 +02:00
Justin van der Westhuizen
8990de5618 added missing package 2025-04-25 07:38:17 +02:00
Justin van der Westhuizen
6aeddde1cd Added QR code to wireguard config for easy scanning on mobile phones 2025-04-25 07:06:14 +02:00
miloschwartz
c3dbc64a58 remove hover on badge 2025-04-24 10:42:14 -04:00
vickodin
2a00c877ea Improve README: Fix link to geoblock 2025-04-24 09:07:16 +03:00
miloschwartz
91b4bb4683 move proxy related settings to new proxy tab for resource 2025-04-23 23:08:25 -04:00
miloschwartz
f4fd33b47f Merge branch 'auth-providers' into dev 2025-04-23 22:08:37 -04:00
miloschwartz
d6d6a59eee add new resource create wizard 2025-04-23 20:58:53 -04:00
miloschwartz
4dba75f913 obscure pin code input closes #580 2025-04-23 16:33:55 -04:00
miloschwartz
548a883e3f show smtp note on whitelist 2025-04-23 16:24:49 -04:00
miloschwartz
a6d6aaaadd add api keys to sidebar nav 2025-04-23 16:18:51 -04:00
miloschwartz
566e66daa4 fix org landing 2025-04-23 15:52:02 -04:00
miloschwartz
97af632c61 add option to pre provision idp user 2025-04-23 15:44:27 -04:00
Taylan
5d6e15b0d6 indentation fix 2025-04-23 20:54:03 +02:00
Taylan
419bacf55f check and add the service dependency of crowdsec to traefik 2025-04-23 20:36:16 +02:00
miloschwartz
960eb34c7d refactor invite user to create wizard 2025-04-23 13:46:06 -04:00
miloschwartz
6f59d0cd2d add createOrgUser endpoint 2025-04-23 13:26:38 -04:00
Taylan
6fd1dbc638 some more warning about indirect requirements 2025-04-23 18:39:48 +02:00
Taylan
87915f29f6 correct formated the file 2025-04-23 18:37:36 +02:00
Taylan
181071e4f6 refactoring multiple used code parts, cleared some warnings and added more error checking 2025-04-23 18:35:15 +02:00
miloschwartz
b01fa82627 Merge branch 'auth-providers' into auth-providers-clients 2025-04-22 22:58:06 -04:00
miloschwartz
feb558cfa8 testing 2025-04-22 22:53:52 -04:00
Owen
0c370e4299 Scope down the allowedIps so there are no conflicts 2025-04-22 22:18:50 -04:00
Milo Schwartz
9ea7c43212 Merge pull request #511 from x86txt/sticky_targets
Add ability for sticky sessions to backend resource.
2025-04-21 22:28:45 -04:00
Milo Schwartz
38528ae8c5 Merge branch 'dev' into sticky_targets 2025-04-21 22:28:18 -04:00
Taylan
c837899d82 Relaxed health check for crowdsec and dependance to traefik 2025-04-21 11:29:56 +02:00
miloschwartz
d737fda8bc Merge branch 'auth-providers' into auth-providers-clients 2025-04-20 22:51:05 -04:00
miloschwartz
7938b419cc add actions for idp 2025-04-20 21:31:01 -04:00
Owen
475a431859 Add TODO 2025-04-20 21:07:22 -04:00
miloschwartz
bf8bb1a0df adjustment to pr 2025-04-20 20:50:50 -04:00
Milo Schwartz
957fa67e24 Merge pull request #501 from achtnullzwei/customize-tls-server-name
Add option to customise TLS server name in resource settings
2025-04-20 17:54:18 -04:00
miloschwartz
490ddfcd88 add clients openapi registries 2025-04-20 17:00:45 -04:00
miloschwartz
fa6fc9e80d small clients ui tweaks 2025-04-20 16:49:48 -04:00
miloschwartz
f960fb7d67 Merge branch 'hp-multi-client' into auth-providers-clients 2025-04-20 16:15:40 -04:00
miloschwartz
b4c6897850 Merge branch 'dev' into auth-providers 2025-04-20 15:50:37 -04:00
miloschwartz
e2f056e6ca add idp to profile dropdown 2025-04-20 15:50:17 -04:00
Owen
f6a19631dc Still working on stability 2025-04-20 14:25:53 -04:00
miloschwartz
8fa719181a show list of idp on login 2025-04-18 21:59:58 -04:00
miloschwartz
b4fda6a1f6 add default mapping policy and move auto provision 2025-04-18 17:04:16 -04:00
Owen
e2efd0e65a Make sure to add the subnet 2025-04-18 16:44:03 -04:00
Owen
361f487384 Add back removed section 2025-04-18 16:21:06 -04:00
miloschwartz
99188233db create, delete, and update idp org policies 2025-04-18 15:38:50 -04:00
Owen
dc49027b30 Edit client page done 2025-04-18 15:32:20 -04:00
Owen
581fdd67b1 Allow picking ips when creating stuff 2025-04-18 14:41:27 -04:00
miloschwartz
3bab90891f move improvements to layout 2025-04-18 11:36:34 -04:00
miloschwartz
8c0e4d2d8c edit oidc idp general tab 2025-04-17 22:36:16 -04:00
miloschwartz
3e94384cde add info box to admin users table 2025-04-17 21:21:41 -04:00
miloschwartz
189b739997 add create idp wizard for oidc 2025-04-16 22:44:57 -04:00
Owen
d664aa204f Handle cidrs correctly 2025-04-16 22:07:07 -04:00
Owen
db0328fa71 Allow configuration of client and org subnets 2025-04-16 22:00:24 -04:00
miloschwartz
334fc55dd0 add server admin button 2025-04-16 21:37:15 -04:00
miloschwartz
ab933d48de more prominent sidebar sections 2025-04-16 20:49:06 -04:00
miloschwartz
36b62a5fe4 fix animations 2025-04-16 20:38:00 -04:00
Milo Schwartz
08752820fc Merge pull request #535 from TuncTaylan/main
Turkish translation
2025-04-16 20:18:27 -04:00
Taylan
787ec50a9c turkish translation of Main “General” 2025-04-16 21:48:50 +02:00
Taylan
65b29161a0 turkish translation of Create Shareable Link popup 2025-04-16 21:47:53 +02:00
Taylan
f60f15345f turkish translation of shareable links -> Content 2025-04-16 21:47:17 +02:00
Taylan
c286c28d46 turkish translation of Main “Shareable Links” -> hero 2025-04-16 21:46:38 +02:00
Taylan
8fb003d7ce turkish translation of Invite User popup 2025-04-16 21:45:47 +02:00
Taylan
35daf42a55 turkish translation of Main “User & Roles” -> Content 2025-04-16 21:45:14 +02:00
Taylan
976aaca287 turkish translation of Add Resource Popup 2025-04-16 21:43:56 +02:00
Taylan
0454f09383 turkish translation of main->content 2025-04-16 21:43:12 +02:00
Taylan
6b5674a107 turkish translation of main ressources / hero 2025-04-16 21:42:30 +02:00
Taylan
45a75d0bee turkish translation of Add Site Popup 2025-04-16 21:39:42 +02:00
Taylan
12f627711c turkish translation of content 2025-04-16 21:38:44 +02:00
Taylan
442775ac90 turkish translation of hero section 2025-04-16 21:37:56 +02:00
Taylan
01da3b3225 turkish translation of footer 2025-04-16 21:36:18 +02:00
Taylan
51ac815b23 turkish translation of navbar 2025-04-16 21:34:49 +02:00
Taylan
285ad45a0e turkish translation of organization selector 2025-04-16 21:33:41 +02:00
Taylan
4707722e6e turkish translation of shared header 2025-04-16 21:33:06 +02:00
Taylan
499f75edd1 turkish translation of section organization site after login 2025-04-16 21:32:26 +02:00
Taylan
57b96adcd0 turkish translation of section login site 2025-04-16 21:31:36 +02:00
Taylan
eb9675c6cf Turkish translation of section authentication site 2025-04-16 21:30:45 +02:00
Taylan
b59c6e377a German translation of section Authentication size 2025-04-16 21:27:48 +02:00
miloschwartz
432f38333e add create, delete, list for idp org policy 2025-04-15 10:16:15 -04:00
miloschwartz
e86640547e add delete, get, list idp 2025-04-15 09:26:25 -04:00
Matthias Palmetshofer
25c125b96d added advanced section to general page & custom host header field 2025-04-15 13:17:46 +02:00
miloschwartz
aa3b527f67 add validate callback loading state and encryption 2025-04-14 20:56:45 -04:00
Owen
569635f3ed newts not being on when olm is started 2025-04-13 21:28:11 -04:00
miloschwartz
bacd5a4373 add child to user nav bar item 2025-04-13 18:30:14 -04:00
miloschwartz
53be2739bb successful log in loop poc 2025-04-13 18:29:23 -04:00
Owen
b7ae712b63 Add ping; working on newt tunnel reliability 2025-04-13 17:27:53 -04:00
Matthew Evans
4a42aa385a Update sticky session to show only with 2+ targets and use IP strategy for TCP 2025-04-13 15:29:58 -04:00
Matthew Evans
ac8e315fbd Add ability for sticky sessions to backend resource. 2025-04-13 15:29:58 -04:00
miloschwartz
7556a59e11 Merge branch 'dev' into auth-providers 2025-04-13 14:49:02 -04:00
miloschwartz
8b0c30f19f more tweaks to layout 2025-04-13 14:46:13 -04:00
miloschwartz
b731a50cc9 nested sidebar 2025-04-13 14:30:20 -04:00
miloschwartz
2398931cc1 fix ref type error 2025-04-13 14:30:19 -04:00
miloschwartz
419e576a3e adjust border 2025-04-13 14:30:19 -04:00
miloschwartz
1a750e8279 test new layout 2025-04-13 14:30:19 -04:00
miloschwartz
f14379a1c8 remove forward ref 2025-04-13 14:30:19 -04:00
miloschwartz
521bbbf1d6 update to tw4 2025-04-13 14:30:19 -04:00
Owen
cb775340a4 Merge branch 'main' into dev 2025-04-13 10:57:48 -04:00
Owen Schwartz
31bd42f964 Merge pull request #519 from TuncTaylan/main
More relaxed healthcheck for low end systems
2025-04-13 10:56:28 -04:00
Taylan
e64e7d1d92 More relaxed healthcheck for low end systems 2025-04-13 16:51:00 +02:00
miloschwartz
480a5f648d testing oidc callback 2025-04-12 15:44:26 -04:00
miloschwartz
9cb215295a make supporter star a little more minimal 2025-04-12 12:34:16 -04:00
miloschwartz
764c56c4a1 makes sidebar width full 2025-04-12 12:24:16 -04:00
miloschwartz
e057c5f3bf use mobile friendly dialog in regenerate invite 2025-04-12 12:18:05 -04:00
Milo Schwartz
bc8cd5c941 Merge pull request #496 from grokdesigns/add-invitation-management
Add invitation management
2025-04-12 12:12:03 -04:00
Taylan
6350edf8fd updated the traefik image to v3.3.5
updated the crowdsec-bouncer-traefik-plugin to v1.4.2
added default crowdsecAppsecBodyLimit value for bigger files
2025-04-12 10:07:06 -04:00
Owen Schwartz
8e8fdabd03 Merge pull request #515 from TuncTaylan/main
updated the traefik image and crowdsec-bouncer-traefik-plugin for bigger files
2025-04-12 10:06:09 -04:00
Owen
8398f7b7c0 Relaying working 2025-04-11 20:52:45 -04:00
miloschwartz
2883d8c544 fix typo 2025-04-11 20:21:55 -04:00
Taylan
dd8c426faa updated the traefik image to v3.3.5
updated the crowdsec-bouncer-traefik-plugin to v1.4.2
added default crowdsecAppsecBodyLimit value for bigger files
2025-04-11 22:07:20 +02:00
Owen
e57574ba9c Solve olm not having chance to send hp message 2025-04-11 10:33:20 -04:00
Matthias Palmetshofer
64a2cc23c6 adjusting field description; fix migration script; trying to resolve conflict in updateResource.ts 2025-04-11 09:52:34 +02:00
Owen
ec33fe5657 Merge branch 'main' into dev 2025-04-10 22:17:27 -04:00
Owen
56b3b2ab3b Reduce to 14 days 2025-04-10 22:16:40 -04:00
Owen Schwartz
a436dff4a0 Merge pull request #504 from Jester0027/feature/newt-podman-install
feat(sites): Provide Podman run and Podman Quadlet setup for Newt
2025-04-10 21:40:35 -04:00
Owen Schwartz
cf80d67bf8 Merge branch 'dev' into feature/newt-podman-install 2025-04-10 21:40:23 -04:00
paul
e24edc0803 feat(sites): Provide Podman run and Podman Quadlet setup for Newt 2025-04-10 23:33:28 +02:00
grokdesigns
d89ca10a82 Had to update child menu item logic
Noticed that submenus weren't rendered on mobile. Updated logic to make children work with mobile dropdown
2025-04-10 07:43:51 -07:00
grokdesigns
d9e6d0c71a Add regenerate to invitation functionality, see pull request details 2025-04-09 20:32:21 -07:00
Matthias Palmetshofer
517bc7f632 added table change to new migration script 2025-04-10 00:36:34 +02:00
Matthias Palmetshofer
674316aa46 add option to set TLS Server Name 2025-04-09 23:42:50 +02:00
grokdesigns
7a55c9ad03 Add support for menu children and moved invitations under users 2025-04-09 09:23:47 -07:00
grokdesigns
c7f3c9da92 Removed leftover section from earlier testing 2025-04-08 18:34:21 -07:00
Owen Schwartz
be77b3e8f3 Merge pull request #493 from grokdesigns/fix-popover-issue
Fix black box issue on popover
2025-04-08 21:26:56 -04:00
grokdesigns
d7f50bac6a Add invitation management 2025-04-08 18:18:57 -07:00
Owen
3ccfe60685 Merge branch 'grokdesigns-update-package-resolve-vulns' into dev 2025-04-08 21:04:22 -04:00
grokdesigns
40040af957 Bump react-email version 2025-04-08 13:36:44 -07:00
grokdesigns
1568b38eac Fix black box issue on popover 2025-04-08 12:53:12 -07:00
grokdesigns
7fd1652a71 Update libraries to resolve critical security findings 2025-04-08 12:51:06 -07:00
Owen Schwartz
787a172a7c Merge pull request #477 from grokdesigns/feature-add-sponsor-message
Add supporter message feature
2025-04-08 11:23:41 -04:00
grokdesigns
23a68fbc10 Add confetti on valid key and make thank you less intrusive 2025-04-07 21:15:24 -07:00
Owen
f078ee6051 Merge branch 'main' into dev 2025-04-07 21:16:05 -04:00
Owen
0450f62108 Merge branch 'Lokowitz-fix-crowdsec-config' 2025-04-07 21:15:47 -04:00
grokdesigns
b2faeb3c17 Added some more pizazz to the thank you message 2025-04-07 14:38:49 -07:00
grokdesigns
9ea37789d6 Applied Prettier formatting 2025-04-07 13:32:07 -07:00
grokdesigns
aa45150c51 Add supporter message feature 2025-04-07 10:34:32 -07:00
Owen
a708750fea Increase retries to 15
Resolves #327
2025-04-07 09:56:29 -04:00
Owen
68ebdda1ff Start new relay method 2025-04-07 09:55:39 -04:00
miloschwartz
d260450a84 add openapi registers 2025-04-06 22:44:14 -04:00
miloschwartz
a76e3e00f7 openapi test 2025-04-06 16:06:50 -04:00
Marvin
a33ebe5bc5 Merge branch 'fosrl:main' into fix-crowdsec-config 2025-04-06 19:31:54 +02:00
Milo Schwartz
6f683ca486 Merge pull request #467 from fosrl/dev
1.2.0
2025-04-06 13:11:02 -04:00
miloschwartz
0e65f8c921 check resource id on verify access token 2025-04-06 13:08:55 -04:00
Owen
dfcab90c2d Add permissions 2025-04-06 12:05:13 -04:00
Owen
5a6a035d30 Add permissions 2025-04-06 12:04:42 -04:00
Owen
d76ff17fb3 Add stale bot 2025-04-06 12:02:22 -04:00
Owen
1f570e9b46 Add stale bot 2025-04-06 12:01:37 -04:00
miloschwartz
4953e69b1b comment out old create newt endpoint 2025-04-06 11:48:42 -04:00
miloschwartz
ab6ecdbc9c update config file templates 2025-04-06 11:46:08 -04:00
miloschwartz
0b7ca95d21 update badger in migration 2025-04-06 11:39:16 -04:00
miloschwartz
6cc4bc2645 add pass access token in headers 2025-04-05 22:36:51 -04:00
Marvin
b75f848b90 Update crowdsec.go 2025-04-05 17:47:37 +02:00
Marvin
c4e62a7aee Update docker-compose.yml 2025-04-05 17:45:43 +02:00
Marvin
c903c03979 Delete install/config/crowdsec/acquis.yaml 2025-04-05 17:44:38 +02:00
Marvin
d7b9755f3a Create appsec.yaml 2025-04-05 17:44:20 +02:00
Marvin
e17bf0db13 Create traefik.yaml 2025-04-05 17:43:54 +02:00
miloschwartz
74d6b3d902 shorten share links and add migration 2025-04-04 22:58:01 -04:00
Owen
410207f3ca Working on htp 2025-04-04 10:59:22 -04:00
Owen
302094771b Merge branch 'main' into dev 2025-04-01 22:49:39 -04:00
Owen
7faf1fba8b Move up client reject 2025-04-01 22:49:08 -04:00
Owen
8c267489c7 Add exit node to create site 2025-04-01 21:52:03 -04:00
Owen
fb5c428147 Add logging to not sending because endpoint 2025-04-01 21:28:16 -04:00
Owen
5ff4215bde Able to connect multi site on olm - POC 1 2025-04-01 12:49:02 -04:00
Owen
96d6ad8142 Create clients working again 2025-04-01 10:13:20 -04:00
miloschwartz
80ef8f189e replace old error formatting with zod format error 2025-03-31 22:37:39 -04:00
Owen
875fa215c5 Update create client form 2025-03-31 16:27:40 -04:00
Owen
bcd80e19d4 Update list clients 2025-03-31 16:23:02 -04:00
Owen
56e1684e2e Update api endpoints for new association 2025-03-31 16:21:01 -04:00
Owen
1baa02de89 Fix relay ws message 2025-03-31 15:45:51 -04:00
Owen
11cdfa7557 Merge branch 'holepunch' into hp-multi-client 2025-03-31 15:34:35 -04:00
Owen
8fbd8a905f We do not need to send any message back 2025-03-31 15:34:18 -04:00
Owen
cd059728fd Put back handle relay message 2025-03-31 15:25:30 -04:00
Owen
473b5bd3db Merge branch 'holepunch' into hp-multi-client 2025-03-31 15:24:33 -04:00
Owen
81c7954e0c Remove unused argon 2025-03-31 15:19:37 -04:00
miloschwartz
6204fa0ade fix update server admin email cause create new user closes #443 2025-03-31 15:03:21 -04:00
miloschwartz
1d105fc5be fix count in list domains endpoint 2025-03-31 12:51:08 -04:00
miloschwartz
3612857585 use global search for tables 2025-03-31 10:31:35 -04:00
miloschwartz
8f1ee60119 fix showing not protected when only password enabled closes #129 2025-03-31 10:16:34 -04:00
miloschwartz
e7ca7fe89c add toggle resource visibility closes #442 2025-03-31 10:10:54 -04:00
Owen Schwartz
4be1d87602 Merge pull request #419 from hareland/fix-bandwidth
fix(bandwidth): Record correct megaBytesIn/megaBytesOut
2025-03-30 11:04:00 -04:00
hareland
131df8aeb7 fix(bandwidth): use correct flipping and addition 2025-03-28 14:54:37 +01:00
hareland
3442942893 fix(bandwidth): Record correct megaBytesIn/megaBytesOut 2025-03-28 12:06:17 +01:00
miloschwartz
fbd78ab842 add new checkbox variants 2025-03-27 23:12:36 -04:00
Owen
a665e3aae9 Fix issues with relaying and holepunching 2025-03-27 22:13:57 -04:00
Owen
4b6985718a Fix ip picking from subnet in exclusion 2025-03-27 22:13:39 -04:00
miloschwartz
66f324e18c fix typo in form description 2025-03-27 17:42:51 -04:00
Owen
619cfef1c7 Working on multi client 2025-03-27 14:27:41 -04:00
miloschwartz
5e2f9e1eeb add createNewt action and remove max orgs restriction 2025-03-26 22:20:22 -04:00
Owen
15eb666394 Remove olm/wg/relay message 2025-03-26 21:41:20 -04:00
Owen
dac49f7fdc Converting more multi site 2025-03-26 21:39:12 -04:00
Owen
926ec831e2 Finish conversion of olm reg to multi site 2025-03-26 21:23:26 -04:00
Owen
87012c47ea Start changes for multi site clients
- Org subnet and assign sites and clients out of the same subnet group
  on each org
- Add join table for client on multiple sites
- Start to handle websocket endpoints for these multiple connections
2025-03-25 22:01:08 -04:00
Owen
fbe7e0a427 Merge branch 'dev' into holepunch 2025-03-25 20:42:14 -04:00
miloschwartz
fefb07e14c move schema.ts to module 2025-03-23 17:11:48 -04:00
miloschwartz
013f342ff6 fix broken header layout on mobile 2025-03-23 12:37:57 -04:00
miloschwartz
aabdcea3c0 add docs link 2025-03-22 12:37:35 -04:00
miloschwartz
a178faa377 add support links 2025-03-22 12:35:33 -04:00
miloschwartz
edf0ce226f Merge branch 'main' into dev 2025-03-22 12:25:00 -04:00
miloschwartz
7118ae374d fix try catch in supporter keys 2025-03-22 12:24:20 -04:00
miloschwartz
f2a14e6a36 append timestamp to cookie name to prevent redirect loops 2025-03-21 21:38:36 -04:00
miloschwartz
f37be774a6 disable limited tier if already used 2025-03-21 18:36:11 -04:00
miloschwartz
0dcfeb3587 add server admin panel to delete users 2025-03-21 18:04:27 -04:00
Owen
dbfc8b51aa Update default email 2025-03-21 17:18:51 -04:00
miloschwartz
d72a8af04b log failed check key 2025-03-21 17:14:27 -04:00
Owen
7131dea7a0 package-lock update 2025-03-21 17:12:59 -04:00
Owen
deb30ed4ae Add admin user api interfaces 2025-03-21 17:05:04 -04:00
Owen
3b09ef3345 False by default for crowdsec 2nd question 2025-03-21 09:57:28 -04:00
miloschwartz
06e90c9555 don't add wildcard asterisk for base domain resource closes #356 2025-03-20 22:52:29 -04:00
miloschwartz
cdc415079c add supporer key program 2025-03-20 22:16:02 -04:00
miloschwartz
1c2ba4076a add crowdsec warning to installer 2025-03-19 21:17:19 -04:00
miloschwartz
af68aa692c fix header padding on large screens 2025-03-17 11:53:30 -04:00
miloschwartz
edba818615 add new create site workflow 2025-03-16 15:20:19 -04:00
Owen
779a1c303f Verify holepunch token and send gerbil pub key 2025-03-15 21:45:53 -04:00
miloschwartz
cdf904a2bc fix broken docs link closes #335 2025-03-15 17:37:27 -04:00
Owen
14e6136683 Send down gerbil pub so it can encrypt 2025-03-14 09:18:13 -04:00
miloschwartz
fedab6c9a8 Merge branch 'main' into dev 2025-03-11 21:03:25 -04:00
Milo Schwartz
33e8ed4c93 Update README.md 2025-03-11 21:02:42 -04:00
Owen
1f11a1df02 Merge branch 'main' into holepunch 2025-03-10 21:13:05 -04:00
miloschwartz
2b54dfe035 fix rules info columns 2025-03-10 12:47:42 -04:00
Milo Schwartz
e601816791 Merge pull request #319 from fosrl/dev
1.0.1
2025-03-10 11:09:38 -04:00
miloschwartz
7a46cf3da7 add border-2 to checkbox 2025-03-10 11:06:02 -04:00
miloschwartz
ad32e5e651 fix base domain overwritten on update closes #282 2025-03-09 22:05:13 -04:00
miloschwartz
8ec55eb70d append site name to resource in list add add site to info card closes #297 2025-03-08 22:11:27 -05:00
Owen
767fec19cd Remove old example config 2025-03-08 20:03:26 -05:00
miloschwartz
d215a12f5a disable auto backup on migration with env var 2025-03-08 18:23:36 -05:00
Owen
d22dcfb464 Optimize container size 2025-03-08 18:11:47 -05:00
miloschwartz
c93b36c757 remove environment variable support and config file autogeneration 2025-03-08 18:06:14 -05:00
Owen Schwartz
9253dd19ba Merge pull request #307 from fosrl/remove_json_group_array
Remove json_group_array from queries
2025-03-08 17:30:46 -05:00
miloschwartz
b9d83a2507 add es.md 2025-03-08 16:06:52 -05:00
Owen
581f96daa8 Remove json_group_array from queries
Also improve handling tcp/udp resources in newt function so it does not
loop twice
2025-03-08 11:58:48 -05:00
Owen
33ff2fbf3b Allow matching parts of words in path
Resolves #228
2025-03-08 11:43:47 -05:00
Owen
535b4e1fb1 Add clean up our few tests and add tests for #228 2025-03-08 11:43:22 -05:00
Owen
5871bea706 Reset port when entering targets
Resolves #270
2025-03-08 10:52:38 -05:00
Owen
07eb422491 Add back metrics port for scripting 2025-03-04 23:52:37 -05:00
Owen
654ed46a46 Return 401 instead of 400 on bad login
Resolves #276
2025-03-04 20:32:48 -05:00
Milo Schwartz
eb73da8aa0 Merge pull request #275 from fosrl/dev
add migration script
2025-03-04 11:14:31 -05:00
miloschwartz
cc6800c791 add migration script 2025-03-04 11:13:34 -05:00
Milo Schwartz
47abdf873a Merge pull request #274 from fosrl/dev
1.0.0
2025-03-04 11:12:14 -05:00
miloschwartz
90366da61b allow hash in url path rule 2025-03-03 19:47:07 -05:00
miloschwartz
5529beaf6e allow anything for hostname closes #265 2025-03-03 17:11:41 -05:00
miloschwartz
93c8236535 update example config files 2025-03-03 17:09:48 -05:00
Owen
37fdc4a6a8 Warn if it did not replace the bouncer key 2025-03-03 15:43:26 -05:00
miloschwartz
a456a37b2f fix typo 2025-03-02 23:24:21 -05:00
miloschwartz
430afe3f93 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-03-02 22:19:11 -05:00
miloschwartz
3b60e1f3ac update screenshots 2025-03-02 22:19:04 -05:00
Owen
b8543e5fa8 Remove prom exposed port and waf port
Resolves #247
2025-03-02 21:49:42 -05:00
Owen
d594314e52 Remove gerbil depenency and exposed port 9090 2025-03-02 21:47:32 -05:00
Owen
81c142e8ae Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-03-02 21:46:22 -05:00
miloschwartz
59eedce664 allow setting tks.rejectUnauthorized for Nodemailer in config closes #264 2025-03-02 20:03:20 -05:00
miloschwartz
adef93623d more visual enhancements and use expires instead of max age in cookies 2025-03-02 15:50:03 -05:00
miloschwartz
759434e9f8 more visual enhancements and update readme 2025-03-01 23:03:42 -05:00
miloschwartz
0e38f58a7f minor visual enhancements 2025-03-01 17:45:38 -05:00
Owen
8e4bccffbf Dont use bytes out for online
Persistant keep alive means that this will always increase
2025-02-27 23:54:24 -05:00
miloschwartz
8445e83c7c Merge branch 'dev' 2025-02-27 11:02:36 -05:00
miloschwartz
89a59b25fc Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-02-27 11:02:10 -05:00
miloschwartz
57a37a01ce full width settings for user 2025-02-27 11:01:53 -05:00
Owen
f8add1f098 Fix cicd with go-build-release installer 2025-02-27 10:59:16 -05:00
Owen
0bd0cc76fb Fix cicd with go-build-release installer 2025-02-27 10:57:37 -05:00
Milo Schwartz
06e4fbac68 Merge pull request #244 from fosrl/dev
multiple domains, crowdsec, and more
2025-02-27 10:52:06 -05:00
miloschwartz
e82df67063 Merge branch 'dev' into multi-domain 2025-02-26 21:26:20 -05:00
miloschwartz
84f94bb727 Merge branch 'multi-domain' of https://github.com/fosrl/pangolin into multi-domain 2025-02-26 21:25:00 -05:00
miloschwartz
20f1a6372b small visual improvements 2025-02-26 21:24:35 -05:00
Owen
06c434a5ea Copy in the right versions when building 2025-02-26 21:13:52 -05:00
Owen Schwartz
b83dadb14b Merge pull request #243 from fosrl/crowdsec
Crowdsec
2025-02-26 20:55:51 -05:00
Owen
492e53edf3 Merge branch 'dev' into crowdsec 2025-02-26 20:52:52 -05:00
Owen
3d9557b65c Merge branch 'main' into dev 2025-02-26 20:49:33 -05:00
Owen
332804ed71 Add base_domain new config 2025-02-25 23:41:43 -05:00
miloschwartz
de70c62ea8 adjustments to migration after testing 2025-02-25 22:58:52 -05:00
miloschwartz
e4789c6b08 always check rules even if auth is disabled 2025-02-24 22:52:38 -05:00
miloschwartz
ec9d02a735 clear stale data from db on restart 2025-02-24 22:46:55 -05:00
miloschwartz
ae73a2f3f4 show more than 10 rows in rules and targets table closes #221 2025-02-24 22:32:22 -05:00
miloschwartz
d8183bfd0d add sql migration 2025-02-24 22:25:42 -05:00
miloschwartz
e11748fe30 minor bug files, remove unqiue constraint, and start migration 2025-02-24 22:06:21 -05:00
Owen
733e0e07c3 Fix subnet issues 2025-02-24 20:21:57 -05:00
Milo Schwartz
ccbe56e110 update README.md 2025-02-24 12:03:48 -05:00
miloschwartz
ff37e07ce6 make cookies work with multi-domain 2025-02-23 23:04:01 -05:00
Owen
f59f0ee57d Merge yaml files instead? 2025-02-23 21:44:02 -05:00
Owen
8ee6a3f134 Add bruno 2025-02-23 21:35:13 -05:00
Owen
bacc5e4213 Add relay message 2025-02-23 20:18:03 -05:00
Milo Schwartz
372932985d update README.md 2025-02-23 17:34:28 -05:00
Owen
afd87d07a3 Basic relay working! 2025-02-23 16:49:41 -05:00
Owen
bebe40c8e8 HP works! 2025-02-22 12:53:35 -05:00
Owen
e4c5be4350 Initial hp working? 2025-02-22 11:20:56 -05:00
Owen
a9a9391b39 Receive new holepunch info 2025-02-21 22:29:48 -05:00
miloschwartz
9f54f4d81a show site link in clients table 2025-02-21 22:20:19 -05:00
miloschwartz
1a63669805 Merge branch 'clients' of https://github.com/fosrl/pangolin_dg into clients 2025-02-21 18:51:43 -05:00
miloschwartz
fcf6abd36e delete client instead of site 2025-02-21 18:51:27 -05:00
Owen
b9080a1ec1 Working! 2025-02-21 18:51:16 -05:00
Owen
450b0bf4fa Use the right ip 2025-02-21 18:16:07 -05:00
miloschwartz
a4d3a5ad4d don't sent orgId in createClient 2025-02-21 17:30:15 -05:00
miloschwartz
6c22a2aeb4 Merge branch 'clients' of https://github.com/fosrl/pangolin_dg into clients 2025-02-21 17:25:05 -05:00
miloschwartz
2e36c97d1c set checked 2025-02-21 17:24:54 -05:00
Owen
f99efbb1e9 Update the public key and the endpoint 2025-02-21 17:23:22 -05:00
Owen
6cf3bf0255 Not optional 2025-02-21 17:22:05 -05:00
Owen
a0abe41c8a Fix up ws messages 2025-02-21 17:13:54 -05:00
miloschwartz
3830ad65fc more frontend for clients 2025-02-21 17:13:23 -05:00
miloschwartz
204403da67 Merge branch 'clients' of https://github.com/fosrl/pangolin_dg into clients 2025-02-21 16:58:39 -05:00
miloschwartz
098723b88d clients frontend demo first pass 2025-02-21 16:58:30 -05:00
Owen
b21e758eb8 Initial olm test working 2025-02-21 16:19:12 -05:00
Owen
b1f4971f25 Get new api endpoints working 2025-02-21 16:12:44 -05:00
miloschwartz
6e1bfdac58 add listClients endpoint 2025-02-21 15:45:34 -05:00
miloschwartz
11920ca997 add deleteClient endpoint 2025-02-21 15:26:48 -05:00
miloschwartz
255e29d9c8 Merge branch 'clients' of https://github.com/fosrl/pangolin_dg into clients 2025-02-21 14:39:31 -05:00
miloschwartz
35ccdd3014 add createClient for testing 2025-02-21 14:39:10 -05:00
Owen
757d628bc8 Handle port correctly 2025-02-21 12:52:24 -05:00
Owen
a57d32d05d Add receive bandwidth 2025-02-21 12:41:02 -05:00
Owen
ef69bf9256 Update ws paths 2025-02-21 12:34:05 -05:00
Owen
bec303821b Handle types in handlers 2025-02-21 12:17:56 -05:00
miloschwartz
346f2db5fb add client olm relationship 2025-02-21 11:57:01 -05:00
Owen
b9de0f8e38 Working on handlers 2025-02-21 10:55:38 -05:00
Owen
e112fcba29 Move things around; rename to olm 2025-02-21 10:13:41 -05:00
miloschwartz
41983ce356 add wg site get config and pick client defaults 2025-02-20 22:34:51 -05:00
Owen
fb49fb8ddd Initial schema 2025-02-20 18:10:52 -05:00
miloschwartz
c877bb1187 bug fixes to smooth out multi domain inputs forms 2025-02-19 23:00:59 -05:00
Owen
5f95500b6f Crowdsec installer works? 2025-02-19 21:42:42 -05:00
Owen
3194dc56eb Move path to first in dropdown 2025-02-19 09:44:40 -05:00
miloschwartz
e49fb646b0 refactor subdomain inputs 2025-02-18 22:56:46 -05:00
Owen
fd11fb81d6 Remove some config 2025-02-18 21:41:23 -05:00
miloschwartz
82f990eb8b add list domains for org endpoint 2025-02-16 18:09:17 -05:00
miloschwartz
851bedb2e5 refactor create and update resource endpoints 2025-02-16 17:28:10 -05:00
Owen
e6c42e9610 Indent 2 2025-02-16 11:31:01 -05:00
Owen
d3d523b2b8 Refactor docker copy and keep entrypoints 2025-02-16 11:26:45 -05:00
miloschwartz
532d3696c2 sync config managed domains to db 2025-02-15 22:41:39 -05:00
Owen
dabd4a055c Creating structure correctly 2025-02-15 22:00:31 -05:00
Owen
7bf820a4bf Clean off ports for 80 and 443 hosts 2025-02-15 17:48:27 -05:00
Owen
b862e1aeef Add h2c as target method; Resolves #115 2025-02-15 17:43:44 -05:00
Owen
bdee036ab4 Add name; Resolves #190 2025-02-15 17:08:11 -05:00
Milo Schwartz
62238948e0 save 2025-02-14 20:22:26 -05:00
Milo Schwartz
489f6bed17 Merge pull request #202 from fosrl/dev
hotfixes coming from beta13
2025-02-14 16:53:58 -05:00
Milo Schwartz
6aa4908446 bump version 2025-02-14 16:53:05 -05:00
Milo Schwartz
d5a220a004 create target validator and add url validator 2025-02-14 16:46:46 -05:00
Owen
a418195b28 Fix ip range pick initial range; add test 2025-02-14 15:49:40 -05:00
Milo Schwartz
2ff6d1d117 allow any string as target 2025-02-14 13:27:34 -05:00
Milo Schwartz
8dd30c88ab fix reset password sql error 2025-02-14 13:12:29 -05:00
Owen
7797c6c770 Allow the chars from RFC 3986 2025-02-14 12:38:28 -05:00
Owen
40922fedb8 Support v6 2025-02-14 12:32:18 -05:00
Milo Schwartz
4c1366ef91 force router refresh on save closes #198 2025-02-14 12:27:03 -05:00
Owen
f61d442989 Allow . in path; resolves #199 2025-02-14 09:51:17 -05:00
Owen
60449afca5 Reorg; create crowdsec folder properly now 2025-02-13 22:16:52 -05:00
Milo Schwartz
b1702bf99a Merge pull request #194 from fosrl/dev
access control rules
2025-02-13 14:48:35 -05:00
Milo Schwartz
a35e24bc0e fix table filters and update readme 2025-02-13 14:45:32 -05:00
Milo Schwartz
c230e034cf update readme 2025-02-12 23:01:00 -05:00
Milo Schwartz
06ceff7427 change migration script text 2025-02-12 22:29:42 -05:00
Owen
81c4199e87 Complete bash migration 2025-02-12 21:56:13 -05:00
Milo Schwartz
19273ddbd5 use zod for rules ip validation 2025-02-12 21:52:58 -05:00
Milo Schwartz
fdf1dfdeba rules server validation, enabled toggle, fix wildcard 2025-02-11 23:59:13 -05:00
Milo Schwartz
f14ecf50e4 add docker deployment snippets to create site form 2025-02-10 22:26:29 -05:00
Milo Schwartz
c244ef387b make subdomain input better accommodate long domains 2025-02-10 21:48:34 -05:00
Milo Schwartz
8165051dd8 fix toast dismiss causing components to rerender and clean up rules text 2025-02-10 21:35:06 -05:00
Owen
a7b8ffaf9f Merge branch 'dev' into crowdsec 2025-02-10 21:34:25 -05:00
Milo Schwartz
6fba13c8d1 Merge pull request #185 from fosrl/rules
Rules
2025-02-10 21:11:57 -05:00
Owen
3c99fbb1ef Seperate ip and cidr 2025-02-10 21:06:37 -05:00
Milo Schwartz
5b44ffa2fb Merge branch 'rules' of https://github.com/fosrl/pangolin into rules 2025-02-09 23:24:09 -05:00
Milo Schwartz
6e6992e19f add rules info card 2025-02-09 23:23:55 -05:00
Owen
4bce210ff5 Be more lenient with leading and trailing slashes 2025-02-09 22:03:18 -05:00
Owen
bbc1a9eac4 Format 2025-02-09 22:00:02 -05:00
Owen
5e92aebd20 Drop first 2025-02-09 21:56:39 -05:00
Owen
2428738fa6 Fix missing ruleId issue 2025-02-09 21:47:59 -05:00
Owen
d22c7826fe Add config files 2025-02-09 16:14:29 -05:00
Owen
34e3fe690d Fix check on string 2025-02-09 11:33:40 -05:00
Owen
c415ceef8d Add migrations 2025-02-09 11:10:19 -05:00
Owen
73798f9e61 Add ecr login 2025-02-09 11:05:42 -05:00
Owen
9694261f3e Add enable rules toggle 2025-02-09 11:02:40 -05:00
Owen
874c67345e Adjust rule processing 2025-02-09 10:50:43 -05:00
Owen
42434ca832 Add validation 2025-02-08 17:54:01 -05:00
Owen
4a6da91faf API and rule screen working 2025-02-08 17:38:30 -05:00
Owen
8f96d0795c Add update 2025-02-08 17:10:37 -05:00
Owen
da3c8823f8 rename to resource rules and add api endpoints 2025-02-08 17:07:21 -05:00
Owen
3cd20cab55 Merge branch 'dev' into rules 2025-02-08 16:55:46 -05:00
Milo Schwartz
b1fa980f56 expand list of allowed special characters in password 2025-02-08 16:04:41 -05:00
Milo Schwartz
ef0bc9a764 add note about backup codes to mfa form 2025-02-08 15:55:49 -05:00
Milo Schwartz
dc2ec5b73b add description to whitelist email field 2025-02-08 15:51:28 -05:00
Milo Schwartz
d8a089fbc2 remove annoying debug log 2025-02-08 15:47:01 -05:00
Milo Schwartz
00a0d89d6c add allow_base_domain_resources to installer 2025-02-08 12:26:52 -05:00
Owen
2f49be69fe Initial pass at rules 2025-02-06 21:42:18 -05:00
Owen
b92639647a Add applyRules to resources 2025-02-06 21:19:55 -05:00
Owen
befdc3a002 Add table 2025-02-06 21:18:34 -05:00
Milo Schwartz
3c7025a327 add strict rate limit to endpoints that send email 2025-02-05 22:46:33 -05:00
Milo Schwartz
58a084426b allow logout to fail 2025-02-05 22:00:29 -05:00
Milo Schwartz
d070415515 fix table page size selector 2025-02-05 21:56:28 -05:00
Milo Schwartz
3fa7132534 fix update resource without subdomain 2025-02-05 21:32:49 -05:00
Milo Schwartz
feeeba5cee fix path in cicd 2025-02-04 22:46:41 -05:00
Milo Schwartz
9e5d5e8990 Merge pull request #159 from fosrl/dev
1.0.0-beta12
2025-02-04 22:45:03 -05:00
Owen
c51f1cb6a2 Add network config to compose; Resolves #155 2025-02-04 22:28:37 -05:00
Milo Schwartz
786551d86a replace version in consts file instead of package.json 2025-02-04 22:23:13 -05:00
Owen
0e73365106 Pull dashboard url for the newt config 2025-02-04 22:14:11 -05:00
Milo Schwartz
b6963a9c35 allow 80 or 443 raw resources 2025-02-04 21:39:13 -05:00
Milo Schwartz
bc0b467f1a update traefik version 2025-02-03 22:58:04 -05:00
Milo Schwartz
7cf798851c fix sorting auth column if no auth closes #149 2025-02-03 22:47:47 -05:00
Milo Schwartz
e475c1ea50 all resources at the base domain closes #137 2025-02-03 21:18:16 -05:00
Milo Schwartz
0840c166ab prevent api resource updates if raw resources is disabled 2025-02-02 16:22:00 -05:00
Milo Schwartz
65a537a670 make update raw resource port functional 2025-02-02 16:03:10 -05:00
Milo Schwartz
a7c99b016c prevent raw tcp on port 80 or 443 2025-02-02 15:47:29 -05:00
Milo Schwartz
6a8132546e reset create resource form on dialog close closes #145 2025-02-02 15:36:43 -05:00
Milo Schwartz
94ce5edc61 pull app version from consts instead of package.json 2025-02-02 15:30:41 -05:00
Milo Schwartz
889f8e1394 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-02-01 21:19:35 -05:00
Milo Schwartz
9d36198459 fix search id value in command items 2025-02-01 21:19:24 -05:00
Owen Schwartz
673635a585 Merge pull request #64 from j4n-e4t/j4n-e4t/transfer-resource-to-new-site
Transfer a resource to another site
2025-02-01 21:14:17 -05:00
Milo Schwartz
53660a163c minor changes to verbiage and id value 2025-02-01 21:11:31 -05:00
Owen Schwartz
b5420a40ab Clean up and add target manipulation 2025-02-01 18:36:12 -05:00
Owen Schwartz
962c5fb886 Merge branch 'dev' into transfer-resource-to-new-site 2025-02-01 17:03:05 -05:00
Milo Schwartz
7d6dd9e9fd Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-02-01 16:52:30 -05:00
Milo Schwartz
dc9b1f1efd add project board to readme 2025-02-01 16:52:18 -05:00
Owen Schwartz
3257c39fca Merge pull request #130 from nkkfs/patch-3
Update pl.md
2025-02-01 10:29:40 -05:00
Kamil
8b43c6f9c5 Update pl.md
Add Authentication Site strings
2025-02-01 08:56:20 +01:00
Owen Schwartz
8b5cac40e0 Merge pull request #120 from synologyy/main
german-translation
2025-01-31 15:16:32 -05:00
Milo Schwartz
722b877ea5 Merge pull request #125 from fosrl/dev
Hotfix Various Bugs
2025-01-31 15:11:48 -05:00
Owen Schwartz
a9477d7eb9 Complex filter generating config; Resolves #124 2025-01-31 15:07:28 -05:00
Milo Schwartz
bb5573a8f4 allow comma in password closes #121 2025-01-31 15:03:36 -05:00
synologyy
81571a8fb7 german-translation 2025-01-31 09:01:00 +01:00
Owen Schwartz
57cd776c34 Fix migrations ordering 2025-01-30 23:30:33 -05:00
Milo Schwartz
5c507cc0ec Merge pull request #118 from fosrl/dev
Small Bugfixes
2025-01-30 22:47:56 -05:00
Milo Schwartz
55c0953fde update version in migration script log 2025-01-30 22:43:47 -05:00
Milo Schwartz
844b12d363 add copy code snippets to raw tcp/udp 2025-01-30 22:31:29 -05:00
Milo Schwartz
f40d91ff9e remove secure_cookies option from config 2025-01-30 21:53:42 -05:00
Owen Schwartz
f5e894e06a Make sure secure_cookies is true 2025-01-30 21:10:24 -05:00
Owen Schwartz
8fe479f809 Add . to make it clear there is already a dot 2025-01-30 21:02:12 -05:00
Owen Schwartz
9b9c343e2d Fix missing where clause; Resolves #117 2025-01-30 20:51:37 -05:00
Milo Schwartz
cb1ccbe945 update traefik_config example and remove quotes around smtp_port 2025-01-30 17:15:07 -05:00
Owen Schwartz
5de6028136 Put replaceme back 2025-01-30 12:27:07 -05:00
Owen Schwartz
e226a5e86b Move back to * imports 2025-01-30 12:25:59 -05:00
Owen Schwartz
f0ecfbb403 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-01-30 12:17:02 -05:00
Owen Schwartz
985418b9af Fix wrong config 2025-01-30 12:16:56 -05:00
Milo Schwartz
197c797264 fix cicd 2025-01-30 11:16:57 -05:00
Milo Schwartz
16b131970b Merge pull request #111 from fosrl/dev
major changes for 1.0.0-beta.9
2025-01-30 11:07:52 -05:00
Milo Schwartz
4541880d57 fix typo 2025-01-30 11:04:51 -05:00
Milo Schwartz
3e41e3d725 change order of cicd docker build step 2025-01-30 10:59:31 -05:00
Milo Schwartz
1bad0c538b add link to docs for tcp/udp 2025-01-30 10:55:57 -05:00
Milo Schwartz
61e6fb3126 update upload artifact version 2025-01-30 10:32:37 -05:00
Milo Schwartz
f80171ad53 update readme 2025-01-30 10:30:27 -05:00
Milo Schwartz
2b6552319c Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-01-30 00:08:47 -05:00
Milo Schwartz
5ce6cb01ff prep migration for release 2025-01-30 00:03:11 -05:00
Owen Schwartz
69621a430d Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-01-29 22:18:57 -05:00
Owen Schwartz
4f0b45dd9f Add badger version 2025-01-29 22:18:39 -05:00
Milo Schwartz
bdf72662bf do migration in one transaction with rollback 2025-01-29 19:55:08 -05:00
Milo Schwartz
34c8c0db70 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-01-29 11:14:28 -05:00
Milo Schwartz
44e7bf1199 fix typo 2025-01-29 11:14:10 -05:00
Owen Schwartz
f4ae2188e0 Fix typo courtesy of Discord @kazak 2025-01-29 09:34:55 -05:00
Milo Schwartz
20f659db89 fix zod schemas 2025-01-29 00:03:10 -05:00
Owen Schwartz
0e04e82b88 Squashed commit of the following:
commit c276d2193da5dbe7af5197bdf7e2bcce6f87b0cf
Author: Owen Schwartz <owen@txv.io>
Date:   Tue Jan 28 22:06:04 2025 -0500

    Okay actually now

commit 9afdc0aadc3f4fb4e811930bacff70a9e17eab9f
Author: Owen Schwartz <owen@txv.io>
Date:   Tue Jan 28 21:58:44 2025 -0500

    Migrations working finally

commit a7336b3b2466fe74d650b9c253ecadbe1eff749d
Merge: e7c7203 fdb1ab4
Author: Owen Schwartz <owen@txv.io>
Date:   Mon Jan 27 22:19:15 2025 -0500

    Merge branch 'dev' into tcp-udp-traffic

commit e7c7203330b1b08e570048b10ef314b55068e466
Author: Owen Schwartz <owen@txv.io>
Date:   Mon Jan 27 22:18:09 2025 -0500

    Working on migration

commit a4704dfd44b10647257c7c7054c0dae806d315bb
Author: Owen Schwartz <owen@txv.io>
Date:   Mon Jan 27 21:40:52 2025 -0500

    Add flag to allow raw resources

commit d74f7a57ed11e2a6bf1a7e0c28c29fb07eb573a0
Merge: 6817788 d791b9b
Author: Owen Schwartz <owen@txv.io>
Date:   Mon Jan 27 21:28:50 2025 -0500

    Merge branch 'tcp-udp-traffic' of https://github.com/fosrl/pangolin into tcp-udp-traffic

commit 68177882781b54ef30b62cca7dee8bbed7c5a2fa
Author: Owen Schwartz <owen@txv.io>
Date:   Mon Jan 27 21:28:32 2025 -0500

    Get everything working

commit d791b9b47f9f6ca050d6edfd1d674438f8562d99
Author: Milo Schwartz <mschwartz10612@gmail.com>
Date:   Mon Jan 27 17:46:19 2025 -0500

    fix orgId check in verifyAdmin

commit 6ac30afd7a449a126190d311bd98d7f1048f73a4
Author: Owen Schwartz <owen@txv.io>
Date:   Sun Jan 26 23:19:33 2025 -0500

    Trying to figure out traefik...

commit 9886b42272882f8bb6baff2efdbe26cee7cac2b6
Merge: 786e67e 85e9129
Author: Owen Schwartz <owen@txv.io>
Date:   Sun Jan 26 21:53:32 2025 -0500

    Merge branch 'tcp-udp-traffic' of https://github.com/fosrl/pangolin into tcp-udp-traffic

commit 786e67eadd6df1ee8df24e77aed20c1f1fc9ca67
Author: Owen Schwartz <owen@txv.io>
Date:   Sun Jan 26 21:51:37 2025 -0500

    Bug fixing

commit 85e9129ae313b2e4a460a8bc53a0af9f9fbbafb2
Author: Milo Schwartz <mschwartz10612@gmail.com>
Date:   Sun Jan 26 18:35:24 2025 -0500

    rethrow errors in migration and remove permanent redirect

commit bd82699505fc7510c27f72cd80ea0ce815d8c5ef
Author: Owen Schwartz <owen@txv.io>
Date:   Sun Jan 26 17:49:12 2025 -0500

    Fix merge issue

commit 933dbf3a02b1f19fd1f627410b2407fdf05cd9bf
Author: Owen Schwartz <owen@txv.io>
Date:   Sun Jan 26 17:46:13 2025 -0500

    Add sql to update resources and targets

commit f19437bad847c8dbf57fddd2c48cd17bab20ddb0
Merge: 58980eb 9f1f291
Author: Owen Schwartz <owen@txv.io>
Date:   Sun Jan 26 17:19:51 2025 -0500

    Merge branch 'dev' into tcp-udp-traffic

commit 58980ebb64d1040b4d224c76beb38c2254f3c5d9
Merge: 1de682a d284d36
Author: Owen Schwartz <owen@txv.io>
Date:   Sun Jan 26 17:10:09 2025 -0500

    Merge branch 'dev' into tcp-udp-traffic

commit 1de682a9f6039f40e05c8901c7381a94b0d018ed
Author: Owen Schwartz <owen@txv.io>
Date:   Sun Jan 26 17:08:29 2025 -0500

    Working on migrations

commit dc853d2bc02b11997be5c3c7ea789402716fb4c2
Author: Owen Schwartz <owen@txv.io>
Date:   Sun Jan 26 16:56:49 2025 -0500

    Finish config of resource pages

commit 37c681c08d7ab73d2cad41e7ef1dbe3a8852e1f2
Author: Owen Schwartz <owen@txv.io>
Date:   Sun Jan 26 16:07:25 2025 -0500

    Finish up table

commit 461c6650bbea0d7439cc042971ec13fdb52a7431
Author: Owen Schwartz <owen@txv.io>
Date:   Sun Jan 26 15:54:46 2025 -0500

    Working toward having dual resource types

commit f0894663627375e16ce6994370cb30b298efc2dc
Author: Owen Schwartz <owen@txv.io>
Date:   Sat Jan 25 22:31:25 2025 -0500

    Add qutoes

commit edc535b79b94c2e65b290cd90a69fe17d27245e9
Author: Owen Schwartz <owen@txv.io>
Date:   Sat Jan 25 22:28:45 2025 -0500

    Add readTimeout to allow long file uploads

commit 194892fa14b505bd7c2b31873dc13d4b8996c0e1
Author: Owen Schwartz <owen@txv.io>
Date:   Sat Jan 25 20:37:34 2025 -0500

    Rework traefik config generation

commit ad3f896b5333e4706d610c3198f29dcd67610365
Author: Owen Schwartz <owen@txv.io>
Date:   Sat Jan 25 13:01:47 2025 -0500

    Add proxy port to api

commit ca6013b2ffda0924a696ec3141825a54a4e5297d
Author: Owen Schwartz <owen@txv.io>
Date:   Sat Jan 25 12:58:01 2025 -0500

    Add migration

commit 2258d76cb3a49d3db7f05f76d8b8a9f1c248b5e4
Author: Owen Schwartz <owen@txv.io>
Date:   Sat Jan 25 12:55:02 2025 -0500

    Add new proxy port
2025-01-28 22:26:45 -05:00
Milo Schwartz
f874449d36 remove no reply check in send email 2025-01-28 22:13:46 -05:00
Milo Schwartz
397036640e add additional_middlewares 2025-01-28 21:39:17 -05:00
Milo Schwartz
60110350aa use smtp user if no no-reply set 2025-01-28 21:26:34 -05:00
Milo Schwartz
a57f0ab360 log password reset token if no smtp to allow reset password 2025-01-28 21:23:19 -05:00
Milo Schwartz
e0dd3c34b2 Merge pull request #107 from nkkfs/patch-1
Create pl.md
2025-01-28 11:58:10 -05:00
Kamil
472b0d7086 Create pl.md 2025-01-28 17:34:22 +01:00
Milo Schwartz
0bd8217d9e add failed auth logging 2025-01-27 22:43:32 -05:00
Milo Schwartz
fdb1ab4bd9 allow setting secure for smtp in config 2025-01-27 21:19:31 -05:00
Milo Schwartz
61b34c8b16 allow wildcard emails in email whitelist 2025-01-26 18:14:47 -05:00
Milo Schwartz
9f1f2910e4 refactor auth to work cross domain and with http resources closes #100 2025-01-26 14:42:02 -05:00
Milo Schwartz
6050a0a7d7 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-01-25 13:23:46 -05:00
Milo Schwartz
72f1686395 remove permanent redirect for https 2025-01-25 13:23:36 -05:00
Owen Schwartz
d284d36c24 Remove double transaction 2025-01-25 12:55:19 -05:00
Owen Schwartz
6cc6b0c239 docker-compose vs docker compose; Resolves #83 2025-01-25 12:27:27 -05:00
Milo Schwartz
8e5330fb82 add cicd 2025-01-24 23:18:27 -05:00
Milo Schwartz
2d0a367f1a fix link in resource alert not updating when changing ssl 2025-01-23 22:38:35 -05:00
Milo Schwartz
02b5f4d390 increase hitbox for links in buttons 2025-01-23 22:34:12 -05:00
Milo Schwartz
d1fead5050 use quotes around strings in yaml closes #96 2025-01-23 22:23:50 -05:00
Milo Schwartz
9a831e8e34 use id for data-value closes #86 2025-01-23 21:26:59 -05:00
Milo Schwartz
5f92b0bbc1 make all emails lowercase closes #89 2025-01-21 19:03:18 -05:00
Milo Schwartz
19232a81ef Create FUNDING.yml 2025-01-21 15:24:48 -05:00
Owen Schwartz
d1278c252b Merge branch 'dev' 2025-01-20 21:35:14 -05:00
Owen Schwartz
273d9675bf Bump version 2025-01-20 21:31:38 -05:00
Milo Schwartz
b4620cfea6 bump version 2025-01-20 21:30:34 -05:00
Owen Schwartz
2c8f824240 Pick always a new port for newt 2025-01-20 21:07:02 -05:00
Owen Schwartz
7c34f76695 Merge pull request #82 from fosrl/dev
Dev
2025-01-19 17:37:20 -05:00
Owen Schwartz
72d7ecb2ed Update clean 2025-01-19 17:36:48 -05:00
Owen Schwartz
75e70b5477 Merge branch 'main' of https://github.com/fosrl/pangolin 2025-01-19 17:33:54 -05:00
Owen Schwartz
4eca127781 Update gerbil version 2025-01-19 17:33:46 -05:00
Milo Schwartz
d27ecaae5e Merge pull request #77 from fosrl/hotfix-2
remove double createHttpError
2025-01-17 22:00:25 -05:00
Milo Schwartz
f0898613a2 remove double createHttpError 2025-01-17 21:59:06 -05:00
Owen Schwartz
40a2933e25 Merge pull request #76 from fosrl/bump-version
Bump version
2025-01-17 21:55:34 -05:00
Owen Schwartz
a208ab36b8 Bump version 2025-01-17 21:53:16 -05:00
Milo Schwartz
680c665242 Merge pull request #75 from mallendeo/patch-1
fix: add missing `await` when verifying pincode
2025-01-17 21:26:39 -05:00
Mauricio Allende
6b141c3ea0 fix: add missing await when verifying pincode
`validPincode` ends up as a `Promise` and evaluates as a thruthy value wether the pin is correct or not.
2025-01-17 22:54:20 -03:00
Julian
a039168217 add ability to transfer a resource to another site 2025-01-16 21:15:41 +01:00
Milo Schwartz
e4fe749251 Merge pull request #58 from fosrl/dev
various changes to to allow for unraid deployment
2025-01-15 23:52:49 -05:00
Milo Schwartz
ed5e6ec0f7 add port templates to traefik example files 2025-01-15 23:36:32 -05:00
Milo Schwartz
1aec431c36 optionally generate traefik files, set cors in config, and set trust proxy in config 2025-01-15 23:26:31 -05:00
Owen Schwartz
cb87463a69 Merge branch 'main' into dev 2025-01-15 21:38:15 -05:00
Owen Schwartz
4b5c74e8d6 Import start port at startup for now for exit node 2025-01-15 21:37:10 -05:00
Milo Schwartz
ab18e15a71 allow controlling cors from config and add cors middleware to traefik 2025-01-13 23:59:10 -05:00
Milo Schwartz
7ff5376d13 log url to docs if config error 2025-01-12 20:42:16 -05:00
1216 changed files with 220350 additions and 15358 deletions

View File

@@ -22,8 +22,13 @@ next-env.d.ts
*.log
.machinelogs*.json
*-audit.json
package-lock.json
install/
bruno/
LICENSE
CONTRIBUTING.md
dist
.git
migrations/
config/
build.ts
tsconfig.json

View File

@@ -1,6 +1,3 @@
{
"extends": [
"next/core-web-vitals",
"next/typescript"
]
"extends": ["next/core-web-vitals", "next/typescript"]
}

View File

@@ -0,0 +1,47 @@
body:
- type: textarea
attributes:
label: Summary
description: A clear and concise summary of the requested feature.
validations:
required: true
- type: textarea
attributes:
label: Motivation
description: |
Why is this feature important?
Explain the problem this feature would solve or what use case it would enable.
validations:
required: true
- type: textarea
attributes:
label: Proposed Solution
description: |
How would you like to see this feature implemented?
Provide as much detail as possible about the desired behavior, configuration, or changes.
validations:
required: true
- type: textarea
attributes:
label: Alternatives Considered
description: Describe any alternative solutions or workarounds you've thought about.
validations:
required: false
- type: textarea
attributes:
label: Additional Context
description: Add any other context, mockups, or screenshots about the feature request here.
validations:
required: false
- type: markdown
attributes:
value: |
Before submitting, please:
- Check if there is an existing issue for this feature.
- Clearly explain the benefit and use case.
- Be as specific as possible to help contributors evaluate and implement.

3
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,3 @@
# These are supported funding model platforms
github: [fosrl]

51
.github/ISSUE_TEMPLATE/1.bug_report.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: Bug Report
description: Create a bug report
labels: []
body:
- type: textarea
attributes:
label: Describe the Bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
attributes:
label: Environment
description: Please fill out the relevant details below for your environment.
value: |
- OS Type & Version: (e.g., Ubuntu 22.04)
- Pangolin Version:
- Gerbil Version:
- Traefik Version:
- Newt Version:
- Olm Version: (if applicable)
validations:
required: true
- type: textarea
attributes:
label: To Reproduce
description: |
Steps to reproduce the behavior, please provide a clear description of how to reproduce the issue, based on the linked minimal reproduction. Screenshots can be provided in the issue body below.
If using code blocks, make sure syntax highlighting is correct and double-check that the rendered preview is not broken.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: markdown
attributes:
value: |
Before posting the issue go through the steps you've written down to make sure the steps provided are detailed and clear.
- type: markdown
attributes:
value: |
Contributors should be able to follow the steps provided in order to reproduce the bug.

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Need help or have questions?
url: https://github.com/orgs/fosrl/discussions
about: Ask questions, get help, and discuss with other community members
- name: Request a Feature
url: https://github.com/orgs/fosrl/discussions/new?category=feature-requests
about: Feature requests should be opened as discussions so others can upvote and comment

62
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
groups:
dev-patch-updates:
dependency-type: "development"
update-types:
- "patch"
dev-minor-updates:
dependency-type: "development"
update-types:
- "minor"
prod-patch-updates:
dependency-type: "production"
update-types:
- "patch"
prod-minor-updates:
dependency-type: "production"
update-types:
- "minor"
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "daily"
groups:
patch-updates:
update-types:
- "patch"
minor-updates:
update-types:
- "minor"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "gomod"
directory: "/install"
schedule:
interval: "daily"
groups:
dev-patch-updates:
dependency-type: "development"
update-types:
- "patch"
dev-minor-updates:
dependency-type: "development"
update-types:
- "minor"
prod-patch-updates:
dependency-type: "production"
update-types:
- "patch"
prod-minor-updates:
dependency-type: "production"
update-types:
- "minor"

529
.github/workflows/cicd.yml vendored Normal file
View File

@@ -0,0 +1,529 @@
name: CI/CD Pipeline
# CI/CD workflow for building, publishing, mirroring, signing container images and building release binaries.
# Actions are pinned to specific SHAs to reduce supply-chain risk. This workflow triggers on tag push events.
permissions:
contents: read
packages: write # for GHCR push
id-token: write # for Cosign Keyless (OIDC) Signing
# Required secrets:
# - DOCKER_HUB_USERNAME / DOCKER_HUB_ACCESS_TOKEN: push to Docker Hub
# - GITHUB_TOKEN: used for GHCR login and OIDC keyless signing
# - COSIGN_PRIVATE_KEY / COSIGN_PASSWORD / COSIGN_PUBLIC_KEY: for key-based signing
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+"
- "[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+"
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
pre-run:
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Start EC2 instances
run: |
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances started"
release-arm:
name: Build and Release (ARM64)
runs-on: [self-hosted, linux, arm64, us-east-1]
needs: [pre-run]
if: >-
${{
needs.pre-run.result == 'success'
}}
# Job-level timeout to avoid runaway or stuck runs
timeout-minutes: 120
env:
# Target images
DOCKERHUB_IMAGE: docker.io/fosrl/${{ github.event.repository.name }}
GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Monitor storage space
run: |
THRESHOLD=75
USED_SPACE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
echo "Used space: $USED_SPACE%"
if [ "$USED_SPACE" -ge "$THRESHOLD" ]; then
echo "Used space is below the threshold of 75% free. Running Docker system prune."
echo y | docker system prune -a
else
echo "Storage space is above the threshold. No action needed."
fi
- name: Log in to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Update version in package.json
run: |
TAG=${{ env.TAG }}
sed -i "s/export const APP_VERSION = \".*\";/export const APP_VERSION = \"$TAG\";/" server/lib/consts.ts
cat server/lib/consts.ts
shell: bash
- name: Check if release candidate
id: check-rc
run: |
TAG=${{ env.TAG }}
if [[ "$TAG" == *"-rc."* ]]; then
echo "IS_RC=true" >> $GITHUB_ENV
else
echo "IS_RC=false" >> $GITHUB_ENV
fi
shell: bash
- name: Build and push Docker images (Docker Hub - ARM64)
run: |
TAG=${{ env.TAG }}
if [ "$IS_RC" = "true" ]; then
make build-rc-arm tag=$TAG
else
make build-release-arm tag=$TAG
fi
echo "Built & pushed ARM64 images to: ${{ env.DOCKERHUB_IMAGE }}:${TAG}"
shell: bash
release-amd:
name: Build and Release (AMD64)
runs-on: [self-hosted, linux, x64, us-east-1]
needs: [pre-run]
if: >-
${{
needs.pre-run.result == 'success'
}}
# Job-level timeout to avoid runaway or stuck runs
timeout-minutes: 120
env:
# Target images
DOCKERHUB_IMAGE: docker.io/fosrl/${{ github.event.repository.name }}
GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Monitor storage space
run: |
THRESHOLD=75
USED_SPACE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
echo "Used space: $USED_SPACE%"
if [ "$USED_SPACE" -ge "$THRESHOLD" ]; then
echo "Used space is below the threshold of 75% free. Running Docker system prune."
echo y | docker system prune -a
else
echo "Storage space is above the threshold. No action needed."
fi
- name: Log in to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Update version in package.json
run: |
TAG=${{ env.TAG }}
sed -i "s/export const APP_VERSION = \".*\";/export const APP_VERSION = \"$TAG\";/" server/lib/consts.ts
cat server/lib/consts.ts
shell: bash
- name: Check if release candidate
id: check-rc
run: |
TAG=${{ env.TAG }}
if [[ "$TAG" == *"-rc."* ]]; then
echo "IS_RC=true" >> $GITHUB_ENV
else
echo "IS_RC=false" >> $GITHUB_ENV
fi
shell: bash
- name: Build and push Docker images (Docker Hub - AMD64)
run: |
TAG=${{ env.TAG }}
if [ "$IS_RC" = "true" ]; then
make build-rc-amd tag=$TAG
else
make build-release-amd tag=$TAG
fi
echo "Built & pushed AMD64 images to: ${{ env.DOCKERHUB_IMAGE }}:${TAG}"
shell: bash
create-manifest:
name: Create Multi-Arch Manifests
runs-on: [self-hosted, linux, x64, us-east-1]
needs: [release-arm, release-amd]
if: >-
${{
needs.release-arm.result == 'success' &&
needs.release-amd.result == 'success'
}}
timeout-minutes: 30
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Log in to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Check if release candidate
id: check-rc
run: |
TAG=${{ env.TAG }}
if [[ "$TAG" == *"-rc."* ]]; then
echo "IS_RC=true" >> $GITHUB_ENV
else
echo "IS_RC=false" >> $GITHUB_ENV
fi
shell: bash
- name: Create multi-arch manifests
run: |
TAG=${{ env.TAG }}
if [ "$IS_RC" = "true" ]; then
make create-manifests-rc tag=$TAG
else
make create-manifests tag=$TAG
fi
echo "Created multi-arch manifests for tag: ${TAG}"
shell: bash
sign-and-package:
name: Sign and Package
runs-on: [self-hosted, linux, x64, us-east-1]
needs: [release-arm, release-amd, create-manifest]
if: >-
${{
needs.release-arm.result == 'success' &&
needs.release-amd.result == 'success' &&
needs.create-manifest.result == 'success'
}}
# Job-level timeout to avoid runaway or stuck runs
timeout-minutes: 120
env:
# Target images
DOCKERHUB_IMAGE: docker.io/fosrl/${{ github.event.repository.name }}
GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Install Go
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version: 1.24
- name: Update version in package.json
run: |
TAG=${{ env.TAG }}
sed -i "s/export const APP_VERSION = \".*\";/export const APP_VERSION = \"$TAG\";/" server/lib/consts.ts
cat server/lib/consts.ts
shell: bash
- name: Pull latest Gerbil version
id: get-gerbil-tag
run: |
LATEST_TAG=$(curl -s https://api.github.com/repos/fosrl/gerbil/tags | jq -r '.[0].name')
echo "LATEST_GERBIL_TAG=$LATEST_TAG" >> $GITHUB_ENV
shell: bash
- name: Pull latest Badger version
id: get-badger-tag
run: |
LATEST_TAG=$(curl -s https://api.github.com/repos/fosrl/badger/tags | jq -r '.[0].name')
echo "LATEST_BADGER_TAG=$LATEST_TAG" >> $GITHUB_ENV
shell: bash
- name: Update install/main.go
run: |
PANGOLIN_VERSION=${{ env.TAG }}
GERBIL_VERSION=${{ env.LATEST_GERBIL_TAG }}
BADGER_VERSION=${{ env.LATEST_BADGER_TAG }}
sed -i "s/config.PangolinVersion = \".*\"/config.PangolinVersion = \"$PANGOLIN_VERSION\"/" install/main.go
sed -i "s/config.GerbilVersion = \".*\"/config.GerbilVersion = \"$GERBIL_VERSION\"/" install/main.go
sed -i "s/config.BadgerVersion = \".*\"/config.BadgerVersion = \"$BADGER_VERSION\"/" install/main.go
echo "Updated install/main.go with Pangolin version $PANGOLIN_VERSION, Gerbil version $GERBIL_VERSION, and Badger version $BADGER_VERSION"
cat install/main.go
shell: bash
- name: Build installer
working-directory: install
run: |
make go-build-release
- name: Upload artifacts from /install/bin
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: install-bin
path: install/bin/
- name: Install skopeo + jq
# skopeo: copy/inspect images between registries
# jq: JSON parsing tool used to extract digest values
run: |
sudo apt-get update -y
sudo apt-get install -y skopeo jq
skopeo --version
shell: bash
- name: Login to GHCR
env:
REGISTRY_AUTH_FILE: ${{ runner.temp }}/containers/auth.json
run: |
mkdir -p "$(dirname "$REGISTRY_AUTH_FILE")"
skopeo login ghcr.io -u "${{ github.actor }}" -p "${{ secrets.GITHUB_TOKEN }}"
shell: bash
- name: Copy tags from Docker Hub to GHCR
# Mirror the already-built images (all architectures) to GHCR so we can sign them
# Wait a bit for both architectures to be available in Docker Hub manifest
env:
REGISTRY_AUTH_FILE: ${{ runner.temp }}/containers/auth.json
run: |
set -euo pipefail
TAG=${{ env.TAG }}
MAJOR_TAG=$(echo $TAG | cut -d. -f1)
MINOR_TAG=$(echo $TAG | cut -d. -f1,2)
echo "Waiting for multi-arch manifests to be ready..."
sleep 30
# Determine if this is an RC release
IS_RC="false"
if [[ "$TAG" == *"-rc."* ]]; then
IS_RC="true"
fi
if [ "$IS_RC" = "true" ]; then
echo "RC release detected - copying version-specific tags only"
# SQLite OSS
echo "Copying ${{ env.DOCKERHUB_IMAGE }}:${TAG} -> ${{ env.GHCR_IMAGE }}:${TAG}"
skopeo copy --all --retry-times 3 \
docker://$DOCKERHUB_IMAGE:$TAG \
docker://$GHCR_IMAGE:$TAG
# PostgreSQL OSS
echo "Copying ${{ env.DOCKERHUB_IMAGE }}:postgresql-${TAG} -> ${{ env.GHCR_IMAGE }}:postgresql-${TAG}"
skopeo copy --all --retry-times 3 \
docker://$DOCKERHUB_IMAGE:postgresql-$TAG \
docker://$GHCR_IMAGE:postgresql-$TAG
# SQLite Enterprise
echo "Copying ${{ env.DOCKERHUB_IMAGE }}:ee-${TAG} -> ${{ env.GHCR_IMAGE }}:ee-${TAG}"
skopeo copy --all --retry-times 3 \
docker://$DOCKERHUB_IMAGE:ee-$TAG \
docker://$GHCR_IMAGE:ee-$TAG
# PostgreSQL Enterprise
echo "Copying ${{ env.DOCKERHUB_IMAGE }}:ee-postgresql-${TAG} -> ${{ env.GHCR_IMAGE }}:ee-postgresql-${TAG}"
skopeo copy --all --retry-times 3 \
docker://$DOCKERHUB_IMAGE:ee-postgresql-$TAG \
docker://$GHCR_IMAGE:ee-postgresql-$TAG
else
echo "Regular release detected - copying all tags (latest, major, minor, full version)"
# SQLite OSS - all tags
for TAG_SUFFIX in "latest" "$MAJOR_TAG" "$MINOR_TAG" "$TAG"; do
echo "Copying ${{ env.DOCKERHUB_IMAGE }}:${TAG_SUFFIX} -> ${{ env.GHCR_IMAGE }}:${TAG_SUFFIX}"
skopeo copy --all --retry-times 3 \
docker://$DOCKERHUB_IMAGE:$TAG_SUFFIX \
docker://$GHCR_IMAGE:$TAG_SUFFIX
done
# PostgreSQL OSS - all tags
for TAG_SUFFIX in "latest" "$MAJOR_TAG" "$MINOR_TAG" "$TAG"; do
echo "Copying ${{ env.DOCKERHUB_IMAGE }}:postgresql-${TAG_SUFFIX} -> ${{ env.GHCR_IMAGE }}:postgresql-${TAG_SUFFIX}"
skopeo copy --all --retry-times 3 \
docker://$DOCKERHUB_IMAGE:postgresql-$TAG_SUFFIX \
docker://$GHCR_IMAGE:postgresql-$TAG_SUFFIX
done
# SQLite Enterprise - all tags
for TAG_SUFFIX in "latest" "$MAJOR_TAG" "$MINOR_TAG" "$TAG"; do
echo "Copying ${{ env.DOCKERHUB_IMAGE }}:ee-${TAG_SUFFIX} -> ${{ env.GHCR_IMAGE }}:ee-${TAG_SUFFIX}"
skopeo copy --all --retry-times 3 \
docker://$DOCKERHUB_IMAGE:ee-$TAG_SUFFIX \
docker://$GHCR_IMAGE:ee-$TAG_SUFFIX
done
# PostgreSQL Enterprise - all tags
for TAG_SUFFIX in "latest" "$MAJOR_TAG" "$MINOR_TAG" "$TAG"; do
echo "Copying ${{ env.DOCKERHUB_IMAGE }}:ee-postgresql-${TAG_SUFFIX} -> ${{ env.GHCR_IMAGE }}:ee-postgresql-${TAG_SUFFIX}"
skopeo copy --all --retry-times 3 \
docker://$DOCKERHUB_IMAGE:ee-postgresql-$TAG_SUFFIX \
docker://$GHCR_IMAGE:ee-postgresql-$TAG_SUFFIX
done
fi
echo "All images copied successfully to GHCR!"
shell: bash
- name: Login to GitHub Container Registry (for cosign)
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Install cosign
# cosign is used to sign and verify container images (key and keyless)
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
- name: Dual-sign and verify (GHCR & Docker Hub)
# Sign each image by digest using keyless (OIDC) and key-based signing,
# then verify both the public key signature and the keyless OIDC signature.
env:
TAG: ${{ env.TAG }}
COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }}
COSIGN_PUBLIC_KEY: ${{ secrets.COSIGN_PUBLIC_KEY }}
COSIGN_YES: "true"
run: |
set -euo pipefail
issuer="https://token.actions.githubusercontent.com"
id_regex="^https://github.com/${{ github.repository }}/.+" # accept this repo (all workflows/refs)
# Determine if this is an RC release
IS_RC="false"
if echo "$TAG" | grep -qE "rc[0-9]+$"; then
IS_RC="true"
fi
# Define image variants to sign
if [ "$IS_RC" = "true" ]; then
echo "RC release - signing version-specific tags only"
IMAGE_TAGS=(
"${TAG}"
"postgresql-${TAG}"
"ee-${TAG}"
"ee-postgresql-${TAG}"
)
else
echo "Regular release - signing all tags"
MAJOR_TAG=$(echo $TAG | cut -d. -f1)
MINOR_TAG=$(echo $TAG | cut -d. -f1,2)
IMAGE_TAGS=(
"latest" "$MAJOR_TAG" "$MINOR_TAG" "$TAG"
"postgresql-latest" "postgresql-$MAJOR_TAG" "postgresql-$MINOR_TAG" "postgresql-$TAG"
"ee-latest" "ee-$MAJOR_TAG" "ee-$MINOR_TAG" "ee-$TAG"
"ee-postgresql-latest" "ee-postgresql-$MAJOR_TAG" "ee-postgresql-$MINOR_TAG" "ee-postgresql-$TAG"
)
fi
# Sign each image variant for both registries
for BASE_IMAGE in "${GHCR_IMAGE}" "${DOCKERHUB_IMAGE}"; do
for IMAGE_TAG in "${IMAGE_TAGS[@]}"; do
echo "Processing ${BASE_IMAGE}:${IMAGE_TAG}"
DIGEST="$(skopeo inspect --retry-times 3 docker://${BASE_IMAGE}:${IMAGE_TAG} | jq -r '.Digest')"
REF="${BASE_IMAGE}@${DIGEST}"
echo "Resolved digest: ${REF}"
echo "==> cosign sign (keyless) --recursive ${REF}"
cosign sign --recursive "${REF}"
echo "==> cosign sign (key) --recursive ${REF}"
cosign sign --key env://COSIGN_PRIVATE_KEY --recursive "${REF}"
echo "==> cosign verify (public key) ${REF}"
cosign verify --key env://COSIGN_PUBLIC_KEY "${REF}" -o text
echo "==> cosign verify (keyless policy) ${REF}"
cosign verify \
--certificate-oidc-issuer "${issuer}" \
--certificate-identity-regexp "${id_regex}" \
"${REF}" -o text
echo "✓ Successfully signed and verified ${BASE_IMAGE}:${IMAGE_TAG}"
done
done
echo "All images signed and verified successfully!"
shell: bash
post-run:
needs: [pre-run, release-arm, release-amd, create-manifest, sign-and-package]
if: >-
${{
always() &&
needs.pre-run.result == 'success' &&
(needs.release-arm.result == 'success' || needs.release-arm.result == 'skipped' || needs.release-arm.result == 'failure') &&
(needs.release-amd.result == 'success' || needs.release-amd.result == 'skipped' || needs.release-amd.result == 'failure') &&
(needs.create-manifest.result == 'success' || needs.create-manifest.result == 'skipped' || needs.create-manifest.result == 'failure') &&
(needs.sign-and-package.result == 'success' || needs.sign-and-package.result == 'skipped' || needs.sign-and-package.result == 'failure')
}}
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Stop EC2 instances
run: |
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances stopped"

426
.github/workflows/cicd.yml.backup vendored Normal file
View File

@@ -0,0 +1,426 @@
name: CI/CD Pipeline
# CI/CD workflow for building, publishing, mirroring, signing container images and building release binaries.
# Actions are pinned to specific SHAs to reduce supply-chain risk. This workflow triggers on tag push events.
permissions:
contents: read
packages: write # for GHCR push
id-token: write # for Cosign Keyless (OIDC) Signing
# Required secrets:
# - DOCKER_HUB_USERNAME / DOCKER_HUB_ACCESS_TOKEN: push to Docker Hub
# - GITHUB_TOKEN: used for GHCR login and OIDC keyless signing
# - COSIGN_PRIVATE_KEY / COSIGN_PASSWORD / COSIGN_PUBLIC_KEY: for key-based signing
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+"
- "[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+"
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
pre-run:
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Start EC2 instances
run: |
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances started"
release-arm:
name: Build and Release (ARM64)
runs-on: [self-hosted, linux, arm64, us-east-1]
needs: [pre-run]
if: >-
${{
needs.pre-run.result == 'success'
}}
# Job-level timeout to avoid runaway or stuck runs
timeout-minutes: 120
env:
# Target images
DOCKERHUB_IMAGE: docker.io/fosrl/${{ github.event.repository.name }}
GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Monitor storage space
run: |
THRESHOLD=75
USED_SPACE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
echo "Used space: $USED_SPACE%"
if [ "$USED_SPACE" -ge "$THRESHOLD" ]; then
echo "Used space is below the threshold of 75% free. Running Docker system prune."
echo y | docker system prune -a
else
echo "Storage space is above the threshold. No action needed."
fi
- name: Log in to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Update version in package.json
run: |
TAG=${{ env.TAG }}
sed -i "s/export const APP_VERSION = \".*\";/export const APP_VERSION = \"$TAG\";/" server/lib/consts.ts
cat server/lib/consts.ts
shell: bash
- name: Check if release candidate
id: check-rc
run: |
TAG=${{ env.TAG }}
if [[ "$TAG" == *"-rc."* ]]; then
echo "IS_RC=true" >> $GITHUB_ENV
else
echo "IS_RC=false" >> $GITHUB_ENV
fi
shell: bash
- name: Build and push Docker images (Docker Hub - ARM64)
run: |
TAG=${{ env.TAG }}
if [ "$IS_RC" = "true" ]; then
make build-rc-arm tag=$TAG
else
make build-release-arm tag=$TAG
fi
echo "Built & pushed ARM64 images to: ${{ env.DOCKERHUB_IMAGE }}:${TAG}"
shell: bash
release-amd:
name: Build and Release (AMD64)
runs-on: [self-hosted, linux, x64, us-east-1]
needs: [pre-run]
if: >-
${{
needs.pre-run.result == 'success'
}}
# Job-level timeout to avoid runaway or stuck runs
timeout-minutes: 120
env:
# Target images
DOCKERHUB_IMAGE: docker.io/fosrl/${{ github.event.repository.name }}
GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Monitor storage space
run: |
THRESHOLD=75
USED_SPACE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
echo "Used space: $USED_SPACE%"
if [ "$USED_SPACE" -ge "$THRESHOLD" ]; then
echo "Used space is below the threshold of 75% free. Running Docker system prune."
echo y | docker system prune -a
else
echo "Storage space is above the threshold. No action needed."
fi
- name: Log in to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Update version in package.json
run: |
TAG=${{ env.TAG }}
sed -i "s/export const APP_VERSION = \".*\";/export const APP_VERSION = \"$TAG\";/" server/lib/consts.ts
cat server/lib/consts.ts
shell: bash
- name: Check if release candidate
id: check-rc
run: |
TAG=${{ env.TAG }}
if [[ "$TAG" == *"-rc."* ]]; then
echo "IS_RC=true" >> $GITHUB_ENV
else
echo "IS_RC=false" >> $GITHUB_ENV
fi
shell: bash
- name: Build and push Docker images (Docker Hub - AMD64)
run: |
TAG=${{ env.TAG }}
if [ "$IS_RC" = "true" ]; then
make build-rc-amd tag=$TAG
else
make build-release-amd tag=$TAG
fi
echo "Built & pushed AMD64 images to: ${{ env.DOCKERHUB_IMAGE }}:${TAG}"
shell: bash
create-manifest:
name: Create Multi-Arch Manifests
runs-on: [self-hosted, linux, x64, us-east-1]
needs: [release-arm, release-amd]
if: >-
${{
needs.release-arm.result == 'success' &&
needs.release-amd.result == 'success'
}}
timeout-minutes: 30
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Log in to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Check if release candidate
id: check-rc
run: |
TAG=${{ env.TAG }}
if [[ "$TAG" == *"-rc."* ]]; then
echo "IS_RC=true" >> $GITHUB_ENV
else
echo "IS_RC=false" >> $GITHUB_ENV
fi
shell: bash
- name: Create multi-arch manifests
run: |
TAG=${{ env.TAG }}
if [ "$IS_RC" = "true" ]; then
make create-manifests-rc tag=$TAG
else
make create-manifests tag=$TAG
fi
echo "Created multi-arch manifests for tag: ${TAG}"
shell: bash
sign-and-package:
name: Sign and Package
runs-on: [self-hosted, linux, x64, us-east-1]
needs: [release-arm, release-amd, create-manifest]
if: >-
${{
needs.release-arm.result == 'success' &&
needs.release-amd.result == 'success' &&
needs.create-manifest.result == 'success'
}}
# Job-level timeout to avoid runaway or stuck runs
timeout-minutes: 120
env:
# Target images
DOCKERHUB_IMAGE: docker.io/fosrl/${{ github.event.repository.name }}
GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Install Go
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
with:
go-version: 1.24
- name: Update version in package.json
run: |
TAG=${{ env.TAG }}
sed -i "s/export const APP_VERSION = \".*\";/export const APP_VERSION = \"$TAG\";/" server/lib/consts.ts
cat server/lib/consts.ts
shell: bash
- name: Pull latest Gerbil version
id: get-gerbil-tag
run: |
LATEST_TAG=$(curl -s https://api.github.com/repos/fosrl/gerbil/tags | jq -r '.[0].name')
echo "LATEST_GERBIL_TAG=$LATEST_TAG" >> $GITHUB_ENV
shell: bash
- name: Pull latest Badger version
id: get-badger-tag
run: |
LATEST_TAG=$(curl -s https://api.github.com/repos/fosrl/badger/tags | jq -r '.[0].name')
echo "LATEST_BADGER_TAG=$LATEST_TAG" >> $GITHUB_ENV
shell: bash
- name: Update install/main.go
run: |
PANGOLIN_VERSION=${{ env.TAG }}
GERBIL_VERSION=${{ env.LATEST_GERBIL_TAG }}
BADGER_VERSION=${{ env.LATEST_BADGER_TAG }}
sed -i "s/config.PangolinVersion = \".*\"/config.PangolinVersion = \"$PANGOLIN_VERSION\"/" install/main.go
sed -i "s/config.GerbilVersion = \".*\"/config.GerbilVersion = \"$GERBIL_VERSION\"/" install/main.go
sed -i "s/config.BadgerVersion = \".*\"/config.BadgerVersion = \"$BADGER_VERSION\"/" install/main.go
echo "Updated install/main.go with Pangolin version $PANGOLIN_VERSION, Gerbil version $GERBIL_VERSION, and Badger version $BADGER_VERSION"
cat install/main.go
shell: bash
- name: Build installer
working-directory: install
run: |
make go-build-release
- name: Upload artifacts from /install/bin
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: install-bin
path: install/bin/
- name: Install skopeo + jq
# skopeo: copy/inspect images between registries
# jq: JSON parsing tool used to extract digest values
run: |
sudo apt-get update -y
sudo apt-get install -y skopeo jq
skopeo --version
shell: bash
- name: Login to GHCR
env:
REGISTRY_AUTH_FILE: ${{ runner.temp }}/containers/auth.json
run: |
mkdir -p "$(dirname "$REGISTRY_AUTH_FILE")"
skopeo login ghcr.io -u "${{ github.actor }}" -p "${{ secrets.GITHUB_TOKEN }}"
shell: bash
- name: Copy tag from Docker Hub to GHCR
# Mirror the already-built image (all architectures) to GHCR so we can sign it
# Wait a bit for both architectures to be available in Docker Hub manifest
env:
REGISTRY_AUTH_FILE: ${{ runner.temp }}/containers/auth.json
run: |
set -euo pipefail
TAG=${{ env.TAG }}
echo "Waiting for multi-arch manifest to be ready..."
sleep 30
echo "Copying ${{ env.DOCKERHUB_IMAGE }}:${TAG} -> ${{ env.GHCR_IMAGE }}:${TAG}"
skopeo copy --all --retry-times 3 \
docker://$DOCKERHUB_IMAGE:$TAG \
docker://$GHCR_IMAGE:$TAG
shell: bash
- name: Login to GitHub Container Registry (for cosign)
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Install cosign
# cosign is used to sign and verify container images (key and keyless)
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
- name: Dual-sign and verify (GHCR & Docker Hub)
# Sign each image by digest using keyless (OIDC) and key-based signing,
# then verify both the public key signature and the keyless OIDC signature.
env:
TAG: ${{ env.TAG }}
COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }}
COSIGN_PUBLIC_KEY: ${{ secrets.COSIGN_PUBLIC_KEY }}
COSIGN_YES: "true"
run: |
set -euo pipefail
issuer="https://token.actions.githubusercontent.com"
id_regex="^https://github.com/${{ github.repository }}/.+" # accept this repo (all workflows/refs)
for IMAGE in "${GHCR_IMAGE}" "${DOCKERHUB_IMAGE}"; do
echo "Processing ${IMAGE}:${TAG}"
DIGEST="$(skopeo inspect --retry-times 3 docker://${IMAGE}:${TAG} | jq -r '.Digest')"
REF="${IMAGE}@${DIGEST}"
echo "Resolved digest: ${REF}"
echo "==> cosign sign (keyless) --recursive ${REF}"
cosign sign --recursive "${REF}"
echo "==> cosign sign (key) --recursive ${REF}"
cosign sign --key env://COSIGN_PRIVATE_KEY --recursive "${REF}"
echo "==> cosign verify (public key) ${REF}"
cosign verify --key env://COSIGN_PUBLIC_KEY "${REF}" -o text
echo "==> cosign verify (keyless policy) ${REF}"
cosign verify \
--certificate-oidc-issuer "${issuer}" \
--certificate-identity-regexp "${id_regex}" \
"${REF}" -o text
done
shell: bash
post-run:
needs: [pre-run, release-arm, release-amd, create-manifest, sign-and-package]
if: >-
${{
always() &&
needs.pre-run.result == 'success' &&
(needs.release-arm.result == 'success' || needs.release-arm.result == 'skipped' || needs.release-arm.result == 'failure') &&
(needs.release-amd.result == 'success' || needs.release-amd.result == 'skipped' || needs.release-amd.result == 'failure') &&
(needs.create-manifest.result == 'success' || needs.create-manifest.result == 'skipped' || needs.create-manifest.result == 'failure') &&
(needs.sign-and-package.result == 'success' || needs.sign-and-package.result == 'skipped' || needs.sign-and-package.result == 'failure')
}}
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Stop EC2 instances
run: |
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances stopped"

38
.github/workflows/linting.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: ESLint
permissions:
contents: read
on:
pull_request:
paths:
- '**/*.js'
- '**/*.jsx'
- '**/*.ts'
- '**/*.tsx'
- '.eslintrc*'
- 'package.json'
- 'yarn.lock'
- 'pnpm-lock.yaml'
- 'package-lock.json'
jobs:
Linter:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Set up Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: '22'
- name: Install dependencies
run: npm ci
- name: Create build file
run: npm run set:oss
- name: Run ESLint
run: npx eslint . --ext .js,.jsx,.ts,.tsx

132
.github/workflows/mirror.yaml vendored Normal file
View File

@@ -0,0 +1,132 @@
name: Mirror & Sign (Docker Hub to GHCR)
on:
workflow_dispatch: {}
permissions:
contents: read
packages: write
id-token: write # for keyless OIDC
env:
SOURCE_IMAGE: docker.io/fosrl/pangolin
DEST_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
jobs:
mirror-and-dual-sign:
runs-on: amd64-runner
steps:
- name: Install skopeo + jq
run: |
sudo apt-get update -y
sudo apt-get install -y skopeo jq
skopeo --version
- name: Install cosign
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
- name: Input check
run: |
test -n "${SOURCE_IMAGE}" || (echo "SOURCE_IMAGE is empty" && exit 1)
echo "Source : ${SOURCE_IMAGE}"
echo "Target : ${DEST_IMAGE}"
# Auth for skopeo (containers-auth)
- name: Skopeo login to GHCR
run: |
skopeo login ghcr.io -u "${{ github.actor }}" -p "${{ secrets.GITHUB_TOKEN }}"
# Auth for cosign (docker-config)
- name: Docker login to GHCR (for cosign)
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${{ github.actor }}" --password-stdin
- name: List source tags
run: |
set -euo pipefail
skopeo list-tags --retry-times 3 docker://"${SOURCE_IMAGE}" \
| jq -r '.Tags[]' | grep -v -e '-arm64' -e '-amd64' | sort -u > src-tags.txt
echo "Found source tags: $(wc -l < src-tags.txt)"
head -n 20 src-tags.txt || true
- name: List destination tags (skip existing)
run: |
set -euo pipefail
if skopeo list-tags --retry-times 3 docker://"${DEST_IMAGE}" >/tmp/dst.json 2>/dev/null; then
jq -r '.Tags[]' /tmp/dst.json | sort -u > dst-tags.txt
else
: > dst-tags.txt
fi
echo "Existing destination tags: $(wc -l < dst-tags.txt)"
- name: Mirror, dual-sign, and verify
env:
# keyless
COSIGN_YES: "true"
# key-based
COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }}
# verify
COSIGN_PUBLIC_KEY: ${{ secrets.COSIGN_PUBLIC_KEY }}
run: |
set -euo pipefail
copied=0; skipped=0; v_ok=0; errs=0
issuer="https://token.actions.githubusercontent.com"
id_regex="^https://github.com/${{ github.repository }}/.+"
while read -r tag; do
[ -z "$tag" ] && continue
if grep -Fxq "$tag" dst-tags.txt; then
echo "::notice ::Skip (exists) ${DEST_IMAGE}:${tag}"
skipped=$((skipped+1))
continue
fi
echo "==> Copy ${SOURCE_IMAGE}:${tag} → ${DEST_IMAGE}:${tag}"
if ! skopeo copy --all --retry-times 3 \
docker://"${SOURCE_IMAGE}:${tag}" docker://"${DEST_IMAGE}:${tag}"; then
echo "::warning title=Copy failed::${SOURCE_IMAGE}:${tag}"
errs=$((errs+1)); continue
fi
copied=$((copied+1))
digest="$(skopeo inspect --retry-times 3 docker://"${DEST_IMAGE}:${tag}" | jq -r '.Digest')"
ref="${DEST_IMAGE}@${digest}"
echo "==> cosign sign (keyless) --recursive ${ref}"
if ! cosign sign --recursive "${ref}"; then
echo "::warning title=Keyless sign failed::${ref}"
errs=$((errs+1))
fi
echo "==> cosign sign (key) --recursive ${ref}"
if ! cosign sign --key env://COSIGN_PRIVATE_KEY --recursive "${ref}"; then
echo "::warning title=Key sign failed::${ref}"
errs=$((errs+1))
fi
echo "==> cosign verify (public key) ${ref}"
if ! cosign verify --key env://COSIGN_PUBLIC_KEY "${ref}" -o text; then
echo "::warning title=Verify(pubkey) failed::${ref}"
errs=$((errs+1))
fi
echo "==> cosign verify (keyless policy) ${ref}"
if ! cosign verify \
--certificate-oidc-issuer "${issuer}" \
--certificate-identity-regexp "${id_regex}" \
"${ref}" -o text; then
echo "::warning title=Verify(keyless) failed::${ref}"
errs=$((errs+1))
else
v_ok=$((v_ok+1))
fi
done < src-tags.txt
echo "---- Summary ----"
echo "Copied : $copied"
echo "Skipped : $skipped"
echo "Verified OK : $v_ok"
echo "Errors : $errs"

39
.github/workflows/restart-runners.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: Restart Runners
on:
schedule:
- cron: '0 0 */7 * *'
permissions:
id-token: write
contents: read
jobs:
ec2-maintenance-prod:
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Start EC2 instance
run: |
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances started"
- name: Wait
run: sleep 600
- name: Stop EC2 instance
run: |
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances stopped"

125
.github/workflows/saas.yml vendored Normal file
View File

@@ -0,0 +1,125 @@
name: CI/CD Pipeline
# CI/CD workflow for building, publishing, mirroring, signing container images and building release binaries.
# Actions are pinned to specific SHAs to reduce supply-chain risk. This workflow triggers on tag push events.
permissions:
contents: read
packages: write # for GHCR push
id-token: write # for Cosign Keyless (OIDC) Signing
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+-s.[0-9]+"
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
pre-run:
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Start EC2 instances
run: |
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
echo "EC2 instances started"
release-arm:
name: Build and Release (ARM64)
runs-on: [self-hosted, linux, arm64, us-east-1]
needs: [pre-run]
if: >-
${{
needs.pre-run.result == 'success'
}}
# Job-level timeout to avoid runaway or stuck runs
timeout-minutes: 120
env:
# Target images
AWS_IMAGE: ${{ secrets.aws_account_id }}.dkr.ecr.us-east-1.amazonaws.com/${{ github.event.repository.name }}
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Monitor storage space
run: |
THRESHOLD=75
USED_SPACE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
echo "Used space: $USED_SPACE%"
if [ "$USED_SPACE" -ge "$THRESHOLD" ]; then
echo "Used space is below the threshold of 75% free. Running Docker system prune."
echo y | docker system prune -a
else
echo "Storage space is above the threshold. No action needed."
fi
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.aws_account_id }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Update version in package.json
run: |
TAG=${{ env.TAG }}
sed -i "s/export const APP_VERSION = \".*\";/export const APP_VERSION = \"$TAG\";/" server/lib/consts.ts
cat server/lib/consts.ts
shell: bash
- name: Build and push Docker images (Docker Hub - ARM64)
run: |
TAG=${{ env.TAG }}
make build-saas tag=$TAG
echo "Built & pushed ARM64 images to: ${{ env.AWS_IMAGE }}:${TAG}"
shell: bash
post-run:
needs: [pre-run, release-arm]
if: >-
${{
always() &&
needs.pre-run.result == 'success' &&
(needs.release-arm.result == 'success' || needs.release-arm.result == 'skipped' || needs.release-arm.result == 'failure')
}}
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Stop EC2 instances
run: |
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
echo "EC2 instances stopped"

37
.github/workflows/stale-bot.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Mark and Close Stale Issues
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch: # Allow manual trigger
permissions:
contents: write # only for delete-branch option
issues: write
pull-requests: write
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1
with:
days-before-stale: 14
days-before-close: 14
stale-issue-message: 'This issue has been automatically marked as stale due to 14 days of inactivity. It will be closed in 14 days if no further activity occurs.'
close-issue-message: 'This issue has been automatically closed due to inactivity. If you believe this is still relevant, please open a new issue with up-to-date information.'
stale-issue-label: 'stale'
exempt-issue-labels: 'needs investigating, networking, new feature, reverse proxy, bug, api, authentication, documentation, enhancement, help wanted, good first issue, question'
exempt-all-issue-assignees: true
only-labels: ''
exempt-pr-labels: ''
days-before-pr-stale: -1
days-before-pr-close: -1
operations-per-run: 100
remove-stale-when-updated: true
delete-branch: false
enable-statistics: true

83
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,83 @@
name: Run Tests
permissions:
contents: read
on:
pull_request:
branches:
- main
- dev
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Install Node
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: '22'
- name: Copy config file
run: cp config/config.example.yml config/config.yml
- name: Install dependencies
run: npm ci
- name: Create database index.ts
run: npm run set:sqlite
- name: Create build file
run: npm run set:oss
- name: Generate database migrations
run: npm run db:sqlite:generate
- name: Apply database migrations
run: npm run db:sqlite:push
- name: Test with tsc
run: npx tsc --noEmit
- name: Start app in background
run: nohup npm run dev &
- name: Wait for app availability
run: |
for i in {1..5}; do
if curl --silent --fail http://localhost:3002/auth/login; then
echo "App is up"
exit 0
fi
echo "Waiting for the app... attempt $i"
sleep 5
done
echo "App failed to start"
exit 1
build-sqlite:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Copy config file
run: cp config/config.example.yml config/config.yml
- name: Build Docker image sqlite
run: make dev-build-sqlite
build-postgres:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Copy config file
run: cp config/config.example.yml config/config.yml
- name: Build Docker image pg
run: make dev-build-pg

23
.gitignore vendored
View File

@@ -18,16 +18,37 @@ yarn-error.log*
next-env.d.ts
*.db
*.sqlite
!Dockerfile.sqlite
*.sqlite3
*.log
.machinelogs*.json
*-audit.json
migrations
package-lock.json
tsconfig.tsbuildinfo
config/config.yml
config/config.saas.yml
config/config.oss.yml
config/config.enterprise.yml
config/privateConfig.yml
config/postgres
config/postgres*
config/openapi.yaml
config/key
dist
.dist
installer
*.tar
bin
.secrets
test_event.json
.idea/
public/branding
server/db/index.ts
server/build.ts
postgres/
dynamic/
*.mmdb
scratch/
tsconfig.json
hydrateSaas.ts
CLAUDE.md

2
.nvmrc
View File

@@ -1 +1 @@
20
24

12
.prettierignore Normal file
View File

@@ -0,0 +1,12 @@
.github/
bruno/
cli/
config/
messages/
next.config.mjs/
public/
tailwind.config.js/
test/
**/*.yml
**/*.yaml
**/*.md

3
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"recommendations": ["esbenp.prettier-vscode"]
}

22
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,22 @@
{
"editor.codeActionsOnSave": {
"source.addMissingImports.ts": "always"
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.formatOnSave": true
}

View File

@@ -4,11 +4,7 @@ Contributions are welcome!
Please see the contribution and local development guide on the docs page before getting started:
https://docs.fossorial.io/development
For ideas about what features to work on and our future plans, please see the roadmap:
https://docs.fossorial.io/roadmap
https://docs.pangolin.net/development/contributing
### Licensing Considerations

View File

@@ -1,34 +1,97 @@
FROM node:20-alpine AS builder
FROM node:24-alpine AS builder
# OCI Image Labels - Build Args for dynamic values
ARG VERSION="dev"
ARG REVISION=""
ARG CREATED=""
ARG LICENSE="AGPL-3.0"
WORKDIR /app
COPY package.json ./
ARG BUILD=oss
ARG DATABASE=sqlite
RUN npm install
# Derive title and description based on BUILD type
ARG IMAGE_TITLE="Pangolin"
ARG IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere"
RUN apk add --no-cache curl tzdata python3 make g++
# COPY package.json package-lock.json ./
COPY package*.json ./
RUN npm ci
COPY . .
RUN npx drizzle-kit generate --dialect sqlite --schema ./server/db/schema.ts --out init
RUN echo "export * from \"./$DATABASE\";" > server/db/index.ts
RUN echo "export const driver: \"pg\" | \"sqlite\" = \"$DATABASE\";" >> server/db/index.ts
RUN npm run build
RUN echo "export const build = \"$BUILD\" as \"saas\" | \"enterprise\" | \"oss\";" > server/build.ts
FROM node:20-alpine AS runner
# Copy the appropriate TypeScript configuration based on build type
RUN if [ "$BUILD" = "oss" ]; then cp tsconfig.oss.json tsconfig.json; \
elif [ "$BUILD" = "saas" ]; then cp tsconfig.saas.json tsconfig.json; \
elif [ "$BUILD" = "enterprise" ]; then cp tsconfig.enterprise.json tsconfig.json; \
fi
RUN apk add --no-cache curl
# if the build is oss then remove the server/private directory
RUN if [ "$BUILD" = "oss" ]; then rm -rf server/private; fi
RUN if [ "$DATABASE" = "pg" ]; then npx drizzle-kit generate --dialect postgresql --schema ./server/db/pg/schema --out init; else npx drizzle-kit generate --dialect $DATABASE --schema ./server/db/$DATABASE/schema --out init; fi
RUN mkdir -p dist
RUN npm run next:build
RUN node esbuild.mjs -e server/index.ts -o dist/server.mjs -b $BUILD
RUN if [ "$DATABASE" = "pg" ]; then \
node esbuild.mjs -e server/setup/migrationsPg.ts -o dist/migrations.mjs; \
else \
node esbuild.mjs -e server/setup/migrationsSqlite.ts -o dist/migrations.mjs; \
fi
# test to make sure the build output is there and error if not
RUN test -f dist/server.mjs
RUN npm run build:cli
# Prune dev dependencies and clean up to prepare for copy to runner
RUN npm prune --omit=dev && npm cache clean --force
FROM node:24-alpine AS runner
WORKDIR /app
COPY package.json ./
# Only curl and tzdata needed at runtime - no build tools!
RUN apk add --no-cache curl tzdata
RUN npm install --omit=dev
# Copy pre-built node_modules from builder (already pruned to production only)
# This includes the compiled native modules like better-sqlite3
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/init ./dist/init
COPY --from=builder /app/package.json ./package.json
COPY ./cli/wrapper.sh /usr/local/bin/pangctl
RUN chmod +x /usr/local/bin/pangctl ./dist/cli.mjs
COPY config/config.example.yml ./dist/config.example.yml
COPY server/db/names.json ./dist/names.json
COPY server/db/ios_models.json ./dist/ios_models.json
COPY server/db/mac_models.json ./dist/mac_models.json
COPY public ./public
CMD ["npm", "start"]
# OCI Image Labels
# https://github.com/opencontainers/image-spec/blob/main/annotations.md
LABEL org.opencontainers.image.source="https://github.com/fosrl/pangolin" \
org.opencontainers.image.url="https://github.com/fosrl/pangolin" \
org.opencontainers.image.documentation="https://docs.pangolin.net" \
org.opencontainers.image.vendor="Fossorial" \
org.opencontainers.image.licenses="${LICENSE}" \
org.opencontainers.image.title="${IMAGE_TITLE}" \
org.opencontainers.image.description="${IMAGE_DESCRIPTION}" \
org.opencontainers.image.version="${VERSION}" \
org.opencontainers.image.revision="${REVISION}" \
org.opencontainers.image.created="${CREATED}"
CMD ["npm", "run", "start"]

14
Dockerfile.dev Normal file
View File

@@ -0,0 +1,14 @@
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
# Install dependencies
RUN npm ci
# Copy source code
COPY . .
# Use tsx watch for development with hot reload
CMD ["npm", "run", "dev"]

31
LICENSE
View File

@@ -1,3 +1,34 @@
Copyright (c) 2025 Fossorial, Inc.
Portions of this software are licensed as follows:
* All files that include a header specifying they are licensed under the
"Fossorial Commercial License" are governed by the Fossorial Commercial
License terms. The specific terms applicable to each customer depend on the
commercial license tier agreed upon in writing with Fossorial, Inc.
Unauthorized use, copying, modification, or distribution is strictly
prohibited.
* All files that include a header specifying they are licensed under the GNU
Affero General Public License, Version 3 ("AGPL-3"), are governed by the
AGPL-3 terms. A full copy of the AGPL-3 license is provided below. However,
these files are also available under the Fossorial Commercial License if a
separate commercial license agreement has been executed between the customer
and Fossorial, Inc.
* All files without a license header are, by default, licensed under the GNU
Affero General Public License, Version 3 (AGPL-3). These files may also be
made available under the Fossorial Commercial License upon agreement with
Fossorial, Inc.
* All third-party components included in this repository are licensed under
their respective original licenses, as provided by their authors.
Please consult the header of each individual file to determine the applicable
license. For AGPL-3 licensed files, dual-licensing under the Fossorial
Commercial License is available subject to written agreement with Fossorial,
Inc.
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007

518
Makefile
View File

@@ -1,22 +1,520 @@
build-release:
.PHONY: build build-pg build-release build-release-arm build-release-amd create-manifests build-arm build-x86 test clean
major_tag := $(shell echo $(tag) | cut -d. -f1)
minor_tag := $(shell echo $(tag) | cut -d. -f1,2)
# OCI label variables
CREATED := $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
REVISION := $(shell git rev-parse HEAD 2>/dev/null || echo "unknown")
# Common OCI build args for OSS builds
OCI_ARGS_OSS = --build-arg VERSION=$(tag) \
--build-arg REVISION=$(REVISION) \
--build-arg CREATED=$(CREATED) \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere"
# Common OCI build args for Enterprise builds
OCI_ARGS_EE = --build-arg VERSION=$(tag) \
--build-arg REVISION=$(REVISION) \
--build-arg CREATED=$(CREATED) \
--build-arg LICENSE="Fossorial Commercial" \
--build-arg IMAGE_TITLE="Pangolin EE" \
--build-arg IMAGE_DESCRIPTION="Pangolin Enterprise Edition - Identity-aware VPN and proxy for remote access to anything, anywhere"
.PHONY: build-release build-sqlite build-postgresql build-ee-sqlite build-ee-postgresql
build-release: build-sqlite build-postgresql build-ee-sqlite build-ee-postgresql
build-sqlite:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-all tag=<tag>"; \
echo "Error: tag is required. Usage: make build-release tag=<tag>"; \
exit 1; \
fi
docker buildx build --platform linux/arm64,linux/amd64 -t fosrl/pangolin:latest -f Dockerfile --push .
docker buildx build --platform linux/arm64,linux/amd64 -t fosrl/pangolin:$(tag) -f Dockerfile --push .
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=sqlite \
$(OCI_ARGS_OSS) \
--platform linux/arm64,linux/amd64 \
--tag fosrl/pangolin:latest \
--tag fosrl/pangolin:$(major_tag) \
--tag fosrl/pangolin:$(minor_tag) \
--tag fosrl/pangolin:$(tag) \
--push .
build-postgresql:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release tag=<tag>"; \
exit 1; \
fi
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=pg \
$(OCI_ARGS_OSS) \
--platform linux/arm64,linux/amd64 \
--tag fosrl/pangolin:postgresql-latest \
--tag fosrl/pangolin:postgresql-$(major_tag) \
--tag fosrl/pangolin:postgresql-$(minor_tag) \
--tag fosrl/pangolin:postgresql-$(tag) \
--push .
build-ee-sqlite:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release tag=<tag>"; \
exit 1; \
fi
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=sqlite \
$(OCI_ARGS_EE) \
--platform linux/arm64,linux/amd64 \
--tag fosrl/pangolin:ee-latest \
--tag fosrl/pangolin:ee-$(major_tag) \
--tag fosrl/pangolin:ee-$(minor_tag) \
--tag fosrl/pangolin:ee-$(tag) \
--push .
build-ee-postgresql:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release tag=<tag>"; \
exit 1; \
fi
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=pg \
$(OCI_ARGS_EE) \
--platform linux/arm64,linux/amd64 \
--tag fosrl/pangolin:ee-postgresql-latest \
--tag fosrl/pangolin:ee-postgresql-$(major_tag) \
--tag fosrl/pangolin:ee-postgresql-$(minor_tag) \
--tag fosrl/pangolin:ee-postgresql-$(tag) \
--push .
build-saas:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release tag=<tag>"; \
exit 1; \
fi
docker buildx build \
--build-arg BUILD=saas \
--build-arg DATABASE=pg \
--platform linux/arm64 \
--tag $(AWS_IMAGE):$(tag) \
--push .
build-release-arm:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release-arm tag=<tag>"; \
exit 1; \
fi
@MAJOR_TAG=$$(echo $(tag) | cut -d. -f1); \
MINOR_TAG=$$(echo $(tag) | cut -d. -f1,2); \
CREATED=$$(date -u +"%Y-%m-%dT%H:%M:%SZ"); \
REVISION=$$(git rev-parse HEAD 2>/dev/null || echo "unknown"); \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=sqlite \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64 \
--tag fosrl/pangolin:latest-arm64 \
--tag fosrl/pangolin:$$MAJOR_TAG-arm64 \
--tag fosrl/pangolin:$$MINOR_TAG-arm64 \
--tag fosrl/pangolin:$(tag)-arm64 \
--push . && \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=pg \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64 \
--tag fosrl/pangolin:postgresql-latest-arm64 \
--tag fosrl/pangolin:postgresql-$$MAJOR_TAG-arm64 \
--tag fosrl/pangolin:postgresql-$$MINOR_TAG-arm64 \
--tag fosrl/pangolin:postgresql-$(tag)-arm64 \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=sqlite \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg LICENSE="Fossorial Commercial" \
--build-arg IMAGE_TITLE="Pangolin EE" \
--build-arg IMAGE_DESCRIPTION="Pangolin Enterprise Edition - Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64 \
--tag fosrl/pangolin:ee-latest-arm64 \
--tag fosrl/pangolin:ee-$$MAJOR_TAG-arm64 \
--tag fosrl/pangolin:ee-$$MINOR_TAG-arm64 \
--tag fosrl/pangolin:ee-$(tag)-arm64 \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=pg \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg LICENSE="Fossorial Commercial" \
--build-arg IMAGE_TITLE="Pangolin EE" \
--build-arg IMAGE_DESCRIPTION="Pangolin Enterprise Edition - Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64 \
--tag fosrl/pangolin:ee-postgresql-latest-arm64 \
--tag fosrl/pangolin:ee-postgresql-$$MAJOR_TAG-arm64 \
--tag fosrl/pangolin:ee-postgresql-$$MINOR_TAG-arm64 \
--tag fosrl/pangolin:ee-postgresql-$(tag)-arm64 \
--push .
build-release-amd:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release-amd tag=<tag>"; \
exit 1; \
fi
@MAJOR_TAG=$$(echo $(tag) | cut -d. -f1); \
MINOR_TAG=$$(echo $(tag) | cut -d. -f1,2); \
CREATED=$$(date -u +"%Y-%m-%dT%H:%M:%SZ"); \
REVISION=$$(git rev-parse HEAD 2>/dev/null || echo "unknown"); \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=sqlite \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/amd64 \
--tag fosrl/pangolin:latest-amd64 \
--tag fosrl/pangolin:$$MAJOR_TAG-amd64 \
--tag fosrl/pangolin:$$MINOR_TAG-amd64 \
--tag fosrl/pangolin:$(tag)-amd64 \
--push . && \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=pg \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/amd64 \
--tag fosrl/pangolin:postgresql-latest-amd64 \
--tag fosrl/pangolin:postgresql-$$MAJOR_TAG-amd64 \
--tag fosrl/pangolin:postgresql-$$MINOR_TAG-amd64 \
--tag fosrl/pangolin:postgresql-$(tag)-amd64 \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=sqlite \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg LICENSE="Fossorial Commercial" \
--build-arg IMAGE_TITLE="Pangolin EE" \
--build-arg IMAGE_DESCRIPTION="Pangolin Enterprise Edition - Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/amd64 \
--tag fosrl/pangolin:ee-latest-amd64 \
--tag fosrl/pangolin:ee-$$MAJOR_TAG-amd64 \
--tag fosrl/pangolin:ee-$$MINOR_TAG-amd64 \
--tag fosrl/pangolin:ee-$(tag)-amd64 \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=pg \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg LICENSE="Fossorial Commercial" \
--build-arg IMAGE_TITLE="Pangolin EE" \
--build-arg IMAGE_DESCRIPTION="Pangolin Enterprise Edition - Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/amd64 \
--tag fosrl/pangolin:ee-postgresql-latest-amd64 \
--tag fosrl/pangolin:ee-postgresql-$$MAJOR_TAG-amd64 \
--tag fosrl/pangolin:ee-postgresql-$$MINOR_TAG-amd64 \
--tag fosrl/pangolin:ee-postgresql-$(tag)-amd64 \
--push .
create-manifests:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make create-manifests tag=<tag>"; \
exit 1; \
fi
@MAJOR_TAG=$$(echo $(tag) | cut -d. -f1); \
MINOR_TAG=$$(echo $(tag) | cut -d. -f1,2); \
echo "Creating multi-arch manifests for sqlite (oss)..." && \
docker buildx imagetools create \
--tag fosrl/pangolin:latest \
--tag fosrl/pangolin:$$MAJOR_TAG \
--tag fosrl/pangolin:$$MINOR_TAG \
--tag fosrl/pangolin:$(tag) \
fosrl/pangolin:latest-arm64 \
fosrl/pangolin:latest-amd64 && \
echo "Creating multi-arch manifests for postgresql (oss)..." && \
docker buildx imagetools create \
--tag fosrl/pangolin:postgresql-latest \
--tag fosrl/pangolin:postgresql-$$MAJOR_TAG \
--tag fosrl/pangolin:postgresql-$$MINOR_TAG \
--tag fosrl/pangolin:postgresql-$(tag) \
fosrl/pangolin:postgresql-latest-arm64 \
fosrl/pangolin:postgresql-latest-amd64 && \
echo "Creating multi-arch manifests for sqlite (enterprise)..." && \
docker buildx imagetools create \
--tag fosrl/pangolin:ee-latest \
--tag fosrl/pangolin:ee-$$MAJOR_TAG \
--tag fosrl/pangolin:ee-$$MINOR_TAG \
--tag fosrl/pangolin:ee-$(tag) \
fosrl/pangolin:ee-latest-arm64 \
fosrl/pangolin:ee-latest-amd64 && \
echo "Creating multi-arch manifests for postgresql (enterprise)..." && \
docker buildx imagetools create \
--tag fosrl/pangolin:ee-postgresql-latest \
--tag fosrl/pangolin:ee-postgresql-$$MAJOR_TAG \
--tag fosrl/pangolin:ee-postgresql-$$MINOR_TAG \
--tag fosrl/pangolin:ee-postgresql-$(tag) \
fosrl/pangolin:ee-postgresql-latest-arm64 \
fosrl/pangolin:ee-postgresql-latest-amd64 && \
echo "All multi-arch manifests created successfully!"
build-rc:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release tag=<tag>"; \
exit 1; \
fi
@CREATED=$$(date -u +"%Y-%m-%dT%H:%M:%SZ"); \
REVISION=$$(git rev-parse HEAD 2>/dev/null || echo "unknown"); \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=sqlite \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64,linux/amd64 \
--tag fosrl/pangolin:$(tag) \
--push . && \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=pg \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64,linux/amd64 \
--tag fosrl/pangolin:postgresql-$(tag) \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=sqlite \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg LICENSE="Fossorial Commercial" \
--build-arg IMAGE_TITLE="Pangolin EE" \
--build-arg IMAGE_DESCRIPTION="Pangolin Enterprise Edition - Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64,linux/amd64 \
--tag fosrl/pangolin:ee-$(tag) \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=pg \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg LICENSE="Fossorial Commercial" \
--build-arg IMAGE_TITLE="Pangolin EE" \
--build-arg IMAGE_DESCRIPTION="Pangolin Enterprise Edition - Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64,linux/amd64 \
--tag fosrl/pangolin:ee-postgresql-$(tag) \
--push .
build-rc-arm:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-rc-arm tag=<tag>"; \
exit 1; \
fi
@CREATED=$$(date -u +"%Y-%m-%dT%H:%M:%SZ"); \
REVISION=$$(git rev-parse HEAD 2>/dev/null || echo "unknown"); \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=sqlite \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64 \
--tag fosrl/pangolin:$(tag)-arm64 \
--push . && \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=pg \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64 \
--tag fosrl/pangolin:postgresql-$(tag)-arm64 \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=sqlite \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg LICENSE="Fossorial Commercial" \
--build-arg IMAGE_TITLE="Pangolin EE" \
--build-arg IMAGE_DESCRIPTION="Pangolin Enterprise Edition - Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64 \
--tag fosrl/pangolin:ee-$(tag)-arm64 \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=pg \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg LICENSE="Fossorial Commercial" \
--build-arg IMAGE_TITLE="Pangolin EE" \
--build-arg IMAGE_DESCRIPTION="Pangolin Enterprise Edition - Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64 \
--tag fosrl/pangolin:ee-postgresql-$(tag)-arm64 \
--push .
build-rc-amd:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-rc-amd tag=<tag>"; \
exit 1; \
fi
@CREATED=$$(date -u +"%Y-%m-%dT%H:%M:%SZ"); \
REVISION=$$(git rev-parse HEAD 2>/dev/null || echo "unknown"); \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=sqlite \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/amd64 \
--tag fosrl/pangolin:$(tag)-amd64 \
--push . && \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=pg \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/amd64 \
--tag fosrl/pangolin:postgresql-$(tag)-amd64 \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=sqlite \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg LICENSE="Fossorial Commercial" \
--build-arg IMAGE_TITLE="Pangolin EE" \
--build-arg IMAGE_DESCRIPTION="Pangolin Enterprise Edition - Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/amd64 \
--tag fosrl/pangolin:ee-$(tag)-amd64 \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=pg \
--build-arg VERSION=$(tag) \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg LICENSE="Fossorial Commercial" \
--build-arg IMAGE_TITLE="Pangolin EE" \
--build-arg IMAGE_DESCRIPTION="Pangolin Enterprise Edition - Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/amd64 \
--tag fosrl/pangolin:ee-postgresql-$(tag)-amd64 \
--push .
create-manifests-rc:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make create-manifests-rc tag=<tag>"; \
exit 1; \
fi
@echo "Creating multi-arch manifests for RC sqlite (oss)..." && \
docker buildx imagetools create \
--tag fosrl/pangolin:$(tag) \
fosrl/pangolin:$(tag)-arm64 \
fosrl/pangolin:$(tag)-amd64 && \
echo "Creating multi-arch manifests for RC postgresql (oss)..." && \
docker buildx imagetools create \
--tag fosrl/pangolin:postgresql-$(tag) \
fosrl/pangolin:postgresql-$(tag)-arm64 \
fosrl/pangolin:postgresql-$(tag)-amd64 && \
echo "Creating multi-arch manifests for RC sqlite (enterprise)..." && \
docker buildx imagetools create \
--tag fosrl/pangolin:ee-$(tag) \
fosrl/pangolin:ee-$(tag)-arm64 \
fosrl/pangolin:ee-$(tag)-amd64 && \
echo "Creating multi-arch manifests for RC postgresql (enterprise)..." && \
docker buildx imagetools create \
--tag fosrl/pangolin:ee-postgresql-$(tag) \
fosrl/pangolin:ee-postgresql-$(tag)-arm64 \
fosrl/pangolin:ee-postgresql-$(tag)-amd64 && \
echo "All RC multi-arch manifests created successfully!"
build-arm:
docker buildx build --platform linux/arm64 -t fosrl/pangolin:latest .
@CREATED=$$(date -u +"%Y-%m-%dT%H:%M:%SZ"); \
REVISION=$$(git rev-parse HEAD 2>/dev/null || echo "unknown"); \
docker buildx build \
--build-arg VERSION=dev \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/arm64 \
-t fosrl/pangolin:latest .
build-x86:
docker buildx build --platform linux/amd64 -t fosrl/pangolin:latest .
@CREATED=$$(date -u +"%Y-%m-%dT%H:%M:%SZ"); \
REVISION=$$(git rev-parse HEAD 2>/dev/null || echo "unknown"); \
docker buildx build \
--build-arg VERSION=dev \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
--platform linux/amd64 \
-t fosrl/pangolin:latest .
build-x86-ecr:
docker buildx build --platform linux/amd64 -t 216989133116.dkr.ecr.us-east-1.amazonaws.com/pangolin:latest --push .
dev-build-sqlite:
@CREATED=$$(date -u +"%Y-%m-%dT%H:%M:%SZ"); \
REVISION=$$(git rev-parse HEAD 2>/dev/null || echo "unknown"); \
docker build \
--build-arg DATABASE=sqlite \
--build-arg VERSION=dev \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
-t fosrl/pangolin:latest .
build:
docker build -t fosrl/pangolin:latest .
dev-build-pg:
@CREATED=$$(date -u +"%Y-%m-%dT%H:%M:%SZ"); \
REVISION=$$(git rev-parse HEAD 2>/dev/null || echo "unknown"); \
docker build \
--build-arg DATABASE=pg \
--build-arg VERSION=dev \
--build-arg REVISION=$$REVISION \
--build-arg CREATED=$$CREATED \
--build-arg IMAGE_TITLE="Pangolin" \
--build-arg IMAGE_DESCRIPTION="Identity-aware VPN and proxy for remote access to anything, anywhere" \
-t fosrl/pangolin:postgresql-latest .
test:
docker run -it -p 3000:3000 -p 3001:3001 -p 3002:3002 -v ./config:/app/config fosrl/pangolin:latest

181
README.md
View File

@@ -1,140 +1,101 @@
# Pangolin
<div align="center">
<h2>
<a href="https://pangolin.net/">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="public/logo/word_mark_white.png">
<img alt="Pangolin Logo" src="public/logo/word_mark_black.png" width="350">
</picture>
</a>
</h2>
</div>
[![Documentation](https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square)](https://docs.fossorial.io/)
<div align="center">
<h5>
<a href="https://pangolin.net/">
Website
</a>
<span> | </span>
<a href="https://docs.pangolin.net/">
Documentation
</a>
<span> | </span>
<a href="mailto:contact@pangolin.net">
Contact Us
</a>
</h5>
</div>
<div align="center">
[![Discord](https://img.shields.io/discord/1325658630518865980?logo=discord&style=flat-square)](https://discord.gg/HCJR8Xhme4)
[![Slack](https://img.shields.io/badge/chat-slack-yellow?style=flat-square&logo=slack)](https://pangolin.net/slack)
[![Docker](https://img.shields.io/docker/pulls/fosrl/pangolin?style=flat-square)](https://hub.docker.com/r/fosrl/pangolin)
![Stars](https://img.shields.io/github/stars/fosrl/pangolin?style=flat-square)
[![Discord](https://img.shields.io/discord/1325658630518865980?logo=discord&style=flat-square)](https://discord.gg/HCJR8Xhme4)
[![Youtube](https://img.shields.io/badge/YouTube-red?logo=youtube&logoColor=white&style=flat-square)](https://www.youtube.com/@fossorial-app)
[![YouTube](https://img.shields.io/badge/YouTube-red?logo=youtube&logoColor=white&style=flat-square)](https://www.youtube.com/@pangolin-net)
Pangolin is a self-hosted tunneled reverse proxy management server with identity and access management, designed to securely expose private resources through use with the Traefik reverse proxy and WireGuard tunnel clients like Newt. With Pangolin, you retain full control over your infrastructure while providing a user-friendly and feature-rich solution for managing proxies, authentication, and access, and simplifying complex network setups, all with a clean and simple UI.
</div>
### Installation and Documentation
<p align="center">
<strong>
Start testing Pangolin at <a href="https://app.pangolin.net/auth/signup">app.pangolin.net</a>
</strong>
</p>
- [Installation Instructions](https://docs.fossorial.io/Getting%20Started/quick-install)
- [Full Documentation](https://docs.fossorial.io)
Pangolin is an open-source, identity-based remote access platform built on WireGuard that enables secure, seamless connectivity to private and public resources. Pangolin combines reverse proxy and VPN capabilities into one platform, providing browser-based access to web applications and client-based access to any private resources, all with zero-trust security and granular access control.
### Authors and Maintainers
## Installation
- [Milo Schwartz](https://github.com/miloschwartz)
- [Owen Schwartz](https://github.com/oschwartz10612)
- Check out the [quick install guide](https://docs.pangolin.net/self-host/quick-install) for how to install and set up Pangolin.
- Install from the [DigitalOcean marketplace](https://marketplace.digitalocean.com/apps/pangolin-ce-1?refcode=edf0480eeb81) for a one-click pre-configured installer.
## Preview
<img src="public/screenshots/hero.png" />
<img src="public/screenshots/sites.png" alt="Preview"/>
## Deployment Options
_Sites page of Pangolin dashboard (dark mode) showing multiple tunnels connected to the central server._
| <img width=500 /> | Description |
|-----------------|--------------|
| **Self-Host: Community Edition** | Free, open source, and licensed under AGPL-3. |
| **Self-Host: Enterprise Edition** | Licensed under Fossorial Commercial License. Free for personal and hobbyist use, and for businesses earning under \$100K USD annually. |
| **Pangolin Cloud** | Fully managed service with instant setup and pay-as-you-go pricing — no infrastructure required. Or, self-host your own [remote node](https://docs.pangolin.net/manage/remote-node/nodes) and connect to our control plane. |
## Key Features
### Reverse Proxy Through WireGuard Tunnel
| <img width=500 /> | <img width=500 /> |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| **Connect remote networks with sites**<br /><br />Pangolin's lightweight site connectors create secure tunnels from remote networks without requiring public IP addresses or open ports. Sites make any network anywhere available for authorized access. | <img src="public/screenshots/sites.png" width=500 /><tr></tr> |
| **Browser-based reverse proxy access**<br /><br />Expose web applications through identity and context-aware tunneled reverse proxies. Pangolin handles routing, load balancing, health checking, and automatic SSL certificates without exposing your network directly to the internet. Users access applications through any web browser with authentication and granular access control. | <img src="public/clip.gif" width=500 /><tr></tr> |
| **Client-based private resource access**<br /><br />Access private resources like SSH servers, databases, RDP, and entire network ranges through Pangolin clients. Intelligent NAT traversal enables connections even through restrictive firewalls, while DNS aliases provide friendly names and fast connections to resources across all your sites. | <img src="public/screenshots/private-resources.png" width=500 /><tr></tr> |
| **Zero-trust granular access**<br /><br />Grant users access to specific resources, not entire networks. Unlike traditional VPNs that expose full network access, Pangolin's zero-trust model ensures users can only reach the applications and services you explicitly define, reducing security risk and attack surface. | <img src="public/screenshots/user-devices.png" width=500 /><tr></tr> |
- Expose private resources on your network **without opening ports**.
- Secure and easy to configure site-to-site connectivity via a custom **user space WireGuard client**, [Newt](https://github.com/fosrl/newt).
- Built-in support for any WireGuard client.
- Automated **SSL certificates** (https) via [LetsEncrypt](https://letsencrypt.org/).
## Download Clients
### Identity & Access Management
Download the Pangolin client for your platform:
- Centralized authentication system using platform SSO. **Users will only have to manage one login.**
- Totp with backup codes for two-factor authentication.
- Create organizations, each with multiple sites, users, and roles.
- **Role-based access control** to manage resource access permissions.
- Additional authentication options include:
- Email whitelisting with **one-time passcodes.**
- **Temporary, self-destructing share links.**
- Resource specific pin codes.
- Resource specific passwords.
- [Mac](https://pangolin.net/downloads/mac)
- [Windows](https://pangolin.net/downloads/windows)
- [Linux](https://pangolin.net/downloads/linux)
### Simple Dashboard UI
## Get Started
- Manage sites, users, and roles with a clean and intuitive UI.
- Monitor site usage and connectivity.
- Light and dark mode options.
- Mobile friendly.
### Check out the docs
### Easy Deployment
We encourage everyone to read the full documentation first, which is
available at [docs.pangolin.net](https://docs.pangolin.net). This README provides only a very brief subset of
the docs to illustrate some basic ideas.
- Docker Compose based setup for simplified deployment.
- Future-proof installation script for streamlined setup and feature additions.
- Run on any VPS.
- Use your preferred WireGuard client to connect, or use Newt, our custom user space client for the best experience.
### Sign up and try now
### Modular Design
- Extend functionality with existing [Traefik](https://github.com/traefik/traefik) plugins, such as [Fail2Ban](https://plugins.traefik.io/plugins/628c9ebcffc0cd18356a979f/fail2-ban) or [CrowdSec](https://plugins.traefik.io/plugins/6335346ca4caa9ddeffda116/crowdsec-bouncer-traefik-plugin), which integrate seamlessly.
- Attach as many sites to the central server as you wish.
## Screenshots
Pangolin has a straightforward and simple dashboard UI:
<div align="center">
<table>
<tr>
<td align="center"><img src="public/screenshots/sites.png" alt="Sites Example" width="200"/></td>
<td align="center"><img src="public/screenshots/users.png" alt="Users Example" width="200"/></td>
<td align="center"><img src="public/screenshots/share-link.png" alt="Share Link Example" width="200"/></td>
</tr>
<tr>
<td align="center"><b>Sites</b></td>
<td align="center"><b>Users</b></td>
<td align="center"><b>Share Link</b></td>
</tr>
<tr>
<td align="center"><img src="public/screenshots/auth.png" alt="Authentication Example" width="200"/></td>
<td align="center"><img src="public/screenshots/connectivity.png" alt="Connectivity Example" width="200"/></td>
<td align="center"></td>
</tr>
<tr>
<td align="center"><b>Authentication</b></td>
<td align="center"><b>Connectivity</b></td>
<td align="center"><b></b></td>
</tr>
</table>
</div>
## Workflow Example
### Deployment and Usage Example
1. **Deploy the Central Server**:
- Deploy the Docker Compose stack containing Pangolin, Gerbil, and Traefik onto a VPS hosted on a cloud platform like Amazon EC2, DigitalOcean Droplet, or similar. There are many cheap VPS hosting options available to suit your needs.
2. **Domain Configuration**:
- Point your domain name to the VPS and configure Pangolin with your preferred settings.
3. **Connect Private Sites**:
- Install Newt or use another WireGuard client on private sites.
- Automatically establish a connection from these sites to the central server.
4. **Configure Users & Roles**
- Define organizations and invite users.
- Implement user- or role-based permissions to control resource access.
**Use Case Example - Bypassing Port Restrictions in Home Lab**:
Imagine private sites where the ISP restricts port forwarding. By connecting these sites to Pangolin via WireGuard, you can securely expose HTTP and HTTPS resources on the private network without any networking complexity.
**Use Case Example - IoT Networks**:
IoT networks are often fragmented and difficult to manage. By deploying Pangolin on a central server, you can connect all your IoT sites via Newt or another WireGuard client. This creates a simple, secure, and centralized way to access IoT resources without the need for intricate networking setups.
## Similar Projects and Inspirations
Pangolin was inspired by several existing projects and concepts:
- **Cloudflare Tunnels**:
A similar approach to proxying private resources securely, but Pangolin is a self-hosted alternative, giving you full control over your infrastructure.
- **Authentik and Authelia**:
These projects inspired Pangolins centralized authentication system for proxies, enabling robust user and role management.
For Pangolin's managed service, you will first need to create an account at
[app.pangolin.net](https://app.pangolin.net). We have a generous free tier to get started.
## Licensing
Pangolin is dual licensed under the AGPLv3 and the Fossorial Commercial license. For inquiries about commercial licensing, please contact us.
Pangolin is dual licensed under the AGPL-3 and the [Fossorial Commercial License](https://pangolin.net/fcl.html). For inquiries about commercial licensing, please contact us at [contact@pangolin.net](mailto:contact@pangolin.net).
## Contributions
Please see [CONTRIBUTING](./CONTRIBUTING.md) in the repository for guidelines and best practices.
Please post bug reports and other functional issues in the [Issues](https://github.com/fosrl/pangolin/issues) section of the repository.
For all feature requests, or other ideas, please use the [Discussions](https://github.com/orgs/fosrl/discussions) section.
---
WireGuard® is a registered trademark of Jason A. Donenfeld.

View File

@@ -3,7 +3,7 @@
If you discover a security vulnerability, please follow the steps below to responsibly disclose it to us:
1. **Do not create a public GitHub issue or discussion post.** This could put the security of other users at risk.
2. Send a detailed report to [security@fossorial.io](mailto:security@fossorial.io) or send a **private** message to a maintainer on [Discord](https://discord.gg/HCJR8Xhme4). Include:
2. Send a detailed report to [security@pangolin.net](mailto:security@pangolin.net) or send a **private** message to a maintainer on [Discord](https://discord.gg/HCJR8Xhme4). Include:
- Description and location of the vulnerability.
- Potential impact of the vulnerability.

72
blueprint.py Normal file
View File

@@ -0,0 +1,72 @@
import requests
import yaml
import json
import base64
# The file path for the YAML file to be read
# You can change this to the path of your YAML file
YAML_FILE_PATH = 'blueprint.yaml'
# The API endpoint and headers from the curl request
API_URL = 'http://api.pangolin.net/v1/org/test/blueprint'
HEADERS = {
'accept': '*/*',
'Authorization': 'Bearer <your_token_here>',
'Content-Type': 'application/json'
}
def convert_and_send(file_path, url, headers):
"""
Reads a YAML file, converts its content to a JSON payload,
and sends it via a PUT request to a specified URL.
"""
try:
# Read the YAML file content
with open(file_path, 'r') as file:
yaml_content = file.read()
# Parse the YAML string to a Python dictionary
# This will be used to ensure the YAML is valid before sending
parsed_yaml = yaml.safe_load(yaml_content)
# convert the parsed YAML to a JSON string
json_payload = json.dumps(parsed_yaml)
print("Converted JSON payload:")
print(json_payload)
# Encode the JSON string to Base64
encoded_json = base64.b64encode(json_payload.encode('utf-8')).decode('utf-8')
# Create the final payload with the base64 encoded data
final_payload = {
"blueprint": encoded_json
}
print("Sending the following Base64 encoded JSON payload:")
print(final_payload)
print("-" * 20)
# Make the PUT request with the base64 encoded payload
response = requests.put(url, headers=headers, json=final_payload)
# Print the API response for debugging
print(f"API Response Status Code: {response.status_code}")
print("API Response Content:")
print(response.text)
# Raise an exception for bad status codes (4xx or 5xx)
response.raise_for_status()
except FileNotFoundError:
print(f"Error: The file '{file_path}' was not found.")
except yaml.YAMLError as e:
print(f"Error parsing YAML file: {e}")
except requests.exceptions.RequestException as e:
print(f"An error occurred during the API request: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
# Run the function
if __name__ == "__main__":
convert_and_send(YAML_FILE_PATH, API_URL, HEADERS)

70
blueprint.yaml Normal file
View File

@@ -0,0 +1,70 @@
client-resources:
client-resource-nice-id-uno:
name: this is my resource
protocol: tcp
proxy-port: 3001
hostname: localhost
internal-port: 3000
site: lively-yosemite-toad
client-resource-nice-id-duce:
name: this is my resource
protocol: udp
proxy-port: 3000
hostname: localhost
internal-port: 3000
site: lively-yosemite-toad
proxy-resources:
resource-nice-id-uno:
name: this is my resource
protocol: http
full-domain: duce.test.example.com
host-header: example.com
tls-server-name: example.com
# auth:
# pincode: 123456
# password: sadfasdfadsf
# sso-enabled: true
# sso-roles:
# - Member
# sso-users:
# - owen@pangolin.net
# whitelist-users:
# - owen@pangolin.net
# auto-login-idp: 1
headers:
- name: X-Example-Header
value: example-value
- name: X-Another-Header
value: another-value
rules:
- action: allow
match: ip
value: 1.1.1.1
- action: deny
match: cidr
value: 2.2.2.2/32
- action: pass
match: path
value: /admin
targets:
- site: lively-yosemite-toad
path: /path
pathMatchType: prefix
hostname: localhost
method: http
port: 8000
- site: slim-alpine-chipmunk
hostname: localhost
path: /yoman
pathMatchType: exact
method: http
port: 8001
resource-nice-id-duce:
name: this is other resource
protocol: tcp
proxy-port: 3000
targets:
- site: lively-yosemite-toad
hostname: localhost
port: 3000

View File

@@ -0,0 +1,17 @@
meta {
name: Create API Key
type: http
seq: 1
}
put {
url: http://localhost:3000/api/v1/api-key
body: json
auth: inherit
}
body:json {
{
"isRoot": true
}
}

View File

@@ -0,0 +1,11 @@
meta {
name: Delete API Key
type: http
seq: 2
}
delete {
url: http://localhost:3000/api/v1/api-key/dm47aacqxxn3ubj
body: none
auth: inherit
}

View File

@@ -0,0 +1,11 @@
meta {
name: List API Key Actions
type: http
seq: 6
}
get {
url: http://localhost:3000/api/v1/api-key/ex0izu2c37fjz9x/actions
body: none
auth: inherit
}

View File

@@ -0,0 +1,11 @@
meta {
name: List Org API Keys
type: http
seq: 4
}
get {
url: http://localhost:3000/api/v1/org/home-lab/api-keys
body: none
auth: inherit
}

View File

@@ -0,0 +1,11 @@
meta {
name: List Root API Keys
type: http
seq: 3
}
get {
url: http://localhost:3000/api/v1/root/api-keys
body: none
auth: inherit
}

View File

@@ -0,0 +1,17 @@
meta {
name: Set API Key Actions
type: http
seq: 5
}
post {
url: http://localhost:3000/api/v1/api-key/ex0izu2c37fjz9x/actions
body: json
auth: inherit
}
body:json {
{
"actionIds": ["listSites"]
}
}

View File

@@ -0,0 +1,17 @@
meta {
name: Set API Key Orgs
type: http
seq: 7
}
post {
url: http://localhost:3000/api/v1/api-key/ex0izu2c37fjz9x/orgs
body: json
auth: inherit
}
body:json {
{
"orgIds": ["home-lab"]
}
}

View File

@@ -0,0 +1,3 @@
meta {
name: API Keys
}

View File

@@ -12,7 +12,7 @@ post {
body:json {
{
"email": "owen@fossorial.io",
"email": "admin@fosrl.io",
"password": "Password123!"
}
}

View File

@@ -5,7 +5,7 @@ meta {
}
post {
url: http://localhost:3000/api/v1/auth/logout
url: http://localhost:4000/api/v1/auth/logout
body: none
auth: none
}

View File

@@ -12,6 +12,6 @@ post {
body:json {
{
"email": "milo@fossorial.io"
"email": "milo@pangolin.net"
}
}

View File

@@ -12,7 +12,7 @@ put {
body:json {
{
"email": "numbat@fossorial.io",
"email": "numbat@pangolin.net",
"password": "Password123!"
}
}

View File

@@ -0,0 +1,22 @@
meta {
name: createClient
type: http
seq: 1
}
put {
url: http://localhost:3000/api/v1/site/1/client
body: json
auth: none
}
body:json {
{
"siteId": 1,
"name": "test",
"type": "olm",
"subnet": "100.90.129.4/30",
"olmId": "029yzunhx6nh3y5",
"secret": "l0ymp075y3d4rccb25l6sqpgar52k09etunui970qq5gj7x6"
}
}

View File

@@ -0,0 +1,11 @@
meta {
name: pickClientDefaults
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1/site/1/pick-client-defaults
body: none
auth: none
}

View File

@@ -0,0 +1,22 @@
meta {
name: Create OIDC Provider
type: http
seq: 1
}
put {
url: http://localhost:3000/api/v1/org/home-lab/idp/oidc
body: json
auth: inherit
}
body:json {
{
"clientId": "JJoSvHCZcxnXT2sn6CObj6a21MuKNRXs3kN5wbys",
"clientSecret": "2SlGL2wOGgMEWLI9yUuMAeFxre7qSNJVnXMzyepdNzH1qlxYnC4lKhhQ6a157YQEkYH3vm40KK4RCqbYiF8QIweuPGagPX3oGxEj2exwutoXFfOhtq4hHybQKoFq01Z3",
"authUrl": "http://localhost:9000/application/o/authorize/",
"tokenUrl": "http://localhost:9000/application/o/token/",
"scopes": ["email", "openid", "profile"],
"userIdentifier": "email"
}
}

View File

@@ -0,0 +1,11 @@
meta {
name: Generate OIDC URL
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1
body: none
auth: inherit
}

3
bruno/IDP/folder.bru Normal file
View File

@@ -0,0 +1,3 @@
meta {
name: IDP
}

View File

@@ -0,0 +1,11 @@
meta {
name: Traefik Config
type: http
seq: 1
}
get {
url: http://localhost:3001/api/v1/traefik-config
body: none
auth: inherit
}

View File

@@ -0,0 +1,3 @@
meta {
name: Internal
}

15
bruno/Olm/createOlm.bru Normal file
View File

@@ -0,0 +1,15 @@
meta {
name: createOlm
type: http
seq: 1
}
put {
url: http://localhost:3000/api/v1/olm
body: none
auth: inherit
}
settings {
encodeUrl: true
}

8
bruno/Olm/folder.bru Normal file
View File

@@ -0,0 +1,8 @@
meta {
name: Olm
seq: 15
}
auth {
mode: inherit
}

View File

@@ -0,0 +1,11 @@
meta {
name: createRemoteExitNode
type: http
seq: 1
}
put {
url: http://localhost:4000/api/v1/org/org_i21aifypnlyxur2/remote-exit-node
body: none
auth: none
}

11
bruno/Test.bru Normal file
View File

@@ -0,0 +1,11 @@
meta {
name: Test
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1
body: none
auth: inherit
}

View File

@@ -0,0 +1,11 @@
meta {
name: adminListUsers
type: http
seq: 2
}
get {
url: http://localhost:3000/api/v1/users
body: none
auth: none
}

View File

@@ -0,0 +1,11 @@
meta {
name: adminRemoveUser
type: http
seq: 3
}
delete {
url: http://localhost:3000/api/v1/user/ky5r7ivqs8wc7u4
body: none
auth: none
}

View File

@@ -0,0 +1,36 @@
import { CommandModule } from "yargs";
import { db, exitNodes } from "@server/db";
import { eq } from "drizzle-orm";
type ClearExitNodesArgs = { };
export const clearExitNodes: CommandModule<
{},
ClearExitNodesArgs
> = {
command: "clear-exit-nodes",
describe:
"Clear all exit nodes from the database",
// no args
builder: (yargs) => {
return yargs;
},
handler: async (argv: {}) => {
try {
console.log(`Clearing all exit nodes from the database`);
// Delete all exit nodes
const deletedCount = await db
.delete(exitNodes)
.where(eq(exitNodes.exitNodeId, exitNodes.exitNodeId)) .returning();; // delete all
console.log(`Deleted ${deletedCount.length} exit node(s) from the database`);
process.exit(0);
} catch (error) {
console.error("Error:", error);
process.exit(1);
}
}
};

View File

@@ -0,0 +1,36 @@
import { CommandModule } from "yargs";
import { db, licenseKey } from "@server/db";
import { eq } from "drizzle-orm";
type ClearLicenseKeysArgs = { };
export const clearLicenseKeys: CommandModule<
{},
ClearLicenseKeysArgs
> = {
command: "clear-license-keys",
describe:
"Clear all license keys from the database",
// no args
builder: (yargs) => {
return yargs;
},
handler: async (argv: {}) => {
try {
console.log(`Clearing all license keys from the database`);
// Delete all license keys
const deletedCount = await db
.delete(licenseKey)
.where(eq(licenseKey.licenseKeyId, licenseKey.licenseKeyId)) .returning();; // delete all
console.log(`Deleted ${deletedCount.length} license key(s) from the database`);
process.exit(0);
} catch (error) {
console.error("Error:", error);
process.exit(1);
}
}
};

View File

@@ -0,0 +1,123 @@
import { CommandModule } from "yargs";
import { db, clients, olms, currentFingerprint, userClients, approvals } from "@server/db";
import { eq, and, inArray } from "drizzle-orm";
type DeleteClientArgs = {
orgId: string;
niceId: string;
};
export const deleteClient: CommandModule<{}, DeleteClientArgs> = {
command: "delete-client",
describe:
"Delete a client and all associated data (OLMs, current fingerprint, userClients, approvals). Snapshots are preserved.",
builder: (yargs) => {
return yargs
.option("orgId", {
type: "string",
demandOption: true,
describe: "The organization ID"
})
.option("niceId", {
type: "string",
demandOption: true,
describe: "The client niceId (identifier)"
});
},
handler: async (argv: { orgId: string; niceId: string }) => {
try {
const { orgId, niceId } = argv;
console.log(
`Deleting client with orgId: ${orgId}, niceId: ${niceId}...`
);
// Find the client
const [client] = await db
.select()
.from(clients)
.where(and(eq(clients.orgId, orgId), eq(clients.niceId, niceId)))
.limit(1);
if (!client) {
console.error(
`Error: Client with orgId "${orgId}" and niceId "${niceId}" not found.`
);
process.exit(1);
}
const clientId = client.clientId;
console.log(`Found client with clientId: ${clientId}`);
// Find all OLMs associated with this client
const associatedOlms = await db
.select()
.from(olms)
.where(eq(olms.clientId, clientId));
console.log(`Found ${associatedOlms.length} OLM(s) associated with this client`);
// Delete in a transaction to ensure atomicity
await db.transaction(async (trx) => {
// Delete currentFingerprint entries for the associated OLMs
// Note: We delete these explicitly before deleting OLMs to ensure
// we have control, even though cascade would handle it
let fingerprintCount = 0;
if (associatedOlms.length > 0) {
const olmIds = associatedOlms.map((olm) => olm.olmId);
const deletedFingerprints = await trx
.delete(currentFingerprint)
.where(inArray(currentFingerprint.olmId, olmIds))
.returning();
fingerprintCount = deletedFingerprints.length;
}
console.log(`Deleted ${fingerprintCount} current fingerprint(s)`);
// Delete OLMs
// Note: OLMs have onDelete: "set null" for clientId, so we need to delete them explicitly
const deletedOlms = await trx
.delete(olms)
.where(eq(olms.clientId, clientId))
.returning();
console.log(`Deleted ${deletedOlms.length} OLM(s)`);
// Delete approvals
// Note: Approvals have onDelete: "cascade" but we delete explicitly for clarity
const deletedApprovals = await trx
.delete(approvals)
.where(eq(approvals.clientId, clientId))
.returning();
console.log(`Deleted ${deletedApprovals.length} approval(s)`);
// Delete userClients
// Note: userClients have onDelete: "cascade" but we delete explicitly for clarity
const deletedUserClients = await trx
.delete(userClients)
.where(eq(userClients.clientId, clientId))
.returning();
console.log(`Deleted ${deletedUserClients.length} userClient association(s)`);
// Finally, delete the client itself
const deletedClients = await trx
.delete(clients)
.where(eq(clients.clientId, clientId))
.returning();
console.log(`Deleted client: ${deletedClients[0]?.name || niceId}`);
});
console.log("\nClient deletion completed successfully!");
console.log("\nSummary:");
console.log(` - Client: ${niceId} (clientId: ${clientId})`);
console.log(` - Olm(s): ${associatedOlms.length}`);
console.log(` - Current fingerprints: deleted`);
console.log(` - Approvals: deleted`);
console.log(` - UserClients: deleted`);
console.log(` - Snapshots: preserved (not deleted)`);
process.exit(0);
} catch (error) {
console.error("Error deleting client:", error);
process.exit(1);
}
}
};

View File

@@ -0,0 +1,72 @@
import { CommandModule } from "yargs";
import { db, users, securityKeys } from "@server/db";
import { eq } from "drizzle-orm";
type ResetUserSecurityKeysArgs = {
email: string;
};
export const resetUserSecurityKeys: CommandModule<
{},
ResetUserSecurityKeysArgs
> = {
command: "reset-user-security-keys",
describe:
"Reset a user's security keys (passkeys) by deleting all their webauthn credentials",
builder: (yargs) => {
return yargs.option("email", {
type: "string",
demandOption: true,
describe: "User email address"
});
},
handler: async (argv: { email: string }) => {
try {
const { email } = argv;
console.log(`Looking for user with email: ${email}`);
// Find the user by email
const [user] = await db
.select()
.from(users)
.where(eq(users.email, email))
.limit(1);
if (!user) {
console.error(`User with email '${email}' not found`);
process.exit(1);
}
console.log(`Found user: ${user.email} (ID: ${user.userId})`);
// Check if user has any security keys
const userSecurityKeys = await db
.select()
.from(securityKeys)
.where(eq(securityKeys.userId, user.userId));
if (userSecurityKeys.length === 0) {
console.log(`User '${email}' has no security keys to reset`);
process.exit(0);
}
console.log(
`Found ${userSecurityKeys.length} security key(s) for user '${email}'`
);
// Delete all security keys for the user
await db
.delete(securityKeys)
.where(eq(securityKeys.userId, user.userId));
console.log(`Successfully reset security keys for user '${email}'`);
console.log(`Deleted ${userSecurityKeys.length} security key(s)`);
process.exit(0);
} catch (error) {
console.error("Error:", error);
process.exit(1);
}
}
};

View File

@@ -0,0 +1,284 @@
import { CommandModule } from "yargs";
import { db, idpOidcConfig, licenseKey } from "@server/db";
import { encrypt, decrypt } from "@server/lib/crypto";
import { configFilePath1, configFilePath2 } from "@server/lib/consts";
import { eq } from "drizzle-orm";
import fs from "fs";
import yaml from "js-yaml";
type RotateServerSecretArgs = {
"old-secret": string;
"new-secret": string;
force?: boolean;
};
export const rotateServerSecret: CommandModule<
{},
RotateServerSecretArgs
> = {
command: "rotate-server-secret",
describe:
"Rotate the server secret by decrypting all encrypted values with the old secret and re-encrypting with a new secret",
builder: (yargs) => {
return yargs
.option("old-secret", {
type: "string",
demandOption: true,
describe: "The current server secret (for verification)"
})
.option("new-secret", {
type: "string",
demandOption: true,
describe: "The new server secret to use"
})
.option("force", {
type: "boolean",
default: false,
describe:
"Force rotation even if the old secret doesn't match the config file. " +
"Use this if you know the old secret is correct but the config file is out of sync. " +
"WARNING: This will attempt to decrypt all values with the provided old secret. " +
"If the old secret is incorrect, the rotation will fail or corrupt data."
});
},
handler: async (argv: {
"old-secret": string;
"new-secret": string;
force?: boolean;
}) => {
try {
// Determine which config file exists
const configPath = fs.existsSync(configFilePath1)
? configFilePath1
: fs.existsSync(configFilePath2)
? configFilePath2
: null;
if (!configPath) {
console.error(
"Error: Config file not found. Expected config.yml or config.yaml in the config directory."
);
process.exit(1);
}
// Read current config
const configContent = fs.readFileSync(configPath, "utf8");
const config = yaml.load(configContent) as any;
if (!config?.server?.secret) {
console.error(
"Error: No server secret found in config file. Cannot rotate."
);
process.exit(1);
}
const configSecret = config.server.secret;
const oldSecret = argv["old-secret"];
const newSecret = argv["new-secret"];
const force = argv.force || false;
// Verify that the provided old secret matches the one in config
if (configSecret !== oldSecret) {
if (!force) {
console.error(
"Error: The provided old secret does not match the secret in the config file."
);
console.error(
"\nIf you are certain the old secret is correct and the config file is out of sync,"
);
console.error(
"you can use the --force flag to bypass this check."
);
console.error(
"\nWARNING: Using --force with an incorrect old secret will cause the rotation to fail"
);
console.error(
"or corrupt encrypted data. Only use --force if you are absolutely certain."
);
process.exit(1);
} else {
console.warn(
"\nWARNING: Using --force flag. Bypassing old secret verification."
);
console.warn(
"The provided old secret does not match the config file, but proceeding anyway."
);
console.warn(
"If the old secret is incorrect, this operation will fail or corrupt data.\n"
);
}
}
// Validate new secret
if (newSecret.length < 8) {
console.error(
"Error: New secret must be at least 8 characters long"
);
process.exit(1);
}
if (oldSecret === newSecret) {
console.error("Error: New secret must be different from old secret");
process.exit(1);
}
console.log("Starting server secret rotation...");
console.log("This will decrypt and re-encrypt all encrypted values in the database.");
// Read all data first
console.log("\nReading encrypted data from database...");
const idpConfigs = await db.select().from(idpOidcConfig);
const licenseKeys = await db.select().from(licenseKey);
console.log(`Found ${idpConfigs.length} OIDC IdP configuration(s)`);
console.log(`Found ${licenseKeys.length} license key(s)`);
// Prepare all decrypted and re-encrypted values
console.log("\nDecrypting and re-encrypting values...");
type IdpUpdate = {
idpOauthConfigId: number;
encryptedClientId: string;
encryptedClientSecret: string;
};
type LicenseKeyUpdate = {
oldLicenseKeyId: string;
newLicenseKeyId: string;
encryptedToken: string;
encryptedInstanceId: string;
};
const idpUpdates: IdpUpdate[] = [];
const licenseKeyUpdates: LicenseKeyUpdate[] = [];
// Process idpOidcConfig entries
for (const idpConfig of idpConfigs) {
try {
// Decrypt with old secret
const decryptedClientId = decrypt(idpConfig.clientId, oldSecret);
const decryptedClientSecret = decrypt(
idpConfig.clientSecret,
oldSecret
);
// Re-encrypt with new secret
const encryptedClientId = encrypt(decryptedClientId, newSecret);
const encryptedClientSecret = encrypt(
decryptedClientSecret,
newSecret
);
idpUpdates.push({
idpOauthConfigId: idpConfig.idpOauthConfigId,
encryptedClientId,
encryptedClientSecret
});
} catch (error) {
console.error(
`Error processing IdP config ${idpConfig.idpOauthConfigId}:`,
error
);
throw error;
}
}
// Process licenseKey entries
for (const key of licenseKeys) {
try {
// Decrypt with old secret
const decryptedLicenseKeyId = decrypt(key.licenseKeyId, oldSecret);
const decryptedToken = decrypt(key.token, oldSecret);
const decryptedInstanceId = decrypt(key.instanceId, oldSecret);
// Re-encrypt with new secret
const encryptedLicenseKeyId = encrypt(
decryptedLicenseKeyId,
newSecret
);
const encryptedToken = encrypt(decryptedToken, newSecret);
const encryptedInstanceId = encrypt(
decryptedInstanceId,
newSecret
);
licenseKeyUpdates.push({
oldLicenseKeyId: key.licenseKeyId,
newLicenseKeyId: encryptedLicenseKeyId,
encryptedToken,
encryptedInstanceId
});
} catch (error) {
console.error(
`Error processing license key ${key.licenseKeyId}:`,
error
);
throw error;
}
}
// Perform all database updates in a single transaction
console.log("\nUpdating database in transaction...");
await db.transaction(async (trx) => {
// Update idpOidcConfig entries
for (const update of idpUpdates) {
await trx
.update(idpOidcConfig)
.set({
clientId: update.encryptedClientId,
clientSecret: update.encryptedClientSecret
})
.where(
eq(
idpOidcConfig.idpOauthConfigId,
update.idpOauthConfigId
)
);
}
// Update licenseKey entries (delete old, insert new)
for (const update of licenseKeyUpdates) {
// Delete old entry
await trx
.delete(licenseKey)
.where(eq(licenseKey.licenseKeyId, update.oldLicenseKeyId));
// Insert new entry with re-encrypted values
await trx.insert(licenseKey).values({
licenseKeyId: update.newLicenseKeyId,
token: update.encryptedToken,
instanceId: update.encryptedInstanceId
});
}
});
console.log(`Rotated ${idpUpdates.length} OIDC IdP configuration(s)`);
console.log(`Rotated ${licenseKeyUpdates.length} license key(s)`);
// Update config file with new secret
console.log("\nUpdating config file...");
config.server.secret = newSecret;
const newConfigContent = yaml.dump(config, {
indent: 2,
lineWidth: -1
});
fs.writeFileSync(configPath, newConfigContent, "utf8");
console.log(`Updated config file: ${configPath}`);
console.log("\nServer secret rotation completed successfully!");
console.log(`\nSummary:`);
console.log(` - OIDC IdP configurations: ${idpUpdates.length}`);
console.log(` - License keys: ${licenseKeyUpdates.length}`);
console.log(
`\n IMPORTANT: Restart the server for the new secret to take effect.`
);
process.exit(0);
} catch (error) {
console.error("Error rotating server secret:", error);
process.exit(1);
}
}
};

View File

@@ -0,0 +1,144 @@
import { CommandModule } from "yargs";
import { hashPassword, verifyPassword } from "@server/auth/password";
import { db, resourceSessions, sessions } from "@server/db";
import { users } from "@server/db";
import { eq, inArray } from "drizzle-orm";
import moment from "moment";
import { fromError } from "zod-validation-error";
import { passwordSchema } from "@server/auth/passwordSchema";
import { UserType } from "@server/types/UserTypes";
import { generateRandomString, RandomReader } from "@oslojs/crypto/random";
type SetAdminCredentialsArgs = {
email: string;
password: string;
};
export const setAdminCredentials: CommandModule<{}, SetAdminCredentialsArgs> = {
command: "set-admin-credentials",
describe: "Set the server admin credentials",
builder: (yargs) => {
return yargs
.option("email", {
type: "string",
demandOption: true,
describe: "Admin email address"
})
.option("password", {
type: "string",
demandOption: true,
describe: "Admin password"
});
},
handler: async (argv: { email: string; password: string }) => {
try {
const { password } = argv;
let { email } = argv;
email = email.trim().toLowerCase();
const parsed = passwordSchema.safeParse(password);
if (!parsed.success) {
throw Error(
`Invalid server admin password: ${fromError(parsed.error).toString()}`
);
}
const passwordHash = await hashPassword(password);
await db.transaction(async (trx) => {
try {
const [existing] = await trx
.select()
.from(users)
.where(eq(users.serverAdmin, true));
if (existing) {
const passwordChanged = !(await verifyPassword(
password,
existing.passwordHash!
));
if (passwordChanged) {
await trx
.update(users)
.set({ passwordHash })
.where(eq(users.userId, existing.userId));
await invalidateAllSessions(existing.userId);
console.log("Server admin password updated");
}
if (existing.email !== email) {
await trx
.update(users)
.set({ email, username: email })
.where(eq(users.userId, existing.userId));
console.log("Server admin email updated");
}
} else {
const userId = generateId(15);
await trx.update(users).set({ serverAdmin: false });
await db.insert(users).values({
userId: userId,
email: email,
type: UserType.Internal,
username: email,
passwordHash,
dateCreated: moment().toISOString(),
serverAdmin: true,
emailVerified: true,
lastPasswordChange: new Date().getTime()
});
console.log("Server admin created");
}
} catch (e) {
console.error("Failed to set admin credentials", e);
trx.rollback();
throw e;
}
});
console.log("Admin credentials updated successfully");
process.exit(0);
} catch (error) {
console.error("Error:", error);
process.exit(1);
}
}
};
export async function invalidateAllSessions(userId: string): Promise<void> {
try {
await db.transaction(async (trx) => {
const userSessions = await trx
.select()
.from(sessions)
.where(eq(sessions.userId, userId));
await trx.delete(resourceSessions).where(
inArray(
resourceSessions.userSessionId,
userSessions.map((s) => s.sessionId)
)
);
await trx.delete(sessions).where(eq(sessions.userId, userId));
});
} catch (e) {
console.log("Failed to all invalidate user sessions", e);
}
}
const random: RandomReader = {
read(bytes: Uint8Array): void {
crypto.getRandomValues(bytes);
}
};
export function generateId(length: number): string {
const alphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
return generateRandomString(random, alphabet, length);
}

21
cli/index.ts Normal file
View File

@@ -0,0 +1,21 @@
#!/usr/bin/env node
import yargs from "yargs";
import { hideBin } from "yargs/helpers";
import { setAdminCredentials } from "@cli/commands/setAdminCredentials";
import { resetUserSecurityKeys } from "@cli/commands/resetUserSecurityKeys";
import { clearExitNodes } from "./commands/clearExitNodes";
import { rotateServerSecret } from "./commands/rotateServerSecret";
import { clearLicenseKeys } from "./commands/clearLicenseKeys";
import { deleteClient } from "./commands/deleteClient";
yargs(hideBin(process.argv))
.scriptName("pangctl")
.command(setAdminCredentials)
.command(resetUserSecurityKeys)
.command(clearExitNodes)
.command(rotateServerSecret)
.command(clearLicenseKeys)
.command(deleteClient)
.demandCommand()
.help().argv;

3
cli/wrapper.sh Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
cd /app/
./dist/cli.mjs "$@"

View File

@@ -17,4 +17,4 @@
"lib": "@/lib",
"hooks": "@/hooks"
}
}
}

View File

@@ -1,41 +1,30 @@
app:
dashboard_url: http://localhost
base_domain: localhost
log_level: debug
save_logs: false
server:
external_port: 3000
internal_port: 3001
next_port: 3002
internal_hostname: localhost
secure_cookies: false
session_cookie_name: p_session
resource_session_cookie_name: p_resource_session
resource_access_token_param: p_token
traefik:
cert_resolver: letsencrypt
http_entrypoint: web
https_entrypoint: websecure
# To see all available options, please visit the docs:
# https://docs.pangolin.net/
gerbil:
start_port: 51820
base_endpoint: localhost
block_size: 24
site_block_size: 30
subnet_group: 100.89.137.0/20
use_subdomain: true
base_endpoint: "{{.DashboardDomain}}"
rate_limits:
global:
window_minutes: 1
max_requests: 100
app:
dashboard_url: "https://{{.DashboardDomain}}"
log_level: "info"
telemetry:
anonymous_usage: true
users:
server_admin:
email: admin@example.com
password: Password123!
domains:
domain1:
base_domain: "{{.BaseDomain}}"
server:
secret: "{{.Secret}}"
cors:
origins: ["https://{{.DashboardDomain}}"]
methods: ["GET", "POST", "PUT", "DELETE", "PATCH"]
allowed_headers: ["X-CSRF-Token", "Content-Type"]
credentials: false
flags:
require_email_verification: false
disable_signup_without_invite: true
disable_user_create_org: false
allow_raw_resources: true

View File

@@ -0,0 +1,62 @@
http:
middlewares:
badger:
plugin:
badger:
disableForwardAuth: true
redirect-to-https:
redirectScheme:
scheme: https
routers:
# HTTP to HTTPS redirect router
main-app-router-redirect:
rule: "Host(`{{.DashboardDomain}}`)"
service: next-service
entryPoints:
- web
middlewares:
- redirect-to-https
- badger
# Next.js router (handles everything except API and WebSocket paths)
next-router:
rule: "Host(`{{.DashboardDomain}}`) && !PathPrefix(`/api/v1`)"
service: next-service
entryPoints:
- websecure
middlewares:
- badger
tls:
certResolver: letsencrypt
# API router (handles /api/v1 paths)
api-router:
rule: "Host(`{{.DashboardDomain}}`) && PathPrefix(`/api/v1`)"
service: api-service
entryPoints:
- websecure
middlewares:
- badger
tls:
certResolver: letsencrypt
services:
next-service:
loadBalancer:
servers:
- url: "http://pangolin:3002" # Next.js server
api-service:
loadBalancer:
servers:
- url: "http://pangolin:3000" # API/WebSocket server
tcp:
serversTransports:
pp-transport-v1:
proxyProtocol:
version: 1
pp-transport-v2:
proxyProtocol:
version: 2

View File

@@ -13,11 +13,15 @@ experimental:
plugins:
badger:
moduleName: "github.com/fosrl/badger"
version: "v1.0.0-beta.2"
version: "{{.BadgerVersion}}"
log:
level: "INFO"
format: "common"
maxSize: 100
maxBackups: 3
maxAge: 3
compress: true
certificatesResolvers:
letsencrypt:
@@ -33,9 +37,18 @@ entryPoints:
address: ":80"
websecure:
address: ":443"
transport:
respondingTimeouts:
readTimeout: "30m"
http:
tls:
certResolver: "letsencrypt"
encodedCharacters:
allowEncodedSlash: true
allowEncodedQuestionMark: true
serversTransport:
insecureSkipVerify: true
ping:
entryPoint: "web"

3
crowdin.yml Normal file
View File

@@ -0,0 +1,3 @@
files:
- source: /messages/en-US.json
translation: /messages/%locale%.json

View File

@@ -0,0 +1,15 @@
services:
drizzle-gateway:
image: ghcr.io/drizzle-team/gateway:latest
ports:
- "4984:4983"
depends_on:
- db
environment:
- STORE_PATH=/app
- DATABASE_URL=postgresql://postgres:password@db:5432/postgres
volumes:
- drizzle-gateway-data:/app
volumes:
drizzle-gateway-data:

View File

@@ -1,5 +1,4 @@
version: "3.7"
name: pangolin
services:
pangolin:
image: fosrl/pangolin:latest
@@ -11,7 +10,7 @@ services:
test: ["CMD", "curl", "-f", "http://localhost:3001/api/v1/"]
interval: "3s"
timeout: "3s"
retries: 5
retries: 15
gerbil:
image: fosrl/gerbil:latest
@@ -21,10 +20,9 @@ services:
pangolin:
condition: service_healthy
command:
- --reachableAt=http://gerbil:3003
- --reachableAt=http://gerbil:3004
- --generateAndSaveKeyTo=/var/config/key
- --remoteConfig=http://pangolin:3001/api/v1/gerbil/get-config
- --reportBandwidthTo=http://pangolin:3001/api/v1/gerbil/receive-bandwidth
- --remoteConfig=http://pangolin:3001/api/v1/
volumes:
- ./config/:/var/config
cap_add:
@@ -32,12 +30,12 @@ services:
- SYS_MODULE
ports:
- 51820:51820/udp
- 8080:8080 # Port for traefik because of the network_mode
- 21820:21820/udp
- 443:443 # Port for traefik because of the network_mode
- 80:80 # Port for traefik because of the network_mode
traefik:
image: traefik:v3.1
image: traefik:v3.6
container_name: traefik
restart: unless-stopped
network_mode: service:gerbil # Ports appear on the gerbil service
@@ -47,5 +45,11 @@ services:
command:
- --configFile=/etc/traefik/traefik_config.yml
volumes:
- ./traefik:/etc/traefik:ro # Volume to store the Traefik configuration
- ./letsencrypt:/letsencrypt # Volume to store the Let's Encrypt certificates
- ./config/traefik:/etc/traefik:ro # Volume to store the Traefik configuration
- ./config/letsencrypt:/letsencrypt # Volume to store the Let's Encrypt certificates
networks:
default:
driver: bridge
name: pangolin
enable_ipv6: true

21
docker-compose.pgr.yml Normal file
View File

@@ -0,0 +1,21 @@
services:
# PostgreSQL Service
db:
image: postgres:17 # Use the PostgreSQL 17 image
container_name: dev_postgres # Name your PostgreSQL container
environment:
POSTGRES_DB: postgres # Default database name
POSTGRES_USER: postgres # Default user
POSTGRES_PASSWORD: password # Default password (change for production!)
volumes:
- ./config/postgres:/var/lib/postgresql/data
ports:
- "5432:5432" # Map host port 5432 to container port 5432
restart: no
redis:
image: redis:latest # Use the latest Redis image
container_name: dev_redis # Name your Redis container
ports:
- "6379:6379" # Map host port 6379 to container port 6379
restart: no

29
docker-compose.yml Normal file
View File

@@ -0,0 +1,29 @@
services:
# Development application service
app:
build:
context: .
dockerfile: Dockerfile.dev
container_name: dev_pangolin
ports:
- "3000:3000"
- "3001:3001"
- "3002:3002"
- "3003:3003"
environment:
- NODE_ENV=development
- ENVIRONMENT=dev
volumes:
# Mount source code for hot reload
- ./src:/app/src
- ./server:/app/server
- ./public:/app/public
- ./messages:/app/messages
- ./components.json:/app/components.json
- ./next.config.mjs:/app/next.config.mjs
- ./tsconfig.json:/app/tsconfig.json
- ./tailwind.config.js:/app/tailwind.config.js
- ./postcss.config.mjs:/app/postcss.config.mjs
- ./eslint.config.js:/app/eslint.config.js
- ./config:/app/config
restart: no

14
drizzle.pg.config.ts Normal file
View File

@@ -0,0 +1,14 @@
import { defineConfig } from "drizzle-kit";
import path from "path";
const schema = [path.join("server", "db", "pg", "schema")];
export default defineConfig({
dialect: "postgresql",
schema: schema,
out: path.join("server", "migrations"),
verbose: true,
dbCredentials: {
url: process.env.DATABASE_URL as string
}
});

View File

@@ -2,12 +2,14 @@ import { APP_PATH } from "@server/lib/consts";
import { defineConfig } from "drizzle-kit";
import path from "path";
const schema = [path.join("server", "db", "sqlite", "schema")];
export default defineConfig({
dialect: "sqlite",
schema: path.join("server", "db", "schema.ts"),
schema: schema,
out: path.join("server", "migrations"),
verbose: true,
dbCredentials: {
url: path.join(APP_PATH, "db", "db.sqlite"),
},
url: path.join(APP_PATH, "db", "db.sqlite")
}
});

View File

@@ -2,8 +2,9 @@ import esbuild from "esbuild";
import yargs from "yargs";
import { hideBin } from "yargs/helpers";
import { nodeExternalsPlugin } from "esbuild-node-externals";
import path from "path";
import fs from "fs";
// import { glob } from "glob";
// import path from "path";
const banner = `
// patch __dirname
@@ -18,18 +19,25 @@ const require = topLevelCreateRequire(import.meta.url);
`;
const argv = yargs(hideBin(process.argv))
.usage("Usage: $0 -entry [string] -out [string]")
.usage("Usage: $0 -entry [string] -out [string] -build [string]")
.option("entry", {
alias: "e",
describe: "Entry point file",
type: "string",
demandOption: true,
demandOption: true
})
.option("out", {
alias: "o",
describe: "Output file path",
type: "string",
demandOption: true,
demandOption: true
})
.option("build", {
alias: "b",
describe: "Build type (oss, saas, enterprise)",
type: "string",
choices: ["oss", "saas", "enterprise"],
default: "oss"
})
.help()
.alias("help", "h").argv;
@@ -46,26 +54,252 @@ function getPackagePaths() {
return ["package.json"];
}
// Plugin to guard against bad imports from #private
function privateImportGuardPlugin() {
return {
name: "private-import-guard",
setup(build) {
const violations = [];
build.onResolve({ filter: /^#private\// }, (args) => {
const importingFile = args.importer;
// Check if the importing file is NOT in server/private
const normalizedImporter = path.normalize(importingFile);
const isInServerPrivate = normalizedImporter.includes(
path.normalize("server/private")
);
if (!isInServerPrivate) {
const violation = {
file: importingFile,
importPath: args.path,
resolveDir: args.resolveDir
};
violations.push(violation);
console.log(`PRIVATE IMPORT VIOLATION:`);
console.log(` File: ${importingFile}`);
console.log(` Import: ${args.path}`);
console.log(` Resolve dir: ${args.resolveDir || "N/A"}`);
console.log("");
}
// Return null to let the default resolver handle it
return null;
});
build.onEnd((result) => {
if (violations.length > 0) {
console.log(
`\nSUMMARY: Found ${violations.length} private import violation(s):`
);
violations.forEach((v, i) => {
console.log(
` ${i + 1}. ${path.relative(process.cwd(), v.file)} imports ${v.importPath}`
);
});
console.log("");
result.errors.push({
text: `Private import violations detected: ${violations.length} violation(s) found`,
location: null,
notes: violations.map((v) => ({
text: `${path.relative(process.cwd(), v.file)} imports ${v.importPath}`,
location: null
}))
});
}
});
}
};
}
// Plugin to guard against bad imports from #private
function dynamicImportGuardPlugin() {
return {
name: "dynamic-import-guard",
setup(build) {
const violations = [];
build.onResolve({ filter: /^#dynamic\// }, (args) => {
const importingFile = args.importer;
// Check if the importing file is NOT in server/private
const normalizedImporter = path.normalize(importingFile);
const isInServerPrivate = normalizedImporter.includes(
path.normalize("server/private")
);
if (isInServerPrivate) {
const violation = {
file: importingFile,
importPath: args.path,
resolveDir: args.resolveDir
};
violations.push(violation);
console.log(`DYNAMIC IMPORT VIOLATION:`);
console.log(` File: ${importingFile}`);
console.log(` Import: ${args.path}`);
console.log(` Resolve dir: ${args.resolveDir || "N/A"}`);
console.log("");
}
// Return null to let the default resolver handle it
return null;
});
build.onEnd((result) => {
if (violations.length > 0) {
console.log(
`\nSUMMARY: Found ${violations.length} dynamic import violation(s):`
);
violations.forEach((v, i) => {
console.log(
` ${i + 1}. ${path.relative(process.cwd(), v.file)} imports ${v.importPath}`
);
});
console.log("");
result.errors.push({
text: `Dynamic import violations detected: ${violations.length} violation(s) found`,
location: null,
notes: violations.map((v) => ({
text: `${path.relative(process.cwd(), v.file)} imports ${v.importPath}`,
location: null
}))
});
}
});
}
};
}
// Plugin to dynamically switch imports based on build type
function dynamicImportSwitcherPlugin(buildValue) {
return {
name: "dynamic-import-switcher",
setup(build) {
const switches = [];
build.onStart(() => {
console.log(
`Dynamic import switcher using build type: ${buildValue}`
);
});
build.onResolve({ filter: /^#dynamic\// }, (args) => {
// Extract the path after #dynamic/
const dynamicPath = args.path.replace(/^#dynamic\//, "");
// Determine the replacement based on build type
let replacement;
if (buildValue === "oss") {
replacement = `#open/${dynamicPath}`;
} else if (
buildValue === "saas" ||
buildValue === "enterprise"
) {
replacement = `#closed/${dynamicPath}`; // We use #closed here so that the route guards dont complain after its been changed but this is the same as #private
} else {
console.warn(
`Unknown build type '${buildValue}', defaulting to #open/`
);
replacement = `#open/${dynamicPath}`;
}
const switchInfo = {
file: args.importer,
originalPath: args.path,
replacementPath: replacement,
buildType: buildValue
};
switches.push(switchInfo);
console.log(`DYNAMIC IMPORT SWITCH:`);
console.log(` File: ${args.importer}`);
console.log(` Original: ${args.path}`);
console.log(
` Switched to: ${replacement} (build: ${buildValue})`
);
console.log("");
// Rewrite the import path and let the normal resolution continue
return build.resolve(replacement, {
importer: args.importer,
namespace: args.namespace,
resolveDir: args.resolveDir,
kind: args.kind
});
});
build.onEnd((result) => {
if (switches.length > 0) {
console.log(
`\nDYNAMIC IMPORT SUMMARY: Switched ${switches.length} import(s) for build type '${buildValue}':`
);
switches.forEach((s, i) => {
console.log(
` ${i + 1}. ${path.relative(process.cwd(), s.file)}`
);
console.log(
` ${s.originalPath}${s.replacementPath}`
);
});
console.log("");
}
});
}
};
}
esbuild
.build({
entryPoints: [argv.entry],
bundle: true,
outfile: argv.out,
format: "esm",
minify: false,
banner: {
js: banner,
js: banner
},
platform: "node",
external: ["body-parser"],
plugins: [
privateImportGuardPlugin(),
dynamicImportGuardPlugin(),
dynamicImportSwitcherPlugin(argv.build),
nodeExternalsPlugin({
packagePath: getPackagePaths(),
}),
packagePath: getPackagePaths()
})
],
sourcemap: true,
target: "node20",
sourcemap: "inline",
target: "node22"
})
.then(() => {
.then((result) => {
// Check if there were any errors in the build result
if (result.errors && result.errors.length > 0) {
console.error(
`Build failed with ${result.errors.length} error(s):`
);
result.errors.forEach((error, i) => {
console.error(`${i + 1}. ${error.text}`);
if (error.notes) {
error.notes.forEach((note) => {
console.error(` - ${note.text}`);
});
}
});
// remove the output file if it was created
if (fs.existsSync(argv.out)) {
fs.unlinkSync(argv.out);
}
process.exit(1);
}
console.log("Build completed successfully");
})
.catch((error) => {

19
eslint.config.js Normal file
View File

@@ -0,0 +1,19 @@
import tseslint from "typescript-eslint";
export default tseslint.config({
files: ["**/*.{ts,tsx,js,jsx}"],
languageOptions: {
parser: tseslint.parser,
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
ecmaFeatures: {
jsx: true
}
}
},
rules: {
semi: "error",
"prefer-const": "warn"
}
});

View File

@@ -1,14 +1,41 @@
all: update-versions go-build-release put-back
dev-all: dev-update-versions dev-build dev-clean
all: build
build:
CGO_ENABLED=0 go build -o bin/installer
release:
go-build-release:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/installer_linux_amd64
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o bin/installer_linux_arm64
clean:
rm bin/installer
rm bin/installer_linux_amd64
rm bin/installer_linux_arm64
rm -f bin/installer_linux_amd64
rm -f bin/installer_linux_arm64
update-versions:
@echo "Fetching latest versions..."
cp main.go main.go.bak && \
$(MAKE) dev-update-versions
put-back:
mv main.go.bak main.go
dev-update-versions:
if [ -z "$(tag)" ]; then \
PANGOLIN_VERSION=$$(curl -s https://api.github.com/repos/fosrl/pangolin/tags | jq -r '.[0].name'); \
else \
PANGOLIN_VERSION=$(tag); \
fi && \
GERBIL_VERSION=$$(curl -s https://api.github.com/repos/fosrl/gerbil/tags | jq -r '.[0].name') && \
BADGER_VERSION=$$(curl -s https://api.github.com/repos/fosrl/badger/tags | jq -r '.[0].name') && \
echo "Latest versions - Pangolin: $$PANGOLIN_VERSION, Gerbil: $$GERBIL_VERSION, Badger: $$BADGER_VERSION" && \
sed -i "s/config.PangolinVersion = \".*\"/config.PangolinVersion = \"$$PANGOLIN_VERSION\"/" main.go && \
sed -i "s/config.GerbilVersion = \".*\"/config.GerbilVersion = \"$$GERBIL_VERSION\"/" main.go && \
sed -i "s/config.BadgerVersion = \".*\"/config.BadgerVersion = \"$$BADGER_VERSION\"/" main.go && \
echo "Updated main.go with latest versions"
dev-build: go-build-release
dev-clean:
@echo "Restoring version values ..."
sed -i "s/config.PangolinVersion = \".*\"/config.PangolinVersion = \"replaceme\"/" main.go && \
sed -i "s/config.GerbilVersion = \".*\"/config.GerbilVersion = \"replaceme\"/" main.go && \
sed -i "s/config.BadgerVersion = \".*\"/config.BadgerVersion = \"replaceme\"/" main.go
@echo "Restored version strings in main.go"

351
install/config.go Normal file
View File

@@ -0,0 +1,351 @@
package main
import (
"bytes"
"fmt"
"os"
"os/exec"
"strings"
"gopkg.in/yaml.v3"
)
// TraefikConfig represents the structure of the main Traefik configuration
type TraefikConfig struct {
Experimental struct {
Plugins struct {
Badger struct {
Version string `yaml:"version"`
} `yaml:"badger"`
} `yaml:"plugins"`
} `yaml:"experimental"`
CertificatesResolvers struct {
LetsEncrypt struct {
Acme struct {
Email string `yaml:"email"`
} `yaml:"acme"`
} `yaml:"letsencrypt"`
} `yaml:"certificatesResolvers"`
}
// DynamicConfig represents the structure of the dynamic configuration
type DynamicConfig struct {
HTTP struct {
Routers map[string]struct {
Rule string `yaml:"rule"`
} `yaml:"routers"`
} `yaml:"http"`
}
// TraefikConfigValues holds the extracted configuration values
type TraefikConfigValues struct {
DashboardDomain string
LetsEncryptEmail string
BadgerVersion string
}
// AppConfig represents the app section of the config.yml
type AppConfig struct {
App struct {
DashboardURL string `yaml:"dashboard_url"`
LogLevel string `yaml:"log_level"`
} `yaml:"app"`
}
type AppConfigValues struct {
DashboardURL string
LogLevel string
}
// ReadTraefikConfig reads and extracts values from Traefik configuration files
func ReadTraefikConfig(mainConfigPath string) (*TraefikConfigValues, error) {
// Read main config file
mainConfigData, err := os.ReadFile(mainConfigPath)
if err != nil {
return nil, fmt.Errorf("error reading main config file: %w", err)
}
var mainConfig TraefikConfig
if err := yaml.Unmarshal(mainConfigData, &mainConfig); err != nil {
return nil, fmt.Errorf("error parsing main config file: %w", err)
}
// Extract values
values := &TraefikConfigValues{
BadgerVersion: mainConfig.Experimental.Plugins.Badger.Version,
LetsEncryptEmail: mainConfig.CertificatesResolvers.LetsEncrypt.Acme.Email,
}
return values, nil
}
func ReadAppConfig(configPath string) (*AppConfigValues, error) {
// Read config file
configData, err := os.ReadFile(configPath)
if err != nil {
return nil, fmt.Errorf("error reading config file: %w", err)
}
var appConfig AppConfig
if err := yaml.Unmarshal(configData, &appConfig); err != nil {
return nil, fmt.Errorf("error parsing config file: %w", err)
}
values := &AppConfigValues{
DashboardURL: appConfig.App.DashboardURL,
LogLevel: appConfig.App.LogLevel,
}
return values, nil
}
// findPattern finds the start of a pattern in a string
func findPattern(s, pattern string) int {
return bytes.Index([]byte(s), []byte(pattern))
}
func copyDockerService(sourceFile, destFile, serviceName string) error {
// Read source file
sourceData, err := os.ReadFile(sourceFile)
if err != nil {
return fmt.Errorf("error reading source file: %w", err)
}
// Read destination file
destData, err := os.ReadFile(destFile)
if err != nil {
return fmt.Errorf("error reading destination file: %w", err)
}
// Parse source Docker Compose YAML
var sourceCompose map[string]interface{}
if err := yaml.Unmarshal(sourceData, &sourceCompose); err != nil {
return fmt.Errorf("error parsing source Docker Compose file: %w", err)
}
// Parse destination Docker Compose YAML
var destCompose map[string]interface{}
if err := yaml.Unmarshal(destData, &destCompose); err != nil {
return fmt.Errorf("error parsing destination Docker Compose file: %w", err)
}
// Get services section from source
sourceServices, ok := sourceCompose["services"].(map[string]interface{})
if !ok {
return fmt.Errorf("services section not found in source file or has invalid format")
}
// Get the specific service configuration
serviceConfig, ok := sourceServices[serviceName]
if !ok {
return fmt.Errorf("service '%s' not found in source file", serviceName)
}
// Get or create services section in destination
destServices, ok := destCompose["services"].(map[string]interface{})
if !ok {
// If services section doesn't exist, create it
destServices = make(map[string]interface{})
destCompose["services"] = destServices
}
// Update service in destination
destServices[serviceName] = serviceConfig
// Marshal updated destination YAML
// Use yaml.v3 encoder to preserve formatting and comments
// updatedData, err := yaml.Marshal(destCompose)
updatedData, err := MarshalYAMLWithIndent(destCompose, 2)
if err != nil {
return fmt.Errorf("error marshaling updated Docker Compose file: %w", err)
}
// Write updated YAML back to destination file
if err := os.WriteFile(destFile, updatedData, 0644); err != nil {
return fmt.Errorf("error writing to destination file: %w", err)
}
return nil
}
func backupConfig() error {
// Backup docker-compose.yml
if _, err := os.Stat("docker-compose.yml"); err == nil {
if err := copyFile("docker-compose.yml", "docker-compose.yml.backup"); err != nil {
return fmt.Errorf("failed to backup docker-compose.yml: %v", err)
}
}
// Backup config directory
if _, err := os.Stat("config"); err == nil {
cmd := exec.Command("tar", "-czvf", "config.tar.gz", "config")
if err := cmd.Run(); err != nil {
return fmt.Errorf("failed to backup config directory: %v", err)
}
}
return nil
}
func MarshalYAMLWithIndent(data interface{}, indent int) ([]byte, error) {
buffer := new(bytes.Buffer)
encoder := yaml.NewEncoder(buffer)
encoder.SetIndent(indent)
err := encoder.Encode(data)
if err != nil {
return nil, err
}
defer encoder.Close()
return buffer.Bytes(), nil
}
func replaceInFile(filepath, oldStr, newStr string) error {
// Read the file content
content, err := os.ReadFile(filepath)
if err != nil {
return fmt.Errorf("error reading file: %v", err)
}
// Replace the string
newContent := strings.Replace(string(content), oldStr, newStr, -1)
// Write the modified content back to the file
err = os.WriteFile(filepath, []byte(newContent), 0644)
if err != nil {
return fmt.Errorf("error writing file: %v", err)
}
return nil
}
func CheckAndAddTraefikLogVolume(composePath string) error {
// Read the docker-compose.yml file
data, err := os.ReadFile(composePath)
if err != nil {
return fmt.Errorf("error reading compose file: %w", err)
}
// Parse YAML into a generic map
var compose map[string]interface{}
if err := yaml.Unmarshal(data, &compose); err != nil {
return fmt.Errorf("error parsing compose file: %w", err)
}
// Get services section
services, ok := compose["services"].(map[string]interface{})
if !ok {
return fmt.Errorf("services section not found or invalid")
}
// Get traefik service
traefik, ok := services["traefik"].(map[string]interface{})
if !ok {
return fmt.Errorf("traefik service not found or invalid")
}
// Check volumes
logVolume := "./config/traefik/logs:/var/log/traefik"
var volumes []interface{}
if existingVolumes, ok := traefik["volumes"].([]interface{}); ok {
// Check if volume already exists
for _, v := range existingVolumes {
if v.(string) == logVolume {
fmt.Println("Traefik log volume is already configured")
return nil
}
}
volumes = existingVolumes
}
// Add new volume
volumes = append(volumes, logVolume)
traefik["volumes"] = volumes
// Write updated config back to file
newData, err := MarshalYAMLWithIndent(compose, 2)
if err != nil {
return fmt.Errorf("error marshaling updated compose file: %w", err)
}
if err := os.WriteFile(composePath, newData, 0644); err != nil {
return fmt.Errorf("error writing updated compose file: %w", err)
}
fmt.Println("Added traefik log volume and created logs directory")
return nil
}
// MergeYAML merges two YAML files, where the contents of the second file
// are merged into the first file. In case of conflicts, values from the
// second file take precedence.
func MergeYAML(baseFile, overlayFile string) error {
// Read the base YAML file
baseContent, err := os.ReadFile(baseFile)
if err != nil {
return fmt.Errorf("error reading base file: %v", err)
}
// Read the overlay YAML file
overlayContent, err := os.ReadFile(overlayFile)
if err != nil {
return fmt.Errorf("error reading overlay file: %v", err)
}
// Parse base YAML into a map
var baseMap map[string]interface{}
if err := yaml.Unmarshal(baseContent, &baseMap); err != nil {
return fmt.Errorf("error parsing base YAML: %v", err)
}
// Parse overlay YAML into a map
var overlayMap map[string]interface{}
if err := yaml.Unmarshal(overlayContent, &overlayMap); err != nil {
return fmt.Errorf("error parsing overlay YAML: %v", err)
}
// Merge the overlay into the base
merged := mergeMap(baseMap, overlayMap)
// Marshal the merged result back to YAML
mergedContent, err := MarshalYAMLWithIndent(merged, 2)
if err != nil {
return fmt.Errorf("error marshaling merged YAML: %v", err)
}
// Write the merged content back to the base file
if err := os.WriteFile(baseFile, mergedContent, 0644); err != nil {
return fmt.Errorf("error writing merged YAML: %v", err)
}
return nil
}
// mergeMap recursively merges two maps
func mergeMap(base, overlay map[string]interface{}) map[string]interface{} {
result := make(map[string]interface{})
// Copy all key-values from base map
for k, v := range base {
result[k] = v
}
// Merge overlay values
for k, v := range overlay {
// If both maps have the same key and both values are maps, merge recursively
if baseVal, ok := base[k]; ok {
if baseMap, isBaseMap := baseVal.(map[string]interface{}); isBaseMap {
if overlayMap, isOverlayMap := v.(map[string]interface{}); isOverlayMap {
result[k] = mergeMap(baseMap, overlayMap)
continue
}
}
}
// Otherwise, overlay value takes precedence
result[k] = v
}
return result
}

38
install/config/config.yml Normal file
View File

@@ -0,0 +1,38 @@
# To see all available options, please visit the docs:
# https://docs.pangolin.net/
gerbil:
start_port: 51820
base_endpoint: "{{.DashboardDomain}}"
app:
dashboard_url: "https://{{.DashboardDomain}}"
log_level: "info"
telemetry:
anonymous_usage: true
domains:
domain1:
base_domain: "{{.BaseDomain}}"
server:
secret: "{{.Secret}}"
cors:
origins: ["https://{{.DashboardDomain}}"]
methods: ["GET", "POST", "PUT", "DELETE", "PATCH"]
allowed_headers: ["X-CSRF-Token", "Content-Type"]
credentials: false
{{if .EnableGeoblocking}}maxmind_db_path: "./config/GeoLite2-Country.mmdb"{{end}}
{{if .EnableEmail}}
email:
smtp_host: "{{.EmailSMTPHost}}"
smtp_port: {{.EmailSMTPPort}}
smtp_user: "{{.EmailSMTPUser}}"
smtp_pass: "{{.EmailSMTPPass}}"
no_reply: "{{.EmailNoReply}}"
{{end}}
flags:
require_email_verification: {{.EnableEmail}}
disable_signup_without_invite: true
disable_user_create_org: false
allow_raw_resources: true

View File

@@ -0,0 +1,6 @@
listen_addr: 0.0.0.0:7422
appsec_config: crowdsecurity/appsec-default
name: myAppSecComponent
source: appsec
labels:
type: appsec

View File

@@ -0,0 +1,5 @@
poll_without_inotify: false
filenames:
- /var/log/traefik/*.log
labels:
type: traefik

View File

@@ -0,0 +1,32 @@
services:
crowdsec:
image: docker.io/crowdsecurity/crowdsec:latest
container_name: crowdsec
environment:
GID: "1000"
COLLECTIONS: crowdsecurity/traefik crowdsecurity/appsec-virtual-patching crowdsecurity/appsec-generic-rules
ENROLL_INSTANCE_NAME: "pangolin-crowdsec"
PARSERS: crowdsecurity/whitelists
ENROLL_TAGS: docker
healthcheck:
test:
- CMD
- cscli
- lapi
- status
interval: 10s
timeout: 5s
retries: 3
start_period: 30s
labels:
- "traefik.enable=false" # Disable traefik for crowdsec
volumes:
# crowdsec container data
- ./config/crowdsec:/etc/crowdsec # crowdsec config
- ./config/crowdsec/db:/var/lib/crowdsec/data # crowdsec db
# log bind mounts into crowdsec
- ./config/traefik/logs:/var/log/traefik # traefik logs
ports:
- 6060:6060 # metrics endpoint for prometheus
restart: unless-stopped
command: -t # Add test config flag to verify configuration

View File

@@ -0,0 +1,126 @@
http:
middlewares:
badger:
plugin:
badger:
disableForwardAuth: true
redirect-to-https:
redirectScheme:
scheme: https
default-whitelist: # Whitelist middleware for internal IPs
ipWhiteList: # Internal IP addresses
sourceRange: # Internal IP addresses
- "10.0.0.0/8" # Internal IP addresses
- "192.168.0.0/16" # Internal IP addresses
- "172.16.0.0/12" # Internal IP addresses
# Basic security headers
security-headers:
headers:
customResponseHeaders: # Custom response headers
Server: "" # Remove server header
X-Powered-By: "" # Remove powered by header
X-Forwarded-Proto: "https" # Set forwarded proto to https
sslProxyHeaders: # SSL proxy headers
X-Forwarded-Proto: "https" # Set forwarded proto to https
hostsProxyHeaders: # Hosts proxy headers
- "X-Forwarded-Host" # Set forwarded host
contentTypeNosniff: true # Prevent MIME sniffing
customFrameOptionsValue: "SAMEORIGIN" # Set frame options
referrerPolicy: "strict-origin-when-cross-origin" # Set referrer policy
forceSTSHeader: true # Force STS header
stsIncludeSubdomains: true # Include subdomains
stsSeconds: 63072000 # STS seconds
stsPreload: true # Preload STS
# CrowdSec configuration with proper IP forwarding
crowdsec:
plugin:
crowdsec:
enabled: true # Enable CrowdSec plugin
logLevel: INFO # Log level
updateIntervalSeconds: 15 # Update interval
updateMaxFailure: 0 # Update max failure
defaultDecisionSeconds: 15 # Default decision seconds
httpTimeoutSeconds: 10 # HTTP timeout
crowdsecMode: live # CrowdSec mode
crowdsecAppsecEnabled: true # Enable AppSec
crowdsecAppsecHost: crowdsec:7422 # CrowdSec IP address which you noted down later
crowdsecAppsecFailureBlock: true # Block on failure
crowdsecAppsecUnreachableBlock: true # Block on unreachable
crowdsecAppsecBodyLimit: 10485760
crowdsecLapiKey: "PUT_YOUR_BOUNCER_KEY_HERE_OR_IT_WILL_NOT_WORK" # CrowdSec API key which you noted down later
crowdsecLapiHost: crowdsec:8080 # CrowdSec
crowdsecLapiScheme: http # CrowdSec API scheme
forwardedHeadersTrustedIPs: # Forwarded headers trusted IPs
- "0.0.0.0/0" # All IP addresses are trusted for forwarded headers (CHANGE MADE HERE)
clientTrustedIPs: # Client trusted IPs (CHANGE MADE HERE)
- "10.0.0.0/8" # Internal LAN IP addresses
- "172.16.0.0/12" # Internal LAN IP addresses
- "192.168.0.0/16" # Internal LAN IP addresses
- "100.89.137.0/20" # Internal LAN IP addresses
routers:
# HTTP to HTTPS redirect router
main-app-router-redirect:
rule: "Host(`{{.DashboardDomain}}`)" # Dynamic Domain Name
service: next-service
entryPoints:
- web
middlewares:
- redirect-to-https
- badger
# Next.js router (handles everything except API and WebSocket paths)
next-router:
rule: "Host(`{{.DashboardDomain}}`) && !PathPrefix(`/api/v1`)" # Dynamic Domain Name
service: next-service
entryPoints:
- websecure
middlewares:
- security-headers # Add security headers middleware
- badger
tls:
certResolver: letsencrypt
# API router (handles /api/v1 paths)
api-router:
rule: "Host(`{{.DashboardDomain}}`) && PathPrefix(`/api/v1`)" # Dynamic Domain Name
service: api-service
entryPoints:
- websecure
middlewares:
- security-headers # Add security headers middleware
- badger
tls:
certResolver: letsencrypt
# WebSocket router
ws-router:
rule: "Host(`{{.DashboardDomain}}`)" # Dynamic Domain Name
service: api-service
entryPoints:
- websecure
middlewares:
- security-headers # Add security headers middleware
- badger
tls:
certResolver: letsencrypt
services:
next-service:
loadBalancer:
servers:
- url: "http://pangolin:3002" # Next.js server
api-service:
loadBalancer:
servers:
- url: "http://pangolin:3000" # API/WebSocket server
tcp:
serversTransports:
pp-transport-v1:
proxyProtocol:
version: 1
pp-transport-v2:
proxyProtocol:
version: 2

View File

@@ -0,0 +1,25 @@
name: captcha_remediation
filters:
- Alert.Remediation == true && Alert.GetScope() == "Ip" && Alert.GetScenario() contains "http"
decisions:
- type: captcha
duration: 4h
on_success: break
---
name: default_ip_remediation
filters:
- Alert.Remediation == true && Alert.GetScope() == "Ip"
decisions:
- type: ban
duration: 4h
on_success: break
---
name: default_range_remediation
filters:
- Alert.Remediation == true && Alert.GetScope() == "Range"
decisions:
- type: ban
duration: 4h
on_success: break

View File

@@ -0,0 +1,91 @@
api:
insecure: true
dashboard: true
providers:
http:
endpoint: "http://pangolin:3001/api/v1/traefik-config"
pollInterval: "5s"
file:
filename: "/etc/traefik/dynamic_config.yml"
experimental:
plugins:
badger:
moduleName: "github.com/fosrl/badger"
version: "{{.BadgerVersion}}"
crowdsec: # CrowdSec plugin configuration added
moduleName: "github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin"
version: "v1.4.4"
log:
level: "INFO"
format: "json" # Log format changed to json for better parsing
maxSize: 100
maxBackups: 3
maxAge: 3
compress: true
accessLog: # We enable access logs as json
filePath: "/var/log/traefik/access.log"
format: json
filters:
statusCodes:
- "200-299" # Success codes
- "400-499" # Client errors
- "500-599" # Server errors
retryAttempts: true
minDuration: "100ms" # Increased to focus on slower requests
bufferingSize: 100 # Add buffering for better performance
fields:
defaultMode: drop # Start with dropping all fields
names:
ClientAddr: keep # Keep client address for IP tracking
ClientHost: keep # Keep client host for IP tracking
RequestMethod: keep # Keep request method for tracking
RequestPath: keep # Keep request path for tracking
RequestProtocol: keep # Keep request protocol for tracking
DownstreamStatus: keep # Keep downstream status for tracking
DownstreamContentSize: keep # Keep downstream content size for tracking
Duration: keep # Keep request duration for tracking
ServiceName: keep # Keep service name for tracking
StartUTC: keep # Keep start time for tracking
TLSVersion: keep # Keep TLS version for tracking
TLSCipher: keep # Keep TLS cipher for tracking
RetryAttempts: keep # Keep retry attempts for tracking
headers:
defaultMode: drop # Start with dropping all headers
names:
User-Agent: keep # Keep user agent for tracking
X-Real-Ip: keep # Keep real IP for tracking
X-Forwarded-For: keep # Keep forwarded IP for tracking
X-Forwarded-Proto: keep # Keep forwarded protocol for tracking
Content-Type: keep # Keep content type for tracking
Authorization: redact # Redact sensitive information
Cookie: redact # Redact sensitive information
certificatesResolvers:
letsencrypt:
acme:
httpChallenge:
entryPoint: web
email: "{{.LetsEncryptEmail}}"
storage: "/letsencrypt/acme.json"
caServer: "https://acme-v02.api.letsencrypt.org/directory"
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
transport:
respondingTimeouts:
readTimeout: "30m"
http:
tls:
certResolver: "letsencrypt"
middlewares:
- crowdsec@file
serversTransport:
insecureSkipVerify: true

View File

@@ -1,29 +1,28 @@
name: pangolin
services:
pangolin:
image: fosrl/pangolin:{{.PangolinVersion}}
image: docker.io/fosrl/pangolin:{{if .IsEnterprise}}ee-{{end}}{{.PangolinVersion}}
container_name: pangolin
restart: unless-stopped
volumes:
- ./config:/app/config
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001/api/v1/"]
interval: "3s"
timeout: "3s"
retries: 5
interval: "10s"
timeout: "10s"
retries: 15
{{if .InstallGerbil}}
gerbil:
image: fosrl/gerbil:{{.GerbilVersion}}
image: docker.io/fosrl/gerbil:{{.GerbilVersion}}
container_name: gerbil
restart: unless-stopped
depends_on:
pangolin:
condition: service_healthy
command:
- --reachableAt=http://gerbil:3003
- --reachableAt=http://gerbil:3004
- --generateAndSaveKeyTo=/var/config/key
- --remoteConfig=http://pangolin:3001/api/v1/gerbil/get-config
- --reportBandwidthTo=http://pangolin:3001/api/v1/gerbil/receive-bandwidth
- --remoteConfig=http://pangolin:3001/api/v1/
volumes:
- ./config/:/var/config
cap_add:
@@ -31,18 +30,17 @@ services:
- SYS_MODULE
ports:
- 51820:51820/udp
- 443:443 # Port for traefik because of the network_mode
- 80:80 # Port for traefik because of the network_mode
- 21820:21820/udp
- 443:443
- 80:80
{{end}}
traefik:
image: traefik:v3.1
image: docker.io/traefik:v3.6
container_name: traefik
restart: unless-stopped
{{if .InstallGerbil}}
network_mode: service:gerbil # Ports appear on the gerbil service
{{end}}
{{if not .InstallGerbil}}
{{end}}{{if not .InstallGerbil}}
ports:
- 443:443
- 80:80
@@ -55,3 +53,10 @@ services:
volumes:
- ./config/traefik:/etc/traefik:ro # Volume to store the Traefik configuration
- ./config/letsencrypt:/letsencrypt # Volume to store the Let's Encrypt certificates
- ./config/traefik/logs:/var/log/traefik # Volume to store Traefik logs
networks:
default:
driver: bridge
name: pangolin
{{if .EnableIPv6}} enable_ipv6: true{{end}}

View File

@@ -1,9 +1,12 @@
http:
middlewares:
badger:
plugin:
badger:
disableForwardAuth: true
redirect-to-https:
redirectScheme:
scheme: https
permanent: true
routers:
# HTTP to HTTPS redirect router
@@ -14,6 +17,7 @@ http:
- web
middlewares:
- redirect-to-https
- badger
# Next.js router (handles everything except API and WebSocket paths)
next-router:
@@ -21,6 +25,8 @@ http:
service: next-service
entryPoints:
- websecure
middlewares:
- badger
tls:
certResolver: letsencrypt
@@ -30,6 +36,8 @@ http:
service: api-service
entryPoints:
- websecure
middlewares:
- badger
tls:
certResolver: letsencrypt
@@ -39,6 +47,8 @@ http:
service: api-service
entryPoints:
- websecure
middlewares:
- badger
tls:
certResolver: letsencrypt
@@ -52,3 +62,12 @@ http:
loadBalancer:
servers:
- url: "http://pangolin:3000" # API/WebSocket server
tcp:
serversTransports:
pp-transport-v1:
proxyProtocol:
version: 1
pp-transport-v2:
proxyProtocol:
version: 2

View File

@@ -0,0 +1,54 @@
api:
insecure: true
dashboard: true
providers:
http:
endpoint: "http://pangolin:3001/api/v1/traefik-config"
pollInterval: "5s"
file:
filename: "/etc/traefik/dynamic_config.yml"
experimental:
plugins:
badger:
moduleName: "github.com/fosrl/badger"
version: "{{.BadgerVersion}}"
log:
level: "INFO"
format: "common"
maxSize: 100
maxBackups: 3
maxAge: 3
compress: true
certificatesResolvers:
letsencrypt:
acme:
httpChallenge:
entryPoint: web
email: "{{.LetsEncryptEmail}}"
storage: "/letsencrypt/acme.json"
caServer: "https://acme-v02.api.letsencrypt.org/directory"
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
transport:
respondingTimeouts:
readTimeout: "30m"
http:
tls:
certResolver: "letsencrypt"
encodedCharacters:
allowEncodedSlash: true
allowEncodedQuestionMark: true
serversTransport:
insecureSkipVerify: true
ping:
entryPoint: "web"

373
install/containers.go Normal file
View File

@@ -0,0 +1,373 @@
package main
import (
"bytes"
"fmt"
"os"
"os/exec"
"os/user"
"runtime"
"strconv"
"strings"
"time"
)
func waitForContainer(containerName string, containerType SupportedContainer) error {
maxAttempts := 30
retryInterval := time.Second * 2
for attempt := 0; attempt < maxAttempts; attempt++ {
// Check if container is running
cmd := exec.Command(string(containerType), "container", "inspect", "-f", "{{.State.Running}}", containerName)
var out bytes.Buffer
cmd.Stdout = &out
if err := cmd.Run(); err != nil {
// If the container doesn't exist or there's another error, wait and retry
time.Sleep(retryInterval)
continue
}
isRunning := strings.TrimSpace(out.String()) == "true"
if isRunning {
return nil
}
// Container exists but isn't running yet, wait and retry
time.Sleep(retryInterval)
}
return fmt.Errorf("container %s did not start within %v seconds", containerName, maxAttempts*int(retryInterval.Seconds()))
}
func installDocker() error {
// Detect Linux distribution
cmd := exec.Command("cat", "/etc/os-release")
output, err := cmd.Output()
if err != nil {
return fmt.Errorf("failed to detect Linux distribution: %v", err)
}
osRelease := string(output)
// Detect system architecture
archCmd := exec.Command("uname", "-m")
archOutput, err := archCmd.Output()
if err != nil {
return fmt.Errorf("failed to detect system architecture: %v", err)
}
arch := strings.TrimSpace(string(archOutput))
// Map architecture to Docker's architecture naming
var dockerArch string
switch arch {
case "x86_64":
dockerArch = "amd64"
case "aarch64":
dockerArch = "arm64"
default:
return fmt.Errorf("unsupported architecture: %s", arch)
}
var installCmd *exec.Cmd
switch {
case strings.Contains(osRelease, "ID=ubuntu"):
installCmd = exec.Command("bash", "-c", fmt.Sprintf(`
apt-get update &&
apt-get install -y apt-transport-https ca-certificates curl gpg &&
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg &&
echo "deb [arch=%s signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list &&
apt-get update &&
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
`, dockerArch))
case strings.Contains(osRelease, "ID=debian"):
installCmd = exec.Command("bash", "-c", fmt.Sprintf(`
apt-get update &&
apt-get install -y apt-transport-https ca-certificates curl gpg &&
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg &&
echo "deb [arch=%s signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list &&
apt-get update &&
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
`, dockerArch))
case strings.Contains(osRelease, "ID=fedora"):
// Detect Fedora version to handle DNF 5 changes
versionCmd := exec.Command("bash", "-c", "grep VERSION_ID /etc/os-release | cut -d'=' -f2 | tr -d '\"'")
versionOutput, err := versionCmd.Output()
var fedoraVersion int
if err == nil {
if v, parseErr := strconv.Atoi(strings.TrimSpace(string(versionOutput))); parseErr == nil {
fedoraVersion = v
}
}
// Use appropriate DNF syntax based on version
var repoCmd string
if fedoraVersion >= 41 {
// DNF 5 syntax for Fedora 41+
repoCmd = "dnf config-manager addrepo --from-repofile=https://download.docker.com/linux/fedora/docker-ce.repo"
} else {
// DNF 4 syntax for Fedora < 41
repoCmd = "dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo"
}
installCmd = exec.Command("bash", "-c", fmt.Sprintf(`
dnf -y install dnf-plugins-core &&
%s &&
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
`, repoCmd))
case strings.Contains(osRelease, "ID=opensuse") || strings.Contains(osRelease, "ID=\"opensuse-"):
installCmd = exec.Command("bash", "-c", `
zypper install -y docker docker-compose &&
systemctl enable docker
`)
case strings.Contains(osRelease, "ID=rhel") || strings.Contains(osRelease, "ID=\"rhel"):
installCmd = exec.Command("bash", "-c", `
dnf remove -y runc &&
dnf -y install yum-utils &&
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo &&
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin &&
systemctl enable docker
`)
case strings.Contains(osRelease, "ID=amzn"):
installCmd = exec.Command("bash", "-c", `
yum update -y &&
yum install -y docker &&
systemctl enable docker &&
usermod -a -G docker ec2-user
`)
default:
return fmt.Errorf("unsupported Linux distribution")
}
installCmd.Stdout = os.Stdout
installCmd.Stderr = os.Stderr
return installCmd.Run()
}
func startDockerService() error {
if runtime.GOOS == "linux" {
cmd := exec.Command("systemctl", "enable", "--now", "docker")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
} else if runtime.GOOS == "darwin" {
// On macOS, Docker is usually started via the Docker Desktop application
fmt.Println("Please start Docker Desktop manually on macOS.")
return nil
}
return fmt.Errorf("unsupported operating system for starting Docker service")
}
func isDockerInstalled() bool {
return isContainerInstalled("docker")
}
func isPodmanInstalled() bool {
return isContainerInstalled("podman") && isContainerInstalled("podman-compose")
}
func isContainerInstalled(container string) bool {
cmd := exec.Command(container, "--version")
if err := cmd.Run(); err != nil {
return false
}
return true
}
func isUserInDockerGroup() bool {
if runtime.GOOS == "darwin" {
// Docker group is not applicable on macOS
// So we assume that the user can run Docker commands
return true
}
if os.Geteuid() == 0 {
return true // Root user can run Docker commands anyway
}
// Check if the current user is in the docker group
if dockerGroup, err := user.LookupGroup("docker"); err == nil {
if currentUser, err := user.Current(); err == nil {
if currentUserGroupIds, err := currentUser.GroupIds(); err == nil {
for _, groupId := range currentUserGroupIds {
if groupId == dockerGroup.Gid {
return true
}
}
}
}
}
// Eventually, if any of the checks fail, we assume the user cannot run Docker commands
return false
}
// isDockerRunning checks if the Docker daemon is running by using the `docker info` command.
func isDockerRunning() bool {
cmd := exec.Command("docker", "info")
if err := cmd.Run(); err != nil {
return false
}
return true
}
func isPodmanRunning() bool {
cmd := exec.Command("podman", "info")
if err := cmd.Run(); err != nil {
return false
}
return true
}
// detectContainerType detects whether the system is currently using Docker or Podman
// by checking which container runtime is running and has containers
func detectContainerType() SupportedContainer {
// Check if we have running containers with podman
if isPodmanRunning() {
cmd := exec.Command("podman", "ps", "-q")
output, err := cmd.Output()
if err == nil && len(strings.TrimSpace(string(output))) > 0 {
return Podman
}
}
// Check if we have running containers with docker
if isDockerRunning() {
cmd := exec.Command("docker", "ps", "-q")
output, err := cmd.Output()
if err == nil && len(strings.TrimSpace(string(output))) > 0 {
return Docker
}
}
// If no containers are running, check which one is installed and running
if isPodmanRunning() && isPodmanInstalled() {
return Podman
}
if isDockerRunning() && isDockerInstalled() {
return Docker
}
return Undefined
}
// executeDockerComposeCommandWithArgs executes the appropriate docker command with arguments supplied
func executeDockerComposeCommandWithArgs(args ...string) error {
var cmd *exec.Cmd
var useNewStyle bool
if !isDockerInstalled() {
return fmt.Errorf("docker is not installed")
}
checkCmd := exec.Command("docker", "compose", "version")
if err := checkCmd.Run(); err == nil {
useNewStyle = true
} else {
checkCmd = exec.Command("docker-compose", "version")
if err := checkCmd.Run(); err == nil {
useNewStyle = false
} else {
return fmt.Errorf("neither 'docker compose' nor 'docker-compose' command is available")
}
}
if useNewStyle {
cmd = exec.Command("docker", append([]string{"compose"}, args...)...)
} else {
cmd = exec.Command("docker-compose", args...)
}
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
// pullContainers pulls the containers using the appropriate command.
func pullContainers(containerType SupportedContainer) error {
fmt.Println("Pulling the container images...")
if containerType == Podman {
if err := run("podman-compose", "-f", "docker-compose.yml", "pull"); err != nil {
return fmt.Errorf("failed to pull the containers: %v", err)
}
return nil
}
if containerType == Docker {
if err := executeDockerComposeCommandWithArgs("-f", "docker-compose.yml", "pull", "--policy", "always"); err != nil {
return fmt.Errorf("failed to pull the containers: %v", err)
}
return nil
}
return fmt.Errorf("Unsupported container type: %s", containerType)
}
// startContainers starts the containers using the appropriate command.
func startContainers(containerType SupportedContainer) error {
fmt.Println("Starting containers...")
if containerType == Podman {
if err := run("podman-compose", "-f", "docker-compose.yml", "up", "-d", "--force-recreate"); err != nil {
return fmt.Errorf("failed start containers: %v", err)
}
return nil
}
if containerType == Docker {
if err := executeDockerComposeCommandWithArgs("-f", "docker-compose.yml", "up", "-d", "--force-recreate"); err != nil {
return fmt.Errorf("failed to start containers: %v", err)
}
return nil
}
return fmt.Errorf("Unsupported container type: %s", containerType)
}
// stopContainers stops the containers using the appropriate command.
func stopContainers(containerType SupportedContainer) error {
fmt.Println("Stopping containers...")
if containerType == Podman {
if err := run("podman-compose", "-f", "docker-compose.yml", "down"); err != nil {
return fmt.Errorf("failed to stop containers: %v", err)
}
return nil
}
if containerType == Docker {
if err := executeDockerComposeCommandWithArgs("-f", "docker-compose.yml", "down"); err != nil {
return fmt.Errorf("failed to stop containers: %v", err)
}
return nil
}
return fmt.Errorf("Unsupported container type: %s", containerType)
}
// restartContainer restarts a specific container using the appropriate command.
func restartContainer(container string, containerType SupportedContainer) error {
fmt.Println("Restarting containers...")
if containerType == Podman {
if err := run("podman-compose", "-f", "docker-compose.yml", "restart"); err != nil {
return fmt.Errorf("failed to stop the container \"%s\": %v", container, err)
}
return nil
}
if containerType == Docker {
if err := executeDockerComposeCommandWithArgs("-f", "docker-compose.yml", "restart", container); err != nil {
return fmt.Errorf("failed to stop the container \"%s\": %v", container, err)
}
return nil
}
return fmt.Errorf("Unsupported container type: %s", containerType)
}

201
install/crowdsec.go Normal file
View File

@@ -0,0 +1,201 @@
package main
import (
"bytes"
"fmt"
"log"
"os"
"os/exec"
"strings"
"gopkg.in/yaml.v3"
)
func installCrowdsec(config Config) error {
if err := stopContainers(config.InstallationContainerType); err != nil {
return fmt.Errorf("failed to stop containers: %v", err)
}
// Run installation steps
if err := backupConfig(); err != nil {
return fmt.Errorf("backup failed: %v", err)
}
if err := createConfigFiles(config); err != nil {
fmt.Printf("Error creating config files: %v\n", err)
os.Exit(1)
}
os.MkdirAll("config/crowdsec/db", 0755)
os.MkdirAll("config/crowdsec/acquis.d", 0755)
os.MkdirAll("config/traefik/logs", 0755)
if err := copyDockerService("config/crowdsec/docker-compose.yml", "docker-compose.yml", "crowdsec"); err != nil {
fmt.Printf("Error copying docker service: %v\n", err)
os.Exit(1)
}
if err := MergeYAML("config/traefik/traefik_config.yml", "config/crowdsec/traefik_config.yml"); err != nil {
fmt.Printf("Error copying entry points: %v\n", err)
os.Exit(1)
}
// delete the 2nd file
if err := os.Remove("config/crowdsec/traefik_config.yml"); err != nil {
fmt.Printf("Error removing file: %v\n", err)
os.Exit(1)
}
if err := MergeYAML("config/traefik/dynamic_config.yml", "config/crowdsec/dynamic_config.yml"); err != nil {
fmt.Printf("Error copying entry points: %v\n", err)
os.Exit(1)
}
// delete the 2nd file
if err := os.Remove("config/crowdsec/dynamic_config.yml"); err != nil {
fmt.Printf("Error removing file: %v\n", err)
os.Exit(1)
}
if err := os.Remove("config/crowdsec/docker-compose.yml"); err != nil {
fmt.Printf("Error removing file: %v\n", err)
os.Exit(1)
}
if err := CheckAndAddTraefikLogVolume("docker-compose.yml"); err != nil {
fmt.Printf("Error checking and adding Traefik log volume: %v\n", err)
os.Exit(1)
}
// check and add the service dependency of crowdsec to traefik
if err := CheckAndAddCrowdsecDependency("docker-compose.yml"); err != nil {
fmt.Printf("Error adding crowdsec dependency to traefik: %v\n", err)
os.Exit(1)
}
if err := startContainers(config.InstallationContainerType); err != nil {
return fmt.Errorf("failed to start containers: %v", err)
}
// get API key
apiKey, err := GetCrowdSecAPIKey(config.InstallationContainerType)
if err != nil {
return fmt.Errorf("failed to get API key: %v", err)
}
config.TraefikBouncerKey = apiKey
if err := replaceInFile("config/traefik/dynamic_config.yml", "PUT_YOUR_BOUNCER_KEY_HERE_OR_IT_WILL_NOT_WORK", config.TraefikBouncerKey); err != nil {
return fmt.Errorf("failed to replace bouncer key: %v", err)
}
if err := restartContainer("traefik", config.InstallationContainerType); err != nil {
return fmt.Errorf("failed to restart containers: %v", err)
}
if checkIfTextInFile("config/traefik/dynamic_config.yml", "PUT_YOUR_BOUNCER_KEY_HERE_OR_IT_WILL_NOT_WORK") {
fmt.Println("Failed to replace bouncer key! Please retrieve the key and replace it in the config/traefik/dynamic_config.yml file using the following command:")
fmt.Printf(" %s exec crowdsec cscli bouncers add traefik-bouncer\n", config.InstallationContainerType)
}
return nil
}
func checkIsCrowdsecInstalledInCompose() bool {
// Read docker-compose.yml
content, err := os.ReadFile("docker-compose.yml")
if err != nil {
return false
}
// Check for crowdsec service
return bytes.Contains(content, []byte("crowdsec:"))
}
func GetCrowdSecAPIKey(containerType SupportedContainer) (string, error) {
// First, ensure the container is running
if err := waitForContainer("crowdsec", containerType); err != nil {
return "", fmt.Errorf("waiting for container: %w", err)
}
// Execute the command to get the API key
cmd := exec.Command(string(containerType), "exec", "crowdsec", "cscli", "bouncers", "add", "traefik-bouncer", "-o", "raw")
var out bytes.Buffer
cmd.Stdout = &out
if err := cmd.Run(); err != nil {
return "", fmt.Errorf("executing command: %w", err)
}
// Trim any whitespace from the output
apiKey := strings.TrimSpace(out.String())
if apiKey == "" {
return "", fmt.Errorf("empty API key returned")
}
return apiKey, nil
}
func checkIfTextInFile(file, text string) bool {
// Read file
content, err := os.ReadFile(file)
if err != nil {
return false
}
// Check for text
return bytes.Contains(content, []byte(text))
}
func CheckAndAddCrowdsecDependency(composePath string) error {
// Read the docker-compose.yml file
data, err := os.ReadFile(composePath)
if err != nil {
return fmt.Errorf("error reading compose file: %w", err)
}
// Parse YAML into a generic map
var compose map[string]interface{}
if err := yaml.Unmarshal(data, &compose); err != nil {
return fmt.Errorf("error parsing compose file: %w", err)
}
// Get services section
services, ok := compose["services"].(map[string]interface{})
if !ok {
return fmt.Errorf("services section not found or invalid")
}
// Get traefik service
traefik, ok := services["traefik"].(map[string]interface{})
if !ok {
return fmt.Errorf("traefik service not found or invalid")
}
// Get dependencies
dependsOn, ok := traefik["depends_on"].(map[string]interface{})
if ok {
// Append the new block for crowdsec
dependsOn["crowdsec"] = map[string]interface{}{
"condition": "service_healthy",
}
} else {
// No dependencies exist, create it
traefik["depends_on"] = map[string]interface{}{
"crowdsec": map[string]interface{}{
"condition": "service_healthy",
},
}
}
// Marshal the modified data back to YAML with indentation
modifiedData, err := MarshalYAMLWithIndent(compose, 2) // Set indentation to 2 spaces
if err != nil {
log.Fatalf("error marshaling YAML: %v", err)
}
if err := os.WriteFile(composePath, modifiedData, 0644); err != nil {
return fmt.Errorf("error writing updated compose file: %w", err)
}
fmt.Println("Added dependency of crowdsec to traefik")
return nil
}

View File

@@ -1,51 +0,0 @@
app:
dashboard_url: https://{{.DashboardDomain}}
base_domain: {{.BaseDomain}}
log_level: info
save_logs: false
server:
external_port: 3000
internal_port: 3001
next_port: 3002
internal_hostname: pangolin
secure_cookies: true
session_cookie_name: p_session
resource_session_cookie_name: p_resource_session
resource_access_token_param: p_token
traefik:
cert_resolver: letsencrypt
http_entrypoint: web
https_entrypoint: websecure
prefer_wildcard_cert: false
gerbil:
start_port: 51820
base_endpoint: {{.DashboardDomain}}
use_subdomain: false
block_size: 24
site_block_size: 30
subnet_group: 100.89.137.0/20
rate_limits:
global:
window_minutes: 1
max_requests: 100
{{if .EnableEmail}}
email:
smtp_host: {{.EmailSMTPHost}}
smtp_port: {{.EmailSMTPPort}}
smtp_user: {{.EmailSMTPUser}}
smtp_pass: {{.EmailSMTPPass}}
no_reply: {{.EmailNoReply}}
{{end}}
users:
server_admin:
email: {{.AdminUserEmail}}
password: {{.AdminUserPassword}}
flags:
require_email_verification: {{.EnableEmail}}
disable_signup_without_invite: {{.DisableSignupWithoutInvite}}
disable_user_create_org: {{.DisableUserCreateOrg}}

180
install/get-installer.sh Normal file
View File

@@ -0,0 +1,180 @@
#!/bin/bash
# Get installer - Cross-platform installation script
# Usage: curl -fsSL https://raw.githubusercontent.com/fosrl/installer/refs/heads/main/get-installer.sh | bash
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# GitHub repository info
REPO="fosrl/pangolin"
GITHUB_API_URL="https://api.github.com/repos/${REPO}/releases/latest"
# Function to print colored output
print_status() {
echo -e "${GREEN}[INFO]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# Function to get latest version from GitHub API
get_latest_version() {
local latest_info
if command -v curl >/dev/null 2>&1; then
latest_info=$(curl -fsSL "$GITHUB_API_URL" 2>/dev/null)
elif command -v wget >/dev/null 2>&1; then
latest_info=$(wget -qO- "$GITHUB_API_URL" 2>/dev/null)
else
print_error "Neither curl nor wget is available. Please install one of them." >&2
exit 1
fi
if [ -z "$latest_info" ]; then
print_error "Failed to fetch latest version information" >&2
exit 1
fi
# Extract version from JSON response (works without jq)
local version=$(echo "$latest_info" | grep '"tag_name"' | head -1 | sed 's/.*"tag_name": *"\([^"]*\)".*/\1/')
if [ -z "$version" ]; then
print_error "Could not parse version from GitHub API response" >&2
exit 1
fi
# Remove 'v' prefix if present
version=$(echo "$version" | sed 's/^v//')
echo "$version"
}
# Detect OS and architecture
detect_platform() {
local os arch
# Detect OS - only support Linux
case "$(uname -s)" in
Linux*) os="linux" ;;
*)
print_error "Unsupported operating system: $(uname -s). Only Linux is supported."
exit 1
;;
esac
# Detect architecture - only support amd64 and arm64
case "$(uname -m)" in
x86_64|amd64) arch="amd64" ;;
arm64|aarch64) arch="arm64" ;;
*)
print_error "Unsupported architecture: $(uname -m). Only amd64 and arm64 are supported on Linux."
exit 1
;;
esac
echo "${os}_${arch}"
}
# Get installation directory
get_install_dir() {
# Install to the current directory
local install_dir="$(pwd)"
if [ ! -d "$install_dir" ]; then
print_error "Installation directory does not exist: $install_dir"
exit 1
fi
echo "$install_dir"
}
# Download and install installer
install_installer() {
local platform="$1"
local install_dir="$2"
local binary_name="installer_${platform}"
local download_url="${BASE_URL}/${binary_name}"
local temp_file="/tmp/installer"
local final_path="${install_dir}/installer"
print_status "Downloading installer from ${download_url}"
# Download the binary
if command -v curl >/dev/null 2>&1; then
curl -fsSL "$download_url" -o "$temp_file"
elif command -v wget >/dev/null 2>&1; then
wget -q "$download_url" -O "$temp_file"
else
print_error "Neither curl nor wget is available. Please install one of them."
exit 1
fi
# Create install directory if it doesn't exist
mkdir -p "$install_dir"
# Move binary to install directory
mv "$temp_file" "$final_path"
# Make executable
chmod +x "$final_path"
print_status "Installer downloaded to ${final_path}"
}
# Verify installation
verify_installation() {
local install_dir="$1"
local installer_path="${install_dir}/installer"
if [ -f "$installer_path" ] && [ -x "$installer_path" ]; then
print_status "Installation successful!"
return 0
else
print_error "Installation failed. Binary not found or not executable."
return 1
fi
}
# Main installation process
main() {
print_status "Installing latest version of installer..."
# Get latest version
print_status "Fetching latest version from GitHub..."
VERSION=$(get_latest_version)
print_status "Latest version: v${VERSION}"
# Set base URL with the fetched version
BASE_URL="https://github.com/${REPO}/releases/download/${VERSION}"
# Detect platform
PLATFORM=$(detect_platform)
print_status "Detected platform: ${PLATFORM}"
# Get install directory
INSTALL_DIR=$(get_install_dir)
print_status "Install directory: ${INSTALL_DIR}"
# Install installer
install_installer "$PLATFORM" "$INSTALL_DIR"
# Verify installation
if verify_installation "$INSTALL_DIR"; then
print_status "Installer is ready to use!"
else
exit 1
fi
}
# Run main function
main "$@"

View File

@@ -1,8 +1,10 @@
module installer
go 1.23.0
go 1.24.0
require (
golang.org/x/sys v0.29.0 // indirect
golang.org/x/term v0.28.0 // indirect
golang.org/x/term v0.39.0
gopkg.in/yaml.v3 v3.0.1
)
require golang.org/x/sys v0.40.0 // indirect

View File

@@ -1,4 +1,8 @@
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY=
golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

92
install/input.go Normal file
View File

@@ -0,0 +1,92 @@
package main
import (
"bufio"
"fmt"
"strings"
"syscall"
"golang.org/x/term"
)
func readString(reader *bufio.Reader, prompt string, defaultValue string) string {
if defaultValue != "" {
fmt.Printf("%s (default: %s): ", prompt, defaultValue)
} else {
fmt.Print(prompt + ": ")
}
input, _ := reader.ReadString('\n')
input = strings.TrimSpace(input)
if input == "" {
return defaultValue
}
return input
}
func readStringNoDefault(reader *bufio.Reader, prompt string) string {
fmt.Print(prompt + ": ")
input, _ := reader.ReadString('\n')
return strings.TrimSpace(input)
}
func readPassword(prompt string, reader *bufio.Reader) string {
if term.IsTerminal(int(syscall.Stdin)) {
fmt.Print(prompt + ": ")
// Read password without echo if we're in a terminal
password, err := term.ReadPassword(int(syscall.Stdin))
fmt.Println() // Add a newline since ReadPassword doesn't add one
if err != nil {
return ""
}
input := strings.TrimSpace(string(password))
if input == "" {
return readPassword(prompt, reader)
}
return input
} else {
// Fallback to reading from stdin if not in a terminal
return readString(reader, prompt, "")
}
}
func readBool(reader *bufio.Reader, prompt string, defaultValue bool) bool {
defaultStr := "no"
if defaultValue {
defaultStr = "yes"
}
for {
input := readString(reader, prompt+" (yes/no)", defaultStr)
lower := strings.ToLower(input)
if lower == "yes" {
return true
} else if lower == "no" {
return false
} else {
fmt.Println("Please enter 'yes' or 'no'.")
}
}
}
func readBoolNoDefault(reader *bufio.Reader, prompt string) bool {
for {
input := readStringNoDefault(reader, prompt+" (yes/no)")
lower := strings.ToLower(input)
if lower == "yes" {
return true
} else if lower == "no" {
return false
} else {
fmt.Println("Please enter 'yes' or 'no'.")
}
}
}
func readInt(reader *bufio.Reader, prompt string, defaultValue int) int {
input := readString(reader, prompt, fmt.Sprintf("%d", defaultValue))
if input == "" {
return defaultValue
}
value := defaultValue
fmt.Sscanf(input, "%d", &value)
return value
}

14
install/input.txt Normal file
View File

@@ -0,0 +1,14 @@
docker
example.com
pangolin.example.com
yes
admin@example.com
yes
admin@example.com
Password123!
Password123!
yes
no
no
no
yes

View File

@@ -4,133 +4,343 @@ import (
"bufio"
"embed"
"fmt"
"io"
"io/fs"
"math/rand"
"net"
"net/http"
"net/url"
"os"
"os/exec"
"path/filepath"
"runtime"
"strings"
"syscall"
"text/template"
"unicode"
"golang.org/x/term"
"time"
)
// DO NOT EDIT THIS FUNCTION; IT MATCHED BY REGEX IN CICD
func loadVersions(config *Config) {
config.PangolinVersion = "1.0.0-beta.5"
config.GerbilVersion = "1.0.0-beta.1"
config.PangolinVersion = "replaceme"
config.GerbilVersion = "replaceme"
config.BadgerVersion = "replaceme"
}
//go:embed fs/*
//go:embed config/*
var configFiles embed.FS
type Config struct {
PangolinVersion string
GerbilVersion string
BaseDomain string
DashboardDomain string
LetsEncryptEmail string
AdminUserEmail string
AdminUserPassword string
DisableSignupWithoutInvite bool
DisableUserCreateOrg bool
EnableEmail bool
EmailSMTPHost string
EmailSMTPPort int
EmailSMTPUser string
EmailSMTPPass string
EmailNoReply string
InstallGerbil bool
InstallationContainerType SupportedContainer
PangolinVersion string
GerbilVersion string
BadgerVersion string
BaseDomain string
DashboardDomain string
EnableIPv6 bool
LetsEncryptEmail string
EnableEmail bool
EmailSMTPHost string
EmailSMTPPort int
EmailSMTPUser string
EmailSMTPPass string
EmailNoReply string
InstallGerbil bool
TraefikBouncerKey string
DoCrowdsecInstall bool
EnableGeoblocking bool
Secret string
IsEnterprise bool
}
type SupportedContainer string
const (
Docker SupportedContainer = "docker"
Podman SupportedContainer = "podman"
Undefined SupportedContainer = "undefined"
)
func main() {
// print a banner about prerequisites - opening port 80, 443, 51820, and 21820 on the VPS and firewall and pointing your domain to the VPS IP with a records. Docs are at http://localhost:3000/Getting%20Started/dns-networking
fmt.Println("Welcome to the Pangolin installer!")
fmt.Println("This installer will help you set up Pangolin on your server.")
fmt.Println("\nPlease make sure you have the following prerequisites:")
fmt.Println("- Open TCP ports 80 and 443 and UDP ports 51820 and 21820 on your VPS and firewall.")
fmt.Println("\nLets get started!")
if os.Geteuid() == 0 { // WE NEED TO BE SUDO TO CHECK THIS
for _, p := range []int{80, 443} {
if err := checkPortsAvailable(p); err != nil {
fmt.Fprintln(os.Stderr, err)
fmt.Printf("Please close any services on ports 80/443 in order to run the installation smoothly. If you already have the Pangolin stack running, shut them down before proceeding.\n")
os.Exit(1)
}
}
}
reader := bufio.NewReader(os.Stdin)
// check if the user is root
if os.Geteuid() != 0 {
fmt.Println("This script must be run as root")
os.Exit(1)
}
var config Config
var alreadyInstalled = false
// check if there is already a config file
if _, err := os.Stat("config/config.yml"); err != nil {
config := collectUserInput(reader)
config = collectUserInput(reader)
loadVersions(&config)
config.DoCrowdsecInstall = false
config.Secret = generateRandomSecretKey()
fmt.Println("\n=== Generating Configuration Files ===")
if err := createConfigFiles(config); err != nil {
fmt.Printf("Error creating config files: %v\n", err)
os.Exit(1)
}
if !isDockerInstalled() && runtime.GOOS == "linux" {
if readBool(reader, "Docker is not installed. Would you like to install it?", true) {
installDocker()
moveFile("config/docker-compose.yml", "docker-compose.yml")
fmt.Println("\nConfiguration files created successfully!")
// Download MaxMind database if requested
if config.EnableGeoblocking {
fmt.Println("\n=== Downloading MaxMind Database ===")
if err := downloadMaxMindDatabase(); err != nil {
fmt.Printf("Error downloading MaxMind database: %v\n", err)
fmt.Println("You can download it manually later if needed.")
}
}
} else {
fmt.Println("Config file already exists... skipping configuration")
}
if isDockerInstalled() {
fmt.Println("\n=== Starting installation ===")
if readBool(reader, "Would you like to install and start the containers?", true) {
pullAndStartContainers()
config.InstallationContainerType = podmanOrDocker(reader)
if !isDockerInstalled() && runtime.GOOS == "linux" && config.InstallationContainerType == Docker {
if readBool(reader, "Docker is not installed. Would you like to install it?", true) {
installDocker()
// try to start docker service but ignore errors
if err := startDockerService(); err != nil {
fmt.Println("Error starting Docker service:", err)
} else {
fmt.Println("Docker service started successfully!")
}
// wait 10 seconds for docker to start checking if docker is running every 2 seconds
fmt.Println("Waiting for Docker to start...")
for i := 0; i < 5; i++ {
if isDockerRunning() {
fmt.Println("Docker is running!")
break
}
fmt.Println("Docker is not running yet, waiting...")
time.Sleep(2 * time.Second)
}
if !isDockerRunning() {
fmt.Println("Docker is still not running after 10 seconds. Please check the installation.")
os.Exit(1)
}
fmt.Println("Docker installed successfully!")
}
}
if err := pullContainers(config.InstallationContainerType); err != nil {
fmt.Println("Error: ", err)
return
}
if err := startContainers(config.InstallationContainerType); err != nil {
fmt.Println("Error: ", err)
return
}
}
} else {
alreadyInstalled = true
fmt.Println("Looks like you already installed Pangolin!")
// Check if MaxMind database exists and offer to update it
fmt.Println("\n=== MaxMind Database Update ===")
if _, err := os.Stat("config/GeoLite2-Country.mmdb"); err == nil {
fmt.Println("MaxMind GeoLite2 Country database found.")
if readBool(reader, "Would you like to update the MaxMind database to the latest version?", false) {
if err := downloadMaxMindDatabase(); err != nil {
fmt.Printf("Error updating MaxMind database: %v\n", err)
fmt.Println("You can try updating it manually later if needed.")
}
}
} else {
fmt.Println("MaxMind GeoLite2 Country database not found.")
if readBool(reader, "Would you like to download the MaxMind GeoLite2 database for geoblocking functionality?", false) {
if err := downloadMaxMindDatabase(); err != nil {
fmt.Printf("Error downloading MaxMind database: %v\n", err)
fmt.Println("You can try downloading it manually later if needed.")
}
// Now you need to update your config file accordingly to enable geoblocking
fmt.Print("Please remember to update your config/config.yml file to enable geoblocking! \n\n")
// add maxmind_db_path: "./config/GeoLite2-Country.mmdb" under server
fmt.Println("Add the following line under the 'server' section:")
fmt.Println(" maxmind_db_path: \"./config/GeoLite2-Country.mmdb\"")
}
}
}
fmt.Println("Installation complete!")
if !checkIsCrowdsecInstalledInCompose() {
fmt.Println("\n=== CrowdSec Install ===")
// check if crowdsec is installed
if readBool(reader, "Would you like to install CrowdSec?", false) {
fmt.Println("This installer constitutes a minimal viable CrowdSec deployment. CrowdSec will add extra complexity to your Pangolin installation and may not work to the best of its abilities out of the box. Users are expected to implement configuration adjustments on their own to achieve the best security posture. Consult the CrowdSec documentation for detailed configuration instructions.")
// BUG: crowdsec installation will be skipped if the user chooses to install on the first installation.
if readBool(reader, "Are you willing to manage CrowdSec?", false) {
if config.DashboardDomain == "" {
traefikConfig, err := ReadTraefikConfig("config/traefik/traefik_config.yml")
if err != nil {
fmt.Printf("Error reading config: %v\n", err)
return
}
appConfig, err := ReadAppConfig("config/config.yml")
if err != nil {
fmt.Printf("Error reading config: %v\n", err)
return
}
parsedURL, err := url.Parse(appConfig.DashboardURL)
if err != nil {
fmt.Printf("Error parsing URL: %v\n", err)
return
}
config.DashboardDomain = parsedURL.Hostname()
config.LetsEncryptEmail = traefikConfig.LetsEncryptEmail
config.BadgerVersion = traefikConfig.BadgerVersion
// print the values and check if they are right
fmt.Println("Detected values:")
fmt.Printf("Dashboard Domain: %s\n", config.DashboardDomain)
fmt.Printf("Let's Encrypt Email: %s\n", config.LetsEncryptEmail)
fmt.Printf("Badger Version: %s\n", config.BadgerVersion)
if !readBool(reader, "Are these values correct?", true) {
config = collectUserInput(reader)
}
}
// Try to detect container type from existing installation
detectedType := detectContainerType()
if detectedType == Undefined {
// If detection fails, prompt the user
fmt.Println("Unable to detect container type from existing installation.")
config.InstallationContainerType = podmanOrDocker(reader)
} else {
config.InstallationContainerType = detectedType
fmt.Printf("Detected container type: %s\n", config.InstallationContainerType)
}
config.DoCrowdsecInstall = true
err := installCrowdsec(config)
if err != nil {
fmt.Printf("Error installing CrowdSec: %v\n", err)
return
}
fmt.Println("CrowdSec installed successfully!")
}
}
}
if !alreadyInstalled || config.DoCrowdsecInstall {
// Setup Token Section
fmt.Println("\n=== Setup Token ===")
// Check if containers were started during this installation
containersStarted := false
if (isDockerInstalled() && config.InstallationContainerType == Docker) ||
(isPodmanInstalled() && config.InstallationContainerType == Podman) {
// Try to fetch and display the token if containers are running
containersStarted = true
printSetupToken(config.InstallationContainerType, config.DashboardDomain)
}
// If containers weren't started or token wasn't found, show instructions
if !containersStarted {
showSetupTokenInstructions(config.InstallationContainerType, config.DashboardDomain)
}
}
fmt.Println("\nInstallation complete!")
fmt.Printf("\nTo complete the initial setup, please visit:\nhttps://%s/auth/initial-setup\n", config.DashboardDomain)
}
func readString(reader *bufio.Reader, prompt string, defaultValue string) string {
if defaultValue != "" {
fmt.Printf("%s (default: %s): ", prompt, defaultValue)
func podmanOrDocker(reader *bufio.Reader) SupportedContainer {
inputContainer := readString(reader, "Would you like to run Pangolin as Docker or Podman containers?", "docker")
chosenContainer := Docker
if strings.EqualFold(inputContainer, "docker") {
chosenContainer = Docker
} else if strings.EqualFold(inputContainer, "podman") {
chosenContainer = Podman
} else {
fmt.Print(prompt + ": ")
}
input, _ := reader.ReadString('\n')
input = strings.TrimSpace(input)
if input == "" {
return defaultValue
}
return input
}
func readPassword(prompt string) string {
fmt.Print(prompt + ": ")
// Read password without echo
password, err := term.ReadPassword(int(syscall.Stdin))
fmt.Println() // Add a newline since ReadPassword doesn't add one
if err != nil {
return ""
fmt.Printf("Unrecognized container type: %s. Valid options are 'docker' or 'podman'.\n", inputContainer)
os.Exit(1)
}
input := strings.TrimSpace(string(password))
if input == "" {
return readPassword(prompt)
}
return input
}
if chosenContainer == Podman {
if !isPodmanInstalled() {
fmt.Println("Podman or podman-compose is not installed. Please install both manually. Automated installation will be available in a later release.")
os.Exit(1)
}
func readBool(reader *bufio.Reader, prompt string, defaultValue bool) bool {
defaultStr := "no"
if defaultValue {
defaultStr = "yes"
}
input := readString(reader, prompt+" (yes/no)", defaultStr)
return strings.ToLower(input) == "yes"
}
if err := exec.Command("bash", "-c", "cat /etc/sysctl.d/99-podman.conf 2>/dev/null | grep 'net.ipv4.ip_unprivileged_port_start=' || cat /etc/sysctl.conf 2>/dev/null | grep 'net.ipv4.ip_unprivileged_port_start='").Run(); err != nil {
fmt.Println("Would you like to configure ports >= 80 as unprivileged ports? This enables podman containers to listen on low-range ports.")
fmt.Println("Pangolin will experience startup issues if this is not configured, because it needs to listen on port 80/443 by default.")
approved := readBool(reader, "The installer is about to execute \"echo 'net.ipv4.ip_unprivileged_port_start=80' > /etc/sysctl.d/99-podman.conf && sysctl --system\". Approve?", true)
if approved {
if os.Geteuid() != 0 {
fmt.Println("You need to run the installer as root for such a configuration.")
os.Exit(1)
}
func readInt(reader *bufio.Reader, prompt string, defaultValue int) int {
input := readString(reader, prompt, fmt.Sprintf("%d", defaultValue))
if input == "" {
return defaultValue
// Podman containers are not able to listen on privileged ports. The official recommendation is to
// container low-range ports as unprivileged ports.
// Linux only.
if err := run("bash", "-c", "echo 'net.ipv4.ip_unprivileged_port_start=80' > /etc/sysctl.d/99-podman.conf && sysctl --system"); err != nil {
fmt.Printf("Error configuring unprivileged ports: %v\n", err)
os.Exit(1)
}
} else {
fmt.Println("You need to configure port forwarding or adjust the listening ports before running pangolin.")
}
} else {
fmt.Println("Unprivileged ports have been configured.")
}
} else if chosenContainer == Docker {
// check if docker is not installed and the user is root
if !isDockerInstalled() {
if os.Geteuid() != 0 {
fmt.Println("Docker is not installed. Please install Docker manually or run this installer as root.")
os.Exit(1)
}
}
// check if the user is in the docker group (linux only)
if !isUserInDockerGroup() {
fmt.Println("You are not in the docker group.")
fmt.Println("The installer will not be able to run docker commands without running it as root.")
os.Exit(1)
}
} else {
// This shouldn't happen unless there's a third container runtime.
os.Exit(1)
}
value := defaultValue
fmt.Sscanf(input, "%d", &value)
return value
return chosenContainer
}
func collectUserInput(reader *bufio.Reader) Config {
@@ -138,50 +348,30 @@ func collectUserInput(reader *bufio.Reader) Config {
// Basic configuration
fmt.Println("\n=== Basic Configuration ===")
config.IsEnterprise = readBoolNoDefault(reader, "Do you want to install the Enterprise version of Pangolin? The EE is free for personal use or for businesses making less than 100k USD annually.")
config.BaseDomain = readString(reader, "Enter your base domain (no subdomain e.g. example.com)", "")
config.DashboardDomain = readString(reader, "Enter the domain for the Pangolin dashboard", "pangolin."+config.BaseDomain)
config.LetsEncryptEmail = readString(reader, "Enter email for Let's Encrypt certificates", "")
config.InstallGerbil = readBool(reader, "Do you want to use Gerbil to allow tunned connections", true)
// Admin user configuration
fmt.Println("\n=== Admin User Configuration ===")
config.AdminUserEmail = readString(reader, "Enter admin user email", "admin@"+config.BaseDomain)
for {
pass1 := readPassword("Create admin user password")
pass2 := readPassword("Confirm admin user password")
if pass1 != pass2 {
fmt.Println("Passwords do not match")
} else {
config.AdminUserPassword = pass1
if valid, message := validatePassword(config.AdminUserPassword); valid {
break
} else {
fmt.Println("Invalid password:", message)
fmt.Println("Password requirements:")
fmt.Println("- At least one uppercase English letter")
fmt.Println("- At least one lowercase English letter")
fmt.Println("- At least one digit")
fmt.Println("- At least one special character")
}
}
// Set default dashboard domain after base domain is collected
defaultDashboardDomain := ""
if config.BaseDomain != "" {
defaultDashboardDomain = "pangolin." + config.BaseDomain
}
// Security settings
fmt.Println("\n=== Security Settings ===")
config.DisableSignupWithoutInvite = readBool(reader, "Disable signup without invite", true)
config.DisableUserCreateOrg = readBool(reader, "Disable users from creating organizations", false)
config.DashboardDomain = readString(reader, "Enter the domain for the Pangolin dashboard", defaultDashboardDomain)
config.LetsEncryptEmail = readString(reader, "Enter email for Let's Encrypt certificates", "")
config.InstallGerbil = readBool(reader, "Do you want to use Gerbil to allow tunneled connections", true)
// Email configuration
fmt.Println("\n=== Email Configuration ===")
config.EnableEmail = readBool(reader, "Enable email functionality", false)
config.EnableEmail = readBool(reader, "Enable email functionality (SMTP)", false)
if config.EnableEmail {
config.EmailSMTPHost = readString(reader, "Enter SMTP host", "")
config.EmailSMTPPort = readInt(reader, "Enter SMTP port (default 587)", 587)
config.EmailSMTPUser = readString(reader, "Enter SMTP username", "")
config.EmailSMTPPass = readString(reader, "Enter SMTP password", "")
config.EmailNoReply = readString(reader, "Enter no-reply email address", "")
config.EmailSMTPPass = readString(reader, "Enter SMTP password", "") // Should this be readPassword?
config.EmailNoReply = readString(reader, "Enter no-reply email address (often the same as SMTP username)", "")
}
// Validate required fields
@@ -189,68 +379,30 @@ func collectUserInput(reader *bufio.Reader) Config {
fmt.Println("Error: Domain name is required")
os.Exit(1)
}
if config.DashboardDomain == "" {
fmt.Println("Error: Dashboard Domain name is required")
os.Exit(1)
}
if config.LetsEncryptEmail == "" {
fmt.Println("Error: Let's Encrypt email is required")
os.Exit(1)
}
if config.AdminUserEmail == "" || config.AdminUserPassword == "" {
fmt.Println("Error: Admin user email and password are required")
if config.EnableEmail && config.EmailNoReply == "" {
fmt.Println("Error: No-reply email address is required when email is enabled")
os.Exit(1)
}
// Advanced configuration
fmt.Println("\n=== Advanced Configuration ===")
config.EnableIPv6 = readBool(reader, "Is your server IPv6 capable?", true)
config.EnableGeoblocking = readBool(reader, "Do you want to download the MaxMind GeoLite2 database for geoblocking functionality?", true)
if config.DashboardDomain == "" {
fmt.Println("Error: Dashboard Domain name is required")
os.Exit(1)
}
return config
}
func validatePassword(password string) (bool, string) {
if len(password) == 0 {
return false, "Password cannot be empty"
}
var (
hasUpper bool
hasLower bool
hasDigit bool
hasSpecial bool
)
for _, char := range password {
switch {
case unicode.IsUpper(char):
hasUpper = true
case unicode.IsLower(char):
hasLower = true
case unicode.IsDigit(char):
hasDigit = true
case unicode.IsPunct(char) || unicode.IsSymbol(char):
hasSpecial = true
}
}
var missing []string
if !hasUpper {
missing = append(missing, "an uppercase letter")
}
if !hasLower {
missing = append(missing, "a lowercase letter")
}
if !hasDigit {
missing = append(missing, "a digit")
}
if !hasSpecial {
missing = append(missing, "a special character")
}
if len(missing) > 0 {
return false, fmt.Sprintf("Password must contain %s", strings.Join(missing, ", "))
}
return true, ""
}
func createConfigFiles(config Config) error {
os.MkdirAll("config", 0755)
os.MkdirAll("config/letsencrypt", 0755)
@@ -258,26 +410,33 @@ func createConfigFiles(config Config) error {
os.MkdirAll("config/logs", 0755)
// Walk through all embedded files
err := fs.WalkDir(configFiles, "fs", func(path string, d fs.DirEntry, err error) error {
err := fs.WalkDir(configFiles, "config", func(path string, d fs.DirEntry, err error) error {
if err != nil {
return err
}
// Skip the root fs directory itself
if path == "fs" {
if path == "config" {
return nil
}
// Get the relative path by removing the "fs/" prefix
relPath := strings.TrimPrefix(path, "fs/")
if !config.DoCrowdsecInstall && strings.Contains(path, "crowdsec") {
return nil
}
// Create the full output path under "config/"
outPath := filepath.Join("config", relPath)
if config.DoCrowdsecInstall && !strings.Contains(path, "crowdsec") {
return nil
}
// skip .DS_Store
if strings.Contains(path, ".DS_Store") {
return nil
}
if d.IsDir() {
// Create directory
if err := os.MkdirAll(outPath, 0755); err != nil {
return fmt.Errorf("failed to create directory %s: %v", outPath, err)
if err := os.MkdirAll(path, 0755); err != nil {
return fmt.Errorf("failed to create directory %s: %v", path, err)
}
return nil
}
@@ -295,14 +454,14 @@ func createConfigFiles(config Config) error {
}
// Ensure parent directory exists
if err := os.MkdirAll(filepath.Dir(outPath), 0755); err != nil {
return fmt.Errorf("failed to create parent directory for %s: %v", outPath, err)
if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil {
return fmt.Errorf("failed to create parent directory for %s: %v", path, err)
}
// Create output file
outFile, err := os.Create(outPath)
outFile, err := os.Create(path)
if err != nil {
return fmt.Errorf("failed to create %s: %v", outPath, err)
return fmt.Errorf("failed to create %s: %v", path, err)
}
defer outFile.Close()
@@ -313,148 +472,215 @@ func createConfigFiles(config Config) error {
return nil
})
if err != nil {
return fmt.Errorf("error walking config files: %v", err)
}
// get the current directory
dir, err := os.Getwd()
if err != nil {
return fmt.Errorf("failed to get current directory: %v", err)
}
sourcePath := filepath.Join(dir, "config/docker-compose.yml")
destPath := filepath.Join(dir, "docker-compose.yml")
// Check if source file exists
if _, err := os.Stat(sourcePath); err != nil {
return fmt.Errorf("source docker-compose.yml not found: %v", err)
}
// Try to move the file
err = os.Rename(sourcePath, destPath)
if err != nil {
return fmt.Errorf("failed to move docker-compose.yml from %s to %s: %v",
sourcePath, destPath, err)
}
return nil
}
func installDocker() error {
// Detect Linux distribution
cmd := exec.Command("cat", "/etc/os-release")
output, err := cmd.Output()
func copyFile(src, dst string) error {
source, err := os.Open(src)
if err != nil {
return fmt.Errorf("failed to detect Linux distribution: %v", err)
return err
}
osRelease := string(output)
defer source.Close()
// Detect system architecture
archCmd := exec.Command("uname", "-m")
archOutput, err := archCmd.Output()
destination, err := os.Create(dst)
if err != nil {
return fmt.Errorf("failed to detect system architecture: %v", err)
}
arch := strings.TrimSpace(string(archOutput))
// Map architecture to Docker's architecture naming
var dockerArch string
switch arch {
case "x86_64":
dockerArch = "amd64"
case "aarch64":
dockerArch = "arm64"
default:
return fmt.Errorf("unsupported architecture: %s", arch)
}
var installCmd *exec.Cmd
switch {
case strings.Contains(osRelease, "ID=ubuntu"):
installCmd = exec.Command("bash", "-c", fmt.Sprintf(`
apt-get update &&
apt-get install -y apt-transport-https ca-certificates curl software-properties-common &&
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg &&
echo "deb [arch=%s signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list &&
apt-get update &&
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
`, dockerArch))
case strings.Contains(osRelease, "ID=debian"):
installCmd = exec.Command("bash", "-c", fmt.Sprintf(`
apt-get update &&
apt-get install -y apt-transport-https ca-certificates curl software-properties-common &&
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg &&
echo "deb [arch=%s signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list &&
apt-get update &&
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
`, dockerArch))
case strings.Contains(osRelease, "ID=fedora"):
installCmd = exec.Command("bash", "-c", fmt.Sprintf(`
dnf -y install dnf-plugins-core &&
dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo &&
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
`))
case strings.Contains(osRelease, "ID=opensuse") || strings.Contains(osRelease, "ID=\"opensuse-"):
installCmd = exec.Command("bash", "-c", `
zypper install -y docker docker-compose &&
systemctl enable docker
`)
case strings.Contains(osRelease, "ID=rhel") || strings.Contains(osRelease, "ID=\"rhel"):
installCmd = exec.Command("bash", "-c", fmt.Sprintf(`
dnf remove -y runc &&
dnf -y install yum-utils &&
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo &&
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin &&
systemctl enable docker
`))
case strings.Contains(osRelease, "ID=amzn"):
installCmd = exec.Command("bash", "-c", `
yum update -y &&
yum install -y docker &&
systemctl enable docker &&
usermod -a -G docker ec2-user
`)
default:
return fmt.Errorf("unsupported Linux distribution")
}
installCmd.Stdout = os.Stdout
installCmd.Stderr = os.Stderr
return installCmd.Run()
}
func isDockerInstalled() bool {
cmd := exec.Command("docker", "--version")
if err := cmd.Run(); err != nil {
return false
}
return true
}
func pullAndStartContainers() error {
fmt.Println("Starting containers...")
// First try docker compose (new style)
cmd := exec.Command("docker", "compose", "-f", "docker-compose.yml", "pull")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Run()
if err != nil {
fmt.Println("Failed to start containers using docker compose, falling back to docker-compose command")
os.Exit(1)
}
cmd = exec.Command("docker", "compose", "-f", "docker-compose.yml", "up", "-d")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
if err != nil {
fmt.Println("Failed to start containers using docker-compose command")
os.Exit(1)
return err
}
defer destination.Close()
_, err = io.Copy(destination, source)
return err
}
func moveFile(src, dst string) error {
if err := copyFile(src, dst); err != nil {
return err
}
return os.Remove(src)
}
func printSetupToken(containerType SupportedContainer, dashboardDomain string) {
fmt.Println("Waiting for Pangolin to generate setup token...")
// Wait for Pangolin to be healthy
if err := waitForContainer("pangolin", containerType); err != nil {
fmt.Println("Warning: Pangolin container did not become healthy in time.")
return
}
// Give a moment for the setup token to be generated
time.Sleep(2 * time.Second)
// Fetch logs
var cmd *exec.Cmd
if containerType == Docker {
cmd = exec.Command("docker", "logs", "pangolin")
} else {
cmd = exec.Command("podman", "logs", "pangolin")
}
output, err := cmd.Output()
if err != nil {
fmt.Println("Warning: Could not fetch Pangolin logs to find setup token.")
return
}
// Parse for setup token
lines := strings.Split(string(output), "\n")
for i, line := range lines {
if strings.Contains(line, "=== SETUP TOKEN GENERATED ===") || strings.Contains(line, "=== SETUP TOKEN EXISTS ===") {
// Look for "Token: ..." in the next few lines
for j := i + 1; j < i+5 && j < len(lines); j++ {
trimmedLine := strings.TrimSpace(lines[j])
if strings.Contains(trimmedLine, "Token:") {
// Extract token after "Token:"
tokenStart := strings.Index(trimmedLine, "Token:")
if tokenStart != -1 {
token := strings.TrimSpace(trimmedLine[tokenStart+6:])
fmt.Printf("Setup token: %s\n", token)
fmt.Println("")
fmt.Println("This token is required to register the first admin account in the web UI at:")
fmt.Printf("https://%s/auth/initial-setup\n", dashboardDomain)
fmt.Println("")
fmt.Println("Save this token securely. It will be invalid after the first admin is created.")
return
}
}
}
}
}
fmt.Println("Warning: Could not find a setup token in Pangolin logs.")
}
func showSetupTokenInstructions(containerType SupportedContainer, dashboardDomain string) {
fmt.Println("\n=== Setup Token Instructions ===")
fmt.Println("To get your setup token, you need to:")
fmt.Println("")
fmt.Println("1. Start the containers")
if containerType == Docker {
fmt.Println(" docker compose up -d")
} else if containerType == Podman {
fmt.Println(" podman-compose up -d")
} else {
}
fmt.Println("")
fmt.Println("2. Wait for the Pangolin container to start and generate the token")
fmt.Println("")
fmt.Println("3. Check the container logs for the setup token")
if containerType == Docker {
fmt.Println(" docker logs pangolin | grep -A 2 -B 2 'SETUP TOKEN'")
} else if containerType == Podman {
fmt.Println(" podman logs pangolin | grep -A 2 -B 2 'SETUP TOKEN'")
} else {
}
fmt.Println("")
fmt.Println("4. Look for output like")
fmt.Println(" === SETUP TOKEN GENERATED ===")
fmt.Println(" Token: [your-token-here]")
fmt.Println(" Use this token on the initial setup page")
fmt.Println("")
fmt.Println("5. Use the token to complete initial setup at")
fmt.Printf(" https://%s/auth/initial-setup\n", dashboardDomain)
fmt.Println("")
fmt.Println("The setup token is required to register the first admin account.")
fmt.Println("Save it securely - it will be invalid after the first admin is created.")
fmt.Println("================================")
}
func generateRandomSecretKey() string {
const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
const length = 32
var seededRand *rand.Rand = rand.New(
rand.NewSource(time.Now().UnixNano()))
b := make([]byte, length)
for i := range b {
b[i] = charset[seededRand.Intn(len(charset))]
}
return string(b)
}
func getPublicIP() string {
client := &http.Client{
Timeout: 10 * time.Second,
}
resp, err := client.Get("https://ifconfig.io/ip")
if err != nil {
return ""
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return ""
}
ip := strings.TrimSpace(string(body))
// Validate that it's a valid IP address
if net.ParseIP(ip) != nil {
return ip
}
return ""
}
// Run external commands with stdio/stderr attached.
func run(name string, args ...string) error {
cmd := exec.Command(name, args...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
func checkPortsAvailable(port int) error {
addr := fmt.Sprintf(":%d", port)
ln, err := net.Listen("tcp", addr)
if err != nil {
return fmt.Errorf(
"ERROR: port %d is occupied or cannot be bound: %w\n\n",
port, err,
)
}
if closeErr := ln.Close(); closeErr != nil {
fmt.Fprintf(os.Stderr,
"WARNING: failed to close test listener on port %d: %v\n",
port, closeErr,
)
}
return nil
}
func downloadMaxMindDatabase() error {
fmt.Println("Downloading MaxMind GeoLite2 Country database...")
// Download the GeoLite2 Country database
if err := run("curl", "-L", "-o", "GeoLite2-Country.tar.gz",
"https://github.com/GitSquared/node-geolite2-redist/raw/refs/heads/master/redist/GeoLite2-Country.tar.gz"); err != nil {
return fmt.Errorf("failed to download GeoLite2 database: %v", err)
}
// Extract the database
if err := run("tar", "-xzf", "GeoLite2-Country.tar.gz"); err != nil {
return fmt.Errorf("failed to extract GeoLite2 database: %v", err)
}
// Find the .mmdb file and move it to the config directory
if err := run("bash", "-c", "mv GeoLite2-Country_*/GeoLite2-Country.mmdb config/"); err != nil {
return fmt.Errorf("failed to move GeoLite2 database to config directory: %v", err)
}
// Clean up the downloaded files
if err := run("rm", "-rf", "GeoLite2-Country.tar.gz", "GeoLite2-Country_*"); err != nil {
fmt.Printf("Warning: failed to clean up temporary files: %v\n", err)
}
fmt.Println("MaxMind GeoLite2 Country database downloaded successfully!")
return nil
}

2541
messages/bg-BG.json Normal file

File diff suppressed because it is too large Load Diff

2541
messages/cs-CZ.json Normal file

File diff suppressed because it is too large Load Diff

2541
messages/de-DE.json Normal file

File diff suppressed because it is too large Load Diff

2541
messages/en-US.json Normal file

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More