Commit Graph
670 Commits
Author SHA1 Message Date
BillyOutlastandJohn Smith 6c3671714d fix(platform): repair age-rating migration drift, resolve object storage stream leaks, and add Quadlet template (#497)
* fix(server): repair age-rating migration drift

The age-ratings change (97c6f2c8) appended the AgeRatingOrganization
enum and GameAgeRating table to 20260224145112, a migration that had
already been applied to existing databases. Prisma never re-runs applied
migrations, so those databases were left without the enum/table; the
later 20260726041153_add_user_groups migration then failed with
"type AgeRatingOrganization does not exist" and game pages 500'd.

Restore 20260224145112 to its original applied content, make
20260726041153 self-healing by creating the enum when it is missing, and
add an idempotent 20260915000000_add_game_age_ratings migration that
creates the type, table, index and foreign key. All statements are
guarded so they are safe on databases already repaired out-of-band.

* fix(server): eliminate file descriptor double-close and stream leaks in object storage

* feat(server): add generic Podman Quadlet deployment template

* fix(server): address platform-stability review feedback

Migrations are now append-only: 20260224145112 and 20260726041153 are left untouched and 20260915000000_add_game_age_ratings is replaced by 20260726041152_repair_age_rating_schema, named to sort before 20260726041153 so drifted databases create the enum before add_user_groups runs. Databases whose add_user_groups row already failed still need migrate resolve --rolled-back, which is documented in the migration.

FsObjectBackend#write now truncates before writing, so overwriting an object with shorter content cannot leave stale trailing bytes. FsObjectBackend#fetchHash computes and stores the hash on a database miss (FsHashStore#get returns undefined, not null).

Quadlet: drop the README and the chunk-cache volume/env keys (the chunk cache is not implemented in this repository), fix rootless boot via default.target, add a PostgreSQL healthcheck, use the drop-postgres DNS name, and fix the uninstall volume glob.

* fix(server): grant save owners read access and enforce save size limits

Save snapshots were created with no permissions, so the desktop client
could never pull an archive back, and pruning relied on deleteWithPermission
(which requires a delete grant the object never has), silently leaking every
pruned snapshot. Grant `<userId>:read` and reclaim as the system.

The advertised saveSlotSizeLimit was also never enforced; measure the stream
and reject oversized payloads with a 413 before the full archive is written.

---------

Co-authored-by: John Smith <you@example.com>
2026-09-15 10:15:31 +10:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 344b89c5b9 chore(deps): bump @simplewebauthn/server from 13.3.0 to 13.3.2 (#488)
Bumps [@simplewebauthn/server](https://github.com/MasterKale/SimpleWebAuthn/tree/HEAD/packages/server) from 13.3.0 to 13.3.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.3.2/packages/server)

---
updated-dependencies:
- dependency-name: "@simplewebauthn/server"
  dependency-version: 13.3.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-05 09:41:31 +10:00
NicoVIII d2df0466a9 Fix devcontainer (#482)
Sorry, I'm just a devcontainer type of guy :D
The restructure of the repo to a monorepo broke some things. I think I corrected them all so far.
I had to add .pnpm-store to the root .gitignore, because the pnpm install in the container places it there. Alternatively, if that is not wanted, I could move the story via env variable afaik to another place inside the container outside of the repo.
2026-08-30 22:54:54 +10:00
NicoVIII fd8b70360b Fix steam metadata import if full_description is missing (#481)
When trying to import a game which is restricted in your country, steam seems to not provide a full_description. This caused errors while importing, because the undefined was unexpected here.
I made this case explicit and the code a bit more typesafe to fix this error and at least allows to import the metadata you have access to via steam.

Fixes #403.
2026-08-30 21:29:32 +10:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 0957cb85d3 chore(deps): bump nuxt from 3.21.7 to 3.21.10 (#471)
Bumps [nuxt](https://github.com/nuxt/nuxt/tree/HEAD/packages/nuxt) from 3.21.7 to 3.21.10.
- [Release notes](https://github.com/nuxt/nuxt/releases)
- [Commits](https://github.com/nuxt/nuxt/commits/v3.21.10/packages/nuxt)

---
updated-dependencies:
- dependency-name: nuxt
  dependency-version: 3.21.10
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-08 09:31:01 +10:00
AgentScrubblesandRobert Clabough 26abc584a9 Set Age Restrictions on library with a slider (#468)
* Adding groups logic and restrictions

* Cleaning up some redundant code

* hastily made translations

* Linter issues

* More linting

* PR comments

* Covering other APIs with age filters per comment

* Add ages to age ratings

* Making the linter happy

---------

Co-authored-by: Robert Clabough <robert@clabough.tech>
2026-08-06 16:13:43 +10:00
AgentScrubblesandRobert Clabough 13891f6ab2 Adding groups logic and restrictions (#454)
* Adding groups logic and restrictions

* Cleaning up some redundant code

* hastily made translations

* Linter issues

* More linting

* PR comments

* Covering other APIs with age filters per comment

---------

Co-authored-by: Robert Clabough <robert@clabough.tech>
2026-08-02 11:50:15 +10:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> f59bf9fd85 chore(deps): bump nuxt from 3.21.6 to 3.21.7 (#424)
Bumps [nuxt](https://github.com/nuxt/nuxt/tree/HEAD/packages/nuxt) from 3.21.6 to 3.21.7.
- [Release notes](https://github.com/nuxt/nuxt/releases)
- [Commits](https://github.com/nuxt/nuxt/commits/v3.21.7/packages/nuxt)

---
updated-dependencies:
- dependency-name: nuxt
  dependency-version: 3.21.7
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-29 21:00:46 +10:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 0eefae69cf chore(deps): bump shescape from 2.1.11 to 2.1.14 (#458)
Bumps [shescape](https://github.com/ericcornelissen/shescape) from 2.1.11 to 2.1.14.
- [Release notes](https://github.com/ericcornelissen/shescape/releases)
- [Changelog](https://github.com/ericcornelissen/shescape/blob/v2.1.14/CHANGELOG.md)
- [Commits](https://github.com/ericcornelissen/shescape/compare/v2.1.11...v2.1.14)

---
updated-dependencies:
- dependency-name: shescape
  dependency-version: 2.1.14
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-29 18:47:10 +10:00
AgentScrubblesandRobert Clabough 97c6f2c8a6 Add age ratings (#451)
* Base age rating system

* Cleanup enum leftovers

* Missed files

* GB importer

* Linter settings

* Translations

* Prettier and linting

---------

Co-authored-by: Robert Clabough <robert@clabough.tech>
2026-07-26 11:42:16 +10:00
AgentScrubblesandRobert Clabough 8e75a0bf56 Autofill launch name on version import (#373) (#447)
Co-authored-by: Robert Clabough <robert@clabough.tech>
2026-07-24 07:38:04 +10:00
DecDuck d0c3b2fdb6 Fix admin UI user bar overlap (#439) 2026-07-10 14:53:48 +10:00
DecDuck 38c11567ef Variety of bug fixes (#432)
* Fix #414

* Implement #268

* Add #269
2026-06-21 20:07:59 +10:00
DecDuck cbecd1161d Publish docs, update links (#431)
* Publish docs, update links

* Fix sitemap gen

* Migrate to Astro v6

* Fix server lint
2026-06-21 16:39:34 +10:00
DecDuck 9185089c99 Fix v0.4.0 process handler, add override menu (#430)
* Fix Windows and Linux launch

* Add process handler selector, pin Prisma

* Regenerate lcofkiel

* Fix torrential inclusion in image

* Fix layouting

* Implement tree kill for Windows

* Fix server lint
2026-06-21 15:24:33 +10:00
DecDuck 2e86422004 Add lints, new website publish (#428)
* Add lints and new website

* Fix droplet CI

* Fix droplet ci again

* Fix clippy lints
2026-06-21 11:16:39 +10:00
DecDuck 796abf478f Fix GitHub Actions build (#427)
* Fix server build

* Remove server drop-base submod

* Update lockfile

* Use debian images for build

* Fix pino errors, lint

* Fix macOS keychain lookup
2026-06-21 10:37:54 +10:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 8637ff52ef chore(deps): bump nuxt from 3.21.2 to 3.21.6 (#417)
Bumps [nuxt](https://github.com/nuxt/nuxt/tree/HEAD/packages/nuxt) from 3.21.2 to 3.21.6.
- [Release notes](https://github.com/nuxt/nuxt/releases)
- [Commits](https://github.com/nuxt/nuxt/commits/v3.21.6/packages/nuxt)

---
updated-dependencies:
- dependency-name: nuxt
  dependency-version: 3.21.6
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-15 08:12:37 +10:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> a3974f6137 chore(deps-dev): bump nitropack from 2.13.3 to 2.13.4 (#410)
Bumps [nitropack](https://github.com/nitrojs/nitro) from 2.13.3 to 2.13.4.
- [Release notes](https://github.com/nitrojs/nitro/releases)
- [Changelog](https://github.com/nitrojs/nitro/blob/main/changelog.config.ts)
- [Commits](https://github.com/nitrojs/nitro/compare/v2.13.3...v2.13.4)

---
updated-dependencies:
- dependency-name: nitropack
  dependency-version: 2.13.4
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-09 12:28:18 +10:00
DecDuck bf7ce5927f Attempt fix monorepo build (#404)
* add latest changes and fix launcher

* add optional tag specify

* fix client release

* empty commit
2026-04-27 15:38:05 +10:00
Husky ff1144e016 Improve repo tooling (#398)
* add basic git files to root

* make server part of monorepo

* import promo

* import libraries base

* import docs

* import desktop

* move docs and promo
2026-04-20 11:44:38 +10:00
DecDuck 5bbe406e4c disable proxy buffering 2026-04-19 09:38:42 +10:00
DecDuck 2dd90fbc44 New v0.4.0 website 2026-04-03 01:25:10 +00:00
DecDuck 50106d5fa2 Add final packages and fix torrential launch 2026-03-30 19:47:53 +11:00
DecDuck e881da5ce3 move base to libraries 2026-03-30 19:38:14 +11:00
DecDuck 6b294949b9 Add and fix missing projects 2026-03-30 19:34:34 +11:00
DecDuck f82ec017d9 Update readmes for monorepo 2026-03-30 19:04:39 +11:00
NicoVIII 22dc94b920 Add z-index to ComboboxOptions (#271) (#375)
I never used headlessui before, so I have no idea why this is needed, but it looks like this fixes the problem. I think a high z-index is alright, because there shouldn't be things that should lie above the options.
2026-03-29 21:24:45 +11:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> f03fed0b8a chore(deps): bump shescape from 2.1.8 to 2.1.10 (#368)
Bumps [shescape](https://github.com/ericcornelissen/shescape) from 2.1.8 to 2.1.10.
- [Release notes](https://github.com/ericcornelissen/shescape/releases)
- [Changelog](https://github.com/ericcornelissen/shescape/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ericcornelissen/shescape/compare/v2.1.8...v2.1.10)

---
updated-dependencies:
- dependency-name: shescape
  dependency-version: 2.1.10
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-13 08:12:57 +11:00
Paco f3e90bd033 Fix non-authenticated users being counted as sessions (#362) 2026-03-03 08:02:58 +11:00
DecDuck 236022e99f Check integrity task (#364) 2026-03-01 21:49:34 +11:00
DecDuck 83516d83fd OIDC validation & issuer fixes (#363)
* fix: validation and issuer checks

* feat: query param util

* fix: lint
2026-03-01 21:25:55 +11:00
DecDuck 14f4135071 Tag connect & disconnect fix (#360)
* fix: tag connect/disconnect

* fix: lint

* fix: oidc typo fix
2026-02-27 15:15:27 +11:00
DecDuck d7fffe59f9 OIDC & store fixes (#358)
* fix: typos

* fix: platform filtering

* feat: fix tags and create option
2026-02-27 09:15:19 +11:00
DecDuck 3d5479bc31 Quick fixes (#355)
* fix: error message on import

* fix: 2fa input size
2026-02-25 23:23:36 +11:00
DecDuck ee9dba5dc0 Add display name field to version importer (#354) 2026-02-25 23:05:24 +11:00
DecDuck 8956b6e8b2 Fix torrential depot (#353)
Adds a plugin to automatically add/update the torrential depot record
2026-02-25 22:24:15 +11:00
DecDuck 7dc889852d Paginated admin library & upgrade manifests (#351)
* feat: new page layout + endpoint

* feat: non-parallel mass import

* feat: paginated admin library

* feat: lint and performance improvement

* feat: library filter util

* feat: link frontend features to backend

* fix: lint

* fix: small fixes

* feat: bump torrential

* fix: lint
2026-02-25 02:17:33 +11:00
DecDuck 3375e8c972 Fix dev torrential server (#349)
* fix: droplet interface not waiting for torrential

* fix: lint
2026-02-13 13:10:53 +11:00
Husky d1786b3c60 migrate to prisma v7 (#345)
* migrate to prisma v7

* fix prisma type imports

* update prisma version in docker

* fix prisma cli breaking things
2026-02-11 01:26:53 +00:00
Husky e4a295f767 Series of small fixes (#346)
* migrate bufbuild config to v2

* fix localdir lookup

* fix old oidc redirect path

* rework twemoji path stuff

* fix torrential cmd

* fix broken lock file

* align dev server port with nginx

* bump pnpm

* bump nuxt

* make translations lazy loaded

* format numbers via i18n

* fix prisma breaking if extension already exists
2026-02-09 16:27:31 +00:00
Paco d0d79b3668 Refactoring and UI improvements on the admin home page (#348) 2026-02-09 18:40:45 +11:00
DecDuck 2b9edaaf53 Regenerate lockfile 2026-02-09 15:36:10 +11:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 5548ec730d chore(deps): bump seroval from 1.4.0 to 1.5.0 (#338)
Bumps [seroval](https://github.com/lxsmnsyc/seroval) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/lxsmnsyc/seroval/releases)
- [Commits](https://github.com/lxsmnsyc/seroval/commits/1.5.0)

---
updated-dependencies:
- dependency-name: seroval
  dependency-version: 1.5.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-07 13:41:19 +11:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> b179a3a716 chore(deps): bump lodash from 4.17.21 to 4.17.23 (#337)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-07 13:41:05 +11:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 9de3b540f8 chore(deps): bump lodash-es from 4.17.21 to 4.17.23 (#340)
Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash-es
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-07 13:33:27 +11:00
DecDuck bc5623cc78 API optimisations (#343)
* feat: api optimisation

* feat: emulator rename
2026-02-06 23:12:03 +11:00
Paco d6920700cb Fixes wrong values used in RAM usage section (#344) 2026-02-06 13:42:00 +11:00
Paco af08472e45 Make application and logo configurable (#336)
* Adds settings for server name and logo

* Implements ApplicationLogo and replaces site name based on settings

* Refactors component for changing the company logo

* Removes unused variable

* Uses message instead of statusMessage

* Replaces favicon with logo if set
2026-02-06 11:43:21 +11:00
DecDuck 15f5986b07 Use native runners for CI (#342)
* feat: use platform-specific runners

* feat: replace with template

* fix: image name

* fix: registry image name

* fix: checkout repo

* fix: add drop version

* fix: add sha env

* fix: permissions
2026-02-06 09:55:22 +11:00