Commit Graph
12 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
DecDuckandAden Lindsay 038507fa74 Depot API & v4 (#298)
* feat: nginx + torrential basics & services system

* fix: lint + i18n

* fix: update torrential to remove openssl

* feat: add torrential to Docker build

* feat: move to self hosted runner

* fix: move off self-hosted runner

* fix: update nginx.conf

* feat: torrential cache invalidation

* fix: update torrential for cache invalidation

* feat: integrity check task

* fix: lint

* feat: move to version ids

* fix: client fixes and client-side checks

* feat: new depot apis and version id fixes

* feat: update torrential

* feat: droplet bump and remove unsafe update functions

* fix: lint

* feat: v4 featureset: emulators, multi-launch commands

* fix: lint

* fix: mobile ui for game editor

* feat: launch options

* fix: lint

* fix: remove axios, use $fetch

* feat: metadata and task api improvements

* feat: task actions

* fix: slight styling issue

* feat: fix style and lints

* feat: totp backend routes

* feat: oidc groups

* fix: update drop-base

* feat: creation of passkeys & totp

* feat: totp signin

* feat: webauthn mfa/signin

* feat: launch selecting ui

* fix: manually running tasks

* feat: update add company game modal to use new SelectorGame

* feat: executor selector

* fix(docker): update rust to rust nightly for torrential build (#305)

* feat: new version ui

* feat: move package lookup to build time to allow for deno dev

* fix: lint

* feat: localisation cleanup

* feat: apply localisation cleanup

* feat: potential i18n refactor logic

* feat: remove args from commands

* fix: lint

* fix: lockfile

---------

Co-authored-by: Aden Lindsay <140392385+AdenMGB@users.noreply.github.com>
2026-01-13 15:32:39 +11:00
DecDuck 9ca9d92d55 Fix pino-pretty not being included in build (#135) 2025-07-14 12:11:17 +10:00
Huskydog9988 93bbb22232 fix: compose not following node best practices 2025-05-29 14:18:57 -04:00
Huskydog9988 87414e0f2e fix: use ghcr instead of docker registry 2025-05-28 12:15:23 -04:00
Husky eb06c5c0ac Merge branch 'develop' into more-fixes 2025-05-27 15:17:42 -04:00
Francois Ribemont 613efd7642 Fixes wrong image being used in example 2025-05-24 21:11:51 +01:00
Huskydog9988 d42ad8582a feat: better docker builds 2025-05-10 23:49:58 -04:00
DecDuck fcd9c96d06 fix(deploy template): fix FATAL: "root"... message 2024-12-26 12:34:10 +11:00
DecDuck b5041e8990 update deploy template 2024-11-05 11:02:35 +11:00
DecDuck 8ec55b7465 run yarn install in CI/CD non interactively 2024-11-04 21:21:32 +11:00
DecDuck 1f7e50a694 docker based deployment 2024-11-04 20:50:35 +11:00