mirror of
https://github.com/fallenbagel/jellyseerr.git
synced 2026-01-01 04:08:45 -05:00
* refactor: update Next.js and React.js * refactor: update Next.js images * refactor: update ESLint rules and fix warnings/errors * fix: remove old intl polyfill * fix: add proper size to next/image components * fix: adjust full-size for next/image components * fix: temporary allow all domains for image optimization * build: fixes an issue where dev env could lead to javascript heap out of memory * fix: resolve webpack cache issue with country-flag-icons * refactor: switch compiler from Babel to SWC * fix: resize logo in sidebar * fix: break word on long path to avoid text overflow * chore: added sharp for production image optimisation * fix: change extract script for i18n to a custom script * fix: resolve GitHub CodeQL alert * chore: temporarily remove builds for ARMv7 * fix: resize avatar images * refactor: update Node.js to v20 * fix: resolve various UI issues * build: migrate yarn to pnpm and restrict engine to node@^20.0.0 * ci: specify the pnpm version to use in workflow actions * ci: fix typo in pnpm action-setup for cypress workflow * test(cypress): use pnpm instead of yarn * style: ran prettier on pnpm-lock * ci(cypress): setup nodejs v20 in cypress workflow * ci: pnpm cache to reduce install time * ci: use sh shell to get pnpm store directory * build(dockerfile): migrate to pnpm from yarn in docker builds * build(dockerfile): copy the proper pnpm lockfile * build: install pnpm for all platforms * build(dockerfile): remove unnecessary `&&` on apk installation steps * build: migrate pnpm 8 to 9 * build(dockerfile): add node-gyp back in * build(dockerfile): install node-gyp through npm * build(dockerfile): ignore scripts to not run husky install when devdependencies are pruned * build: migrate to pnpm from yarn * chore: remove a section that is no longer relevant --------- Co-authored-by: fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
122 lines
4.1 KiB
YAML
122 lines
4.1 KiB
YAML
name: jellyseerr
|
|
adopt-info: jellyseerr
|
|
license: MIT
|
|
summary: Request management and media discovery tool for media servers
|
|
description: >
|
|
Jellyseerr is a free and open source software application for managing requests for your media library.
|
|
It is a a fork of Overseerr built to bring support for & focusing mainly on Jellyfin & Emby media servers!
|
|
It integrates with your existing services such as Sonarr, Radarr, and Jellyfin/Emby/Plex.
|
|
base: core20
|
|
confinement: strict
|
|
|
|
architectures:
|
|
- build-on: amd64
|
|
- build-on: arm64
|
|
# - build-on: armhf
|
|
|
|
parts:
|
|
jellyseerr:
|
|
plugin: nil
|
|
build-packages:
|
|
- git
|
|
- ca-certificates
|
|
- curl
|
|
- gnupg
|
|
- on arm64:
|
|
- build-essential
|
|
- automake
|
|
- python-gi
|
|
- python-gi-dev
|
|
# - on armhf:
|
|
# - libatomic1
|
|
# - build-essential
|
|
# - automake
|
|
# - python-gi
|
|
# - python-gi-dev
|
|
source: .
|
|
override-pull: |
|
|
snapcraftctl pull
|
|
# Get information to determine snap grade and version
|
|
git config --global --add safe.directory /data/parts/jellyseerr/src
|
|
#setup yarn.rc
|
|
echo "--install.frozen-lockfile\n--install.network-timeout 1000000" > .yarnrc
|
|
BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
COMMIT=$(git rev-parse HEAD)
|
|
COMMIT_SHORT=$(git rev-parse --short HEAD)
|
|
VERSION='v'$(cat package.json | grep 'version' | head -1 | sed 's/.*"\(.*\)"\,/\1/')
|
|
if [ "$VERSION" = "v0.1.0" ]; then
|
|
SNAP_VERSION=$COMMIT_SHORT
|
|
GRADE=stable
|
|
else
|
|
SNAP_VERSION=$VERSION
|
|
GRADE=stable
|
|
fi
|
|
# Write COMMIT_TAG as it is needed durring the build process
|
|
echo $COMMIT > commit.txt
|
|
# Print debug info for build version
|
|
echo "{\"commitShort\": \"$COMMIT_SHORT\", \
|
|
\"version\": \"$VERSION\", \
|
|
\"snapVersion\": \"$SNAP_VERSION\", \
|
|
\"snapGrade\": \"$GRADE\", \
|
|
\"branch\": \"$BRANCH\", \
|
|
\"commit\": \"$COMMIT\"}"
|
|
echo "{\"commitTag\": \"$COMMIT\"}" > committag.json
|
|
# Set snap version and grade
|
|
snapcraftctl set-version "$SNAP_VERSION"
|
|
snapcraftctl set-grade "$GRADE"
|
|
build-environment:
|
|
- PATH: '$SNAPCRAFT_PART_BUILD/node_modules/.bin:$PATH'
|
|
- CYPRESS_INSTALL_BINARY: '0'
|
|
override-build: |
|
|
set -e
|
|
# Install necessary packages
|
|
mkdir -p /etc/apt/keyrings
|
|
# Add Node.js repository key
|
|
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
|
|
|
# Set Node.js version
|
|
NODE_MAJOR=20
|
|
# Add Node.js repository to sources list
|
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
|
|
|
|
# Update package sources and install Node.js
|
|
apt-get update
|
|
apt-get install nodejs -y
|
|
|
|
# Install Yarn
|
|
npm install -g yarn
|
|
# Set COMMIT_TAG before the build begins
|
|
export COMMIT_TAG=$(cat $SNAPCRAFT_PART_BUILD/commit.txt)
|
|
snapcraftctl build
|
|
yarn install --frozen-lockfile --network-timeout 1000000
|
|
yarn build
|
|
# Copy files needed for staging
|
|
cp $SNAPCRAFT_PART_BUILD/committag.json $SNAPCRAFT_PART_INSTALL/
|
|
cp -R $SNAPCRAFT_PART_BUILD/.next $SNAPCRAFT_PART_INSTALL/
|
|
cp -R $SNAPCRAFT_PART_BUILD/dist $SNAPCRAFT_PART_INSTALL/
|
|
cp -R $SNAPCRAFT_PART_BUILD/node_modules $SNAPCRAFT_PART_INSTALL/
|
|
# Remove .github and gitbook as it will fail snap lint
|
|
rm -rf $SNAPCRAFT_PART_INSTALL/.github
|
|
# stage-packages:
|
|
# - on armhf:
|
|
# - libatomic1
|
|
stage: [.next, ./*]
|
|
prime: [.next, ./*]
|
|
|
|
apps:
|
|
daemon:
|
|
command: /bin/sh -c "cd $SNAP && node dist/index.js"
|
|
daemon: simple
|
|
restart-condition: on-failure
|
|
restart-delay: 5s
|
|
plugs:
|
|
- home
|
|
- network
|
|
- network-bind
|
|
environment:
|
|
PATH: '$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH'
|
|
OVERSEERR_SNAP: 'True'
|
|
CONFIG_DIRECTORY: $SNAP_USER_COMMON
|
|
LOG_LEVEL: 'debug'
|
|
NODE_ENV: 'production'
|