Files
TorrServerJellyfin/Dockerfile.jellyfin

83 lines
2.2 KiB
Docker

### FRONT BUILD START ###
FROM --platform=$BUILDPLATFORM node:18-alpine AS front
WORKDIR /app
ARG REACT_APP_SERVER_HOST='.'
ARG REACT_APP_TMDB_API_KEY=''
ARG PUBLIC_URL=''
ENV REACT_APP_SERVER_HOST=$REACT_APP_SERVER_HOST
ENV REACT_APP_TMDB_API_KEY=$REACT_APP_TMDB_API_KEY
ENV PUBLIC_URL=$PUBLIC_URL
COPY ./web/package.json ./web/yarn.lock ./
RUN yarn install
COPY ./web .
RUN yarn run build
### FRONT BUILD END ###
### BUILD MAIN IMAGE WITH JELLYFIN + TORRSERVER ###
FROM jellyfin/jellyfin:latest
# Install dependencies
RUN apt-get update && apt-get install -y \
curl \
wget \
ca-certificates \
supervisor \
nginx \
&& rm -rf /var/lib/apt/lists/*
# Download TorrServer binary (pre-built from YOUR fork releases)
ARG TORRSERVER_VERSION=v1.0.3
RUN ARCH=$(dpkg --print-architecture) && \
if [ "$ARCH" = "amd64" ]; then \
TORRSERVER_ARCH="linux-amd64"; \
elif [ "$ARCH" = "arm64" ]; then \
TORRSERVER_ARCH="linux-arm64"; \
else \
TORRSERVER_ARCH="linux-amd64"; \
fi && \
echo "Downloading TorrServer for architecture: $TORRSERVER_ARCH from version: $TORRSERVER_VERSION" && \
wget --no-check-certificate -O /usr/bin/torrserver "https://github.com/Ernous/TorrServerJellyfin/releases/download/${TORRSERVER_VERSION}/TorrServer-${TORRSERVER_ARCH}" && \
chmod +x /usr/bin/torrserver && \
ls -lah /usr/bin/torrserver && \
echo "TorrServer binary downloaded and made executable"
# Create directories
RUN mkdir -p /config/jellyfin \
/config/torrserver \
/cache/jellyfin \
/cache/torrserver \
/media/strm \
/var/log/supervisor
# Copy supervisor configuration
COPY ./docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# Copy nginx configuration
COPY ./docker/nginx.conf /etc/nginx/nginx.conf
# Copy startup script
COPY ./docker/start.sh /start.sh
RUN chmod +x /start.sh
# Environment variables
ENV JELLYFIN_PublishedServerUrl=http://localhost:8096
ENV TS_CONF_PATH="/config/torrserver"
ENV TS_PORT=8090
ENV GODEBUG=madvdontneed=1
# Expose ports
# 8080 - Nginx (reverse proxy для Jellyfin и TorrServer)
# 8096 - Jellyfin HTTP (internal)
# 8090 - TorrServer (internal)
EXPOSE 8080
# Override Jellyfin's entrypoint
ENTRYPOINT []
CMD ["/start.sh"]