Release 2.3.0 (#804)

* chore: bump version to v2.3.0-preview

* Customize start page (#803)

* Update ConfigService to support complex Objects
Implemented tests for ConfigService

* Added DB migration for config table

* Fixed version in banner.txt not being displayed

* Implement Library ordering
Implement "Show recently added games on homepage"

* Fix build.gradle.kts

* FIx bug when creating libraries

* Fix TypeScript errors
Fix library sorting

* Bump actions/checkout from 5 to 6 (#811)

Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [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/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added automatic scanning using file system watchers (#813)

* Implement collections (#814)

* Backend implementation for collections

* Fix database schema and migration script

* Refactor some config values
Fix ArrayInput not being deactivatable

* Remove "AutoRegisterNewUsers" config option

* Fix bug when removing ignored paths

* Add UI for collections (WIP)

* Fix table actions not synced with state
Fix tests

* Finish implementation of collection feature

* Fix tests

* Bump actions/checkout from 5 to 6 (#815)

Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [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/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix "allow guests to create game requests" not being enabled when guest access is activated

* Fix: Disable loading of EditGameMetadataModal and MatchGameModal in GameView when user is not admin

* Bump actions/checkout from 5 to 6 (#819)

Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [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/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Overhaul startpage (#823)

* WIP: Update start page layout

* Performance improvements (lazy loading and virtualized grids/lists)
Fix various smaller issues

* Implement use of blurhash for all images in backend and covers in frontend

* Fix bugs and test

* Fix code analysis issues

* Remove "UI settings" since they have been made obsolete

* Remove length limit from "image.originalUrl" (#824)

* Remove alpine based image (#825)

* Fix bug when games from library are still in a collection, thus prevention deletion of said library

* Delete image files in background

* Fix layout

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
Simon
2025-12-10 12:58:14 +01:00
committed by GitHub
parent 608a0b5ac1
commit 09953a3f78
142 changed files with 5249 additions and 937 deletions
-59
View File
@@ -1,59 +0,0 @@
# syntax=docker/dockerfile:1.4
FROM eclipse-temurin:21-jre-alpine as builder
WORKDIR /opt/gameyfin
ARG JAR_FILE=./app/build/libs/app.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
# Pre-collect plugin JARs so final stage can copy them in a single layer
COPY --link ./plugins/ /tmp/plugins/
RUN mkdir -p /opt/gameyfin/plugins \
&& find /tmp/plugins -type f -path "*/build/libs/*.jar" -exec cp {} /opt/gameyfin/plugins/ \; \
&& rm -rf /tmp/plugins
FROM eclipse-temurin:21-jre-alpine
# OCI labels
LABEL maintainer="grimsi" \
org.opencontainers.image.title="Gameyfin" \
org.opencontainers.image.description="Manage your video games. simple/fast/FOSS" \
org.opencontainers.image.url="https://gameyfin.org" \
org.opencontainers.image.source="https://github.com/gameyfin/gameyfin" \
org.opencontainers.image.licenses="AGPL-3.0-only" \
org.opencontainers.image.vendor="Gameyfin" \
org.opencontainers.image.authors="Gameyfin maintainers"
# Indicate docker runtime environment
ENV RUNTIME_ENV=docker
# Install necessary packages
RUN apk add --no-cache su-exec tini shadow gcompat
# Fixed runtime user/group
ENV USER=gameyfin
ARG UID=1337
ARG GID=1337
WORKDIR /opt/gameyfin
# Create user and required directories
RUN groupadd -g "$GID" "$USER" && \
useradd -u "$UID" -g "$GID" -M -s /sbin/nologin "$USER" && \
mkdir -p plugins plugindata db data logs && \
chown -R "$UID:$GID" .
# Copy entrypoint script with proper perms and ownership
COPY --link --chown=${UID}:${GID} --chmod=0755 ./docker/entrypoint.sh /entrypoint.sh
# Copy application layers and plugin jars from builder stage
COPY --from=builder --link --chown=${UID}:${GID} /opt/gameyfin/dependencies/ ./
COPY --from=builder --link --chown=${UID}:${GID} /opt/gameyfin/spring-boot-loader/ ./
COPY --from=builder --link --chown=${UID}:${GID} /opt/gameyfin/snapshot-dependencies/ ./
COPY --from=builder --link --chown=${UID}:${GID} /opt/gameyfin/application/ ./
COPY --from=builder --link --chown=${UID}:${GID} /opt/gameyfin/plugins ./plugins
EXPOSE 8080
ENTRYPOINT ["/sbin/tini", "--", "/entrypoint.sh"]
-25
View File
@@ -1,25 +0,0 @@
#!/bin/sh
set -e
# Optional UID/GID remapping for mounted volumes
PUID=${PUID:-}
PGID=${PGID:-}
if [ -n "$PGID" ]; then
groupmod -o -g "$PGID" gameyfin
fi
if [ -n "$PUID" ]; then
usermod -o -u "$PUID" gameyfin
fi
# Only fix ownership on writable dirs when remapping is requested
if [ -n "$PUID$PGID" ]; then
for d in plugins plugindata db data logs; do
[ -d "/opt/gameyfin/$d" ] || mkdir -p "/opt/gameyfin/$d"
chown -R gameyfin:gameyfin "/opt/gameyfin/$d"
done
fi
export JAVA_TOOL_OPTIONS="${JAVA_OPTS:-}"
exec su-exec gameyfin:gameyfin java -Djava.net.preferIPv4Stack=true org.springframework.boot.loader.launch.JarLauncher