Update jellyfin-web submodule and add TrueNAS build script
- Update jellyfin-web to ef7275fd65 (fix template import) - Add build_truenas.sh for building Docker images on TrueNAS - Script initializes submodules on TrueNAS with IP-based git URLs
This commit is contained in:
75
build_truenas.sh
Executable file
75
build_truenas.sh
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/bin/bash
|
||||
# Build Jellyfin Docker image on TrueNAS
|
||||
# Usage: ./build_truenas.sh <truenas-host> [tag]
|
||||
# Example: ./build_truenas.sh 192.168.79.249 10.11.5-custom
|
||||
|
||||
set -e
|
||||
|
||||
TRUENAS_HOST="${1}"
|
||||
IMAGE_TAG="${2:-latest}"
|
||||
BUILD_DIR="/tmp/jellyfin-build-$$"
|
||||
|
||||
if [ -z "$TRUENAS_HOST" ]; then
|
||||
echo "Usage: $0 <truenas-host> [tag]"
|
||||
echo "Example: $0 192.168.79.249 10.11.5-custom"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=================================================="
|
||||
echo "Building Jellyfin on TrueNAS"
|
||||
echo "=================================================="
|
||||
echo "Host: $TRUENAS_HOST"
|
||||
echo "Tag: $IMAGE_TAG"
|
||||
echo "=================================================="
|
||||
|
||||
# Create temp build directory on TrueNAS
|
||||
echo "Creating build directory on TrueNAS..."
|
||||
ssh root@${TRUENAS_HOST} "mkdir -p ${BUILD_DIR}"
|
||||
|
||||
# Sync repository to TrueNAS (excluding submodules, will init on TrueNAS)
|
||||
echo "Syncing repository to TrueNAS..."
|
||||
rsync -avz --progress \
|
||||
--exclude='node_modules' \
|
||||
--exclude='bin' \
|
||||
--exclude='obj' \
|
||||
--exclude='jellyfin-web' \
|
||||
--exclude='jellyfin-server' \
|
||||
./ root@${TRUENAS_HOST}:${BUILD_DIR}/
|
||||
|
||||
# Update submodule URLs to use IP address and initialize on TrueNAS
|
||||
echo "Initializing submodules on TrueNAS..."
|
||||
ssh root@${TRUENAS_HOST} "cd ${BUILD_DIR} && \
|
||||
git config --global --add safe.directory ${BUILD_DIR} && \
|
||||
git config submodule.jellyfin-server.url ssh://git@192.168.79.249:222/admin/jellyfin.git && \
|
||||
git config submodule.jellyfin-web.url ssh://git@192.168.79.249:222/admin/jellyfin-web.git && \
|
||||
git submodule update --init --recursive"
|
||||
|
||||
# Build Docker image on TrueNAS
|
||||
echo "Building Docker image on TrueNAS..."
|
||||
ssh root@${TRUENAS_HOST} "cd ${BUILD_DIR} && docker build \
|
||||
--build-arg DOTNET_VERSION=9.0 \
|
||||
--build-arg PACKAGE_ARCH=amd64 \
|
||||
--build-arg DOTNET_ARCH=x64 \
|
||||
--build-arg IMAGE_ARCH=amd64 \
|
||||
--build-arg TARGET_ARCH=amd64 \
|
||||
--build-arg JELLYFIN_VERSION=${IMAGE_TAG} \
|
||||
-t jellyfin:${IMAGE_TAG} \
|
||||
--file docker/Dockerfile ."
|
||||
|
||||
# Tag image
|
||||
echo "Tagging image..."
|
||||
ssh root@${TRUENAS_HOST} "docker tag jellyfin:${IMAGE_TAG} jellyfin:latest"
|
||||
|
||||
# Cleanup
|
||||
echo "Cleaning up build directory..."
|
||||
ssh root@${TRUENAS_HOST} "rm -rf ${BUILD_DIR}"
|
||||
|
||||
echo "=================================================="
|
||||
echo "✓ Build complete!"
|
||||
echo "=================================================="
|
||||
echo "Image: jellyfin:${IMAGE_TAG}"
|
||||
echo ""
|
||||
echo "To run the container:"
|
||||
echo " ssh root@${TRUENAS_HOST}"
|
||||
echo " docker run -d jellyfin:${IMAGE_TAG}"
|
||||
echo "=================================================="
|
||||
Reference in New Issue
Block a user