diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml
index fb0b516a..111b0222 100644
--- a/.github/workflows/cicd.yml
+++ b/.github/workflows/cicd.yml
@@ -28,7 +28,7 @@ jobs:
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Install Go
- uses: actions/setup-go@v5
+ uses: actions/setup-go@v6
with:
go-version: 1.24
diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml
index c3db3738..f2129300 100644
--- a/.github/workflows/linting.yml
+++ b/.github/workflows/linting.yml
@@ -21,7 +21,7 @@ jobs:
uses: actions/checkout@v5
- name: Set up Node.js
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v5
with:
node-version: '22'
diff --git a/.github/workflows/stale-bot.yml b/.github/workflows/stale-bot.yml
index d0ca1685..4a574d91 100644
--- a/.github/workflows/stale-bot.yml
+++ b/.github/workflows/stale-bot.yml
@@ -14,7 +14,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- - uses: actions/stale@v9
+ - uses: actions/stale@v10
with:
days-before-stale: 14
days-before-close: 14
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 12316cd7..7d22c300 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -13,7 +13,7 @@ jobs:
steps:
- uses: actions/checkout@v5
- - uses: actions/setup-node@v4
+ - uses: actions/setup-node@v5
with:
node-version: '22'
diff --git a/README.md b/README.md
index 6ab8338a..5bbe2c1f 100644
--- a/README.md
+++ b/README.md
@@ -21,10 +21,10 @@ _Pangolin tunnels your services to the internet so you can access anything from
|
- Install Guide
+ Quick Install Guide
|
-
+
Contact Us
@@ -32,7 +32,7 @@ _Pangolin tunnels your services to the internet so you can access anything from
[](https://hub.docker.com/r/fosrl/pangolin)

[](https://discord.gg/HCJR8Xhme4)
-[](https://www.youtube.com/@fossorial-app)
+[](https://www.youtube.com/@fossorial-app)
diff --git a/config/traefik/dynamic_config.yml b/config/traefik/dynamic_config.yml
index 8fcf8e55..8465a9cf 100644
--- a/config/traefik/dynamic_config.yml
+++ b/config/traefik/dynamic_config.yml
@@ -16,8 +16,9 @@ http:
# Next.js router (handles everything except API and WebSocket paths)
next-router:
- rule: "Host(`{{.DashboardDomain}}`) && !PathPrefix(`/api/v1`)"
+ rule: "Host(`{{.DashboardDomain}}`)"
service: next-service
+ priority: 10
entryPoints:
- websecure
tls:
@@ -27,15 +28,7 @@ http:
api-router:
rule: "Host(`{{.DashboardDomain}}`) && PathPrefix(`/api/v1`)"
service: api-service
- entryPoints:
- - websecure
- tls:
- certResolver: letsencrypt
-
- # WebSocket router
- ws-router:
- rule: "Host(`{{.DashboardDomain}}`)"
- service: api-service
+ priority: 100
entryPoints:
- websecure
tls:
diff --git a/server/routers/external.ts b/server/routers/external.ts
index ae0a99f2..b851eda8 100644
--- a/server/routers/external.ts
+++ b/server/routers/external.ts
@@ -970,7 +970,7 @@ authRouter.post(
windowMs: 15 * 60 * 1000,
max: 15,
keyGenerator: (req) =>
- `requestEmailVerificationCode:${req.body.email || ipKeyGenerator(req.ip || "")}`,
+ `requestEmailVerificationCode:${req.user?.email || ipKeyGenerator(req.ip || "")}`,
handler: (req, res, next) => {
const message = `You can only request an email verification code ${15} times every ${15} minutes. Please try again later.`;
return next(createHttpError(HttpCode.TOO_MANY_REQUESTS, message));