63 lines
1.9 KiB
Plaintext
63 lines
1.9 KiB
Plaintext
|
|
#!/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 .git for speed)
|
||
|
|
echo "Syncing repository to TrueNAS..."
|
||
|
|
rsync -avz --progress \
|
||
|
|
--exclude='.git' \
|
||
|
|
--exclude='node_modules' \
|
||
|
|
--exclude='bin' \
|
||
|
|
--exclude='obj' \
|
||
|
|
./ root@${TRUENAS_HOST}:${BUILD_DIR}/
|
||
|
|
|
||
|
|
# Initialize and sync submodules on TrueNAS
|
||
|
|
echo "Initializing submodules on TrueNAS..."
|
||
|
|
ssh root@${TRUENAS_HOST} "cd ${BUILD_DIR} && 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 -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 "=================================================="
|