By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
Main changes:
Added a new popup for updates and new version
Other changes:
Added env variables validation and made it so that the fossorial api (api.fossorial.com) is replaced by an environment variable if it is provided.
The env variables are validated on local dev
Moved next.config.mjs to next.config.ts to be able to import typescript files into it.
Screenshots
-
-
Video
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/fosrl/pangolin/pull/1814
**Author:** [@Fredkiss3](https://github.com/Fredkiss3)
**Created:** 11/5/2025
**Status:** ✅ Merged
**Merged:** 11/14/2025
**Merged by:** [@miloschwartz](https://github.com/miloschwartz)
**Base:** `dev` ← **Head:** `feat/update-popup`
---
### 📝 Commits (10+)
- [`03e0e8d`](https://github.com/fosrl/pangolin/commit/03e0e8d9c2cfa58537ea77284df9b09e4993fce5) 🚧 wip
- [`a26a441`](https://github.com/fosrl/pangolin/commit/a26a441d563c33ac1883b05de7414bfe3c48e88a) ♻️ validate env and add remote fossorial API as an env variable
- [`2f1abfb`](https://github.com/fosrl/pangolin/commit/2f1abfbef81bbbb381da821af629c57d03f85949) 🚧 New version popup
- [`162c6d5`](https://github.com/fosrl/pangolin/commit/162c6d567c300bbce9295bd75e0327eaf47c37a4) ⏪ revert `package.json` changes
- [`44f419d`](https://github.com/fosrl/pangolin/commit/44f419d4f743ef678d97466d726628218264309b) 💄 animate popup
- [`1090dca`](https://github.com/fosrl/pangolin/commit/1090dca634f5a71e4e85b3fb5a1d03f4c4cecf39) Merge branch 'main' into feat/update-popup
- [`18566c0`](https://github.com/fosrl/pangolin/commit/18566c09dc37f6ebea3b8877e15516126dc83188) ➕ add tanstack query
- [`a247ef7`](https://github.com/fosrl/pangolin/commit/a247ef7564085f7c7e5468b92a98b7a7f8ca8e50) ♻️ import `type`
- [`b9ce316`](https://github.com/fosrl/pangolin/commit/b9ce3165749143b501ee13f44a5c6b002425e9d0) 🚧 wip
- [`6d34969`](https://github.com/fosrl/pangolin/commit/6d349693a79feff99b6a01be5a46c72ba546b81c) 🚧 wip
### 📊 Changes
**24 files changed** (+1175 additions, -167 deletions)
<details>
<summary>View changed files</summary>
📝 `messages/de-DE.json` (+14 -14)
📝 `messages/en-US.json` (+9 -0)
➖ `next.config.mjs` (+0 -14)
➕ `next.config.ts` (+20 -0)
📝 `package-lock.json` (+223 -0)
📝 `package.json` (+6 -3)
📝 `server/lib/config.ts` (+11 -1)
📝 `server/lib/readConfigFile.ts` (+24 -3)
📝 `server/lib/telemetry.ts` (+1 -1)
📝 `server/private/routers/generatedLicense/generateNewLicense.ts` (+1 -1)
📝 `server/private/routers/generatedLicense/listGeneratedLicenses.ts` (+4 -1)
📝 `server/routers/supporterKey/validateSupporterKey.ts` (+1 -3)
📝 `src/app/layout.tsx` (+32 -29)
📝 `src/components/LayoutSidebar.tsx` (+13 -4)
➕ `src/components/ProductUpdates.tsx` (+379 -0)
➕ `src/components/react-query-provider.tsx` (+29 -0)
📝 `src/components/ui/badge.tsx` (+6 -5)
➕ `src/hooks/useLocalStorage.ts` (+99 -0)
📝 `src/lib/api/index.ts` (+15 -1)
➕ `src/lib/durationToMs.ts` (+13 -0)
_...and 4 more files_
</details>
### 📄 Description
## Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
## Description
**Main changes:**
- Added a new popup for updates and new version
**Other changes:**
- Added env variables validation and made it so that the fossorial api (`api.fossorial.com`) is replaced by an environment variable if it is provided.
- The env variables are validated on local dev
- Moved `next.config.mjs` to `next.config.ts` to be able to import typescript files into it.
## Screenshots
| - | - |
| ------ | ------ |
| Video | <video src="https://github.com/user-attachments/assets/a89ea530-1be8-4fbd-8142-9d9f96a54ef9"></video> |
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/fosrl/pangolin/pull/1814
Author: @Fredkiss3
Created: 11/5/2025
Status: ✅ Merged
Merged: 11/14/2025
Merged by: @miloschwartz
Base:
dev← Head:feat/update-popup📝 Commits (10+)
03e0e8d🚧 wipa26a441♻️ validate env and add remote fossorial API as an env variable2f1abfb🚧 New version popup162c6d5⏪ revertpackage.jsonchanges44f419d💄 animate popup1090dcaMerge branch 'main' into feat/update-popup18566c0➕ add tanstack querya247ef7♻️ importtypeb9ce316🚧 wip6d34969🚧 wip📊 Changes
24 files changed (+1175 additions, -167 deletions)
View changed files
📝
messages/de-DE.json(+14 -14)📝
messages/en-US.json(+9 -0)➖
next.config.mjs(+0 -14)➕
next.config.ts(+20 -0)📝
package-lock.json(+223 -0)📝
package.json(+6 -3)📝
server/lib/config.ts(+11 -1)📝
server/lib/readConfigFile.ts(+24 -3)📝
server/lib/telemetry.ts(+1 -1)📝
server/private/routers/generatedLicense/generateNewLicense.ts(+1 -1)📝
server/private/routers/generatedLicense/listGeneratedLicenses.ts(+4 -1)📝
server/routers/supporterKey/validateSupporterKey.ts(+1 -3)📝
src/app/layout.tsx(+32 -29)📝
src/components/LayoutSidebar.tsx(+13 -4)➕
src/components/ProductUpdates.tsx(+379 -0)➕
src/components/react-query-provider.tsx(+29 -0)📝
src/components/ui/badge.tsx(+6 -5)➕
src/hooks/useLocalStorage.ts(+99 -0)📝
src/lib/api/index.ts(+15 -1)➕
src/lib/durationToMs.ts(+13 -0)...and 4 more files
📄 Description
Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
Main changes:
Other changes:
api.fossorial.com) is replaced by an environment variable if it is provided.next.config.mjstonext.config.tsto be able to import typescript files into it.Screenshots
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.