mirror of
https://github.com/Ernous/TorrServerJellyfin.git
synced 2025-12-15 20:06:10 +05:00
83 lines
2.2 KiB
Docker
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"]
|