@@ -1 +1,15 @@
|
|||||||
.env
|
.dockerignore
|
||||||
|
.env
|
||||||
|
.env.sample
|
||||||
|
.git
|
||||||
|
.github
|
||||||
|
.gitignore
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
|
||||||
|
Dockerfile*
|
||||||
|
README.md
|
||||||
|
|
||||||
|
test
|
||||||
|
|
||||||
|
venv
|
||||||
47
.github/workflows/ci.yml
vendored
47
.github/workflows/ci.yml
vendored
@@ -8,7 +8,7 @@ on:
|
|||||||
paths-ignore:
|
paths-ignore:
|
||||||
- .gitignore
|
- .gitignore
|
||||||
- "*.md"
|
- "*.md"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pytest:
|
pytest:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -24,25 +24,32 @@ jobs:
|
|||||||
docker:
|
docker:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: pytest
|
needs: pytest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- dockerfile: Dockerfile.alpine
|
||||||
|
variant: alpine
|
||||||
|
- dockerfile: Dockerfile.slim
|
||||||
|
variant: slim
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Docker meta
|
- name: Docker meta
|
||||||
id: docker_meta
|
id: docker_meta
|
||||||
env:
|
|
||||||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
|
||||||
if: "${{ env.DOCKER_USERNAME != '' }}"
|
|
||||||
uses: docker/metadata-action@v4
|
uses: docker/metadata-action@v4
|
||||||
with:
|
with:
|
||||||
images: ${{ secrets.DOCKER_USERNAME }}/jellyplex-watched # list of Docker images to use as base name for tags
|
images: |
|
||||||
|
${{ secrets.DOCKER_USERNAME }}/jellyplex-watched,enable=${{ secrets.DOCKER_USERNAME != '' }}
|
||||||
|
ghcr.io/${{ github.repository_owner }}/jellyplex-watched
|
||||||
tags: |
|
tags: |
|
||||||
type=raw,value=latest,enable={{is_default_branch}}
|
type=raw,value=latest,enable=${{ matrix.variant == 'alpine' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }}
|
||||||
type=ref,event=branch
|
type=raw,value=latest,suffix=-${{ matrix.variant }},enable={{ is_default_branch }}
|
||||||
type=ref,event=pr
|
type=ref,event=branch,suffix=-${{ matrix.variant }}
|
||||||
type=semver,pattern={{version}}
|
type=ref,event=pr,suffix=-${{ matrix.variant }}
|
||||||
type=semver,pattern={{major}}.{{minor}}
|
type=semver,pattern={{ version }},suffix=-${{ matrix.variant }}
|
||||||
type=sha
|
type=semver,pattern={{ major }}.{{ minor }},suffix=-${{ matrix.variant }}
|
||||||
|
type=sha,suffix=-${{ matrix.variant }}
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v2
|
||||||
@@ -51,30 +58,40 @@ jobs:
|
|||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v2
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
if: "${{ steps.docker_meta.outcome == 'success' }}"
|
env:
|
||||||
|
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
if: "${{ env.DOCKER_USERNAME != '' }}"
|
||||||
uses: docker/login-action@v2
|
uses: docker/login-action@v2
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USERNAME }}
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
password: ${{ secrets.DOCKER_TOKEN }}
|
password: ${{ secrets.DOCKER_TOKEN }}
|
||||||
|
|
||||||
|
- name: Login to GitHub Container Registry
|
||||||
|
if: "${{ steps.docker_meta.outcome == 'success' }}"
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
id: build
|
id: build
|
||||||
if: "${{ steps.docker_meta.outcome == 'skipped' }}"
|
if: "${{ steps.docker_meta.outcome == 'skipped' }}"
|
||||||
uses: docker/build-push-action@v3
|
uses: docker/build-push-action@v3
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ./Dockerfile
|
file: ${{ matrix.dockerfile }}
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
push: false
|
push: false
|
||||||
tags: jellyplex-watched:action
|
tags: jellyplex-watched:action
|
||||||
|
|
||||||
- name: Build Push
|
- name: Build Push
|
||||||
id: build_push
|
id: build_push
|
||||||
if: "${{ steps.docker_meta.outcome == 'success' }}"
|
if: "${{ steps.docker_meta.outcome == 'success' }}"
|
||||||
uses: docker/build-push-action@v3
|
uses: docker/build-push-action@v3
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ./Dockerfile
|
file: ${{ matrix.dockerfile }}
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
push: true
|
push: true
|
||||||
tags: ${{ steps.docker_meta.outputs.tags }}
|
tags: ${{ steps.docker_meta.outputs.tags }}
|
||||||
|
|||||||
41
Dockerfile.alpine
Normal file
41
Dockerfile.alpine
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
FROM python:3-alpine
|
||||||
|
|
||||||
|
ENV DRYRUN 'True'
|
||||||
|
ENV DEBUG 'True'
|
||||||
|
ENV DEBUG_LEVEL 'INFO'
|
||||||
|
ENV SLEEP_DURATION '3600'
|
||||||
|
ENV LOGFILE 'log.log'
|
||||||
|
|
||||||
|
ENV USER_MAPPING ''
|
||||||
|
ENV LIBRARY_MAPPING ''
|
||||||
|
|
||||||
|
ENV PLEX_BASEURL ''
|
||||||
|
ENV PLEX_TOKEN ''
|
||||||
|
ENV PLEX_USERNAME ''
|
||||||
|
ENV PLEX_PASSWORD ''
|
||||||
|
ENV PLEX_SERVERNAME ''
|
||||||
|
|
||||||
|
ENV JELLYFIN_BASEURL ''
|
||||||
|
ENV JELLYFIN_TOKEN ''
|
||||||
|
|
||||||
|
ENV SYNC_FROM_PLEX_TO_JELLYFIN 'True'
|
||||||
|
ENV SYNC_FROM_JELLYFIN_TO_PLEX 'True'
|
||||||
|
ENV SYNC_FROM_PLEX_TO_PLEX 'True'
|
||||||
|
ENV SYNC_FROM_JELLYFIN_TO_JELLYFIN 'True'
|
||||||
|
|
||||||
|
ENV BLACKLIST_LIBRARY ''
|
||||||
|
ENV WHITELIST_LIBRARY ''
|
||||||
|
ENV BLACKLIST_LIBRARY_TYPE ''
|
||||||
|
ENV WHITELIST_LIBRARY_TYPE ''
|
||||||
|
ENV BLACKLIST_USERS ''
|
||||||
|
ENV WHITELIST_USERS ''
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY ./requirements.txt ./
|
||||||
|
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
CMD ["python", "-u", "main.py"]
|
||||||
@@ -1,46 +1,40 @@
|
|||||||
FROM python:3-slim
|
FROM python:3-slim
|
||||||
|
|
||||||
ENV DRYRUN 'True'
|
ENV DRYRUN 'True'
|
||||||
ENV DEBUG 'True'
|
ENV DEBUG 'True'
|
||||||
ENV DEBUG_LEVEL 'INFO'
|
ENV DEBUG_LEVEL 'INFO'
|
||||||
ENV SLEEP_DURATION '3600'
|
ENV SLEEP_DURATION '3600'
|
||||||
ENV LOGFILE 'log.log'
|
ENV LOGFILE 'log.log'
|
||||||
|
|
||||||
ENV USER_MAPPING ''
|
ENV USER_MAPPING ''
|
||||||
ENV LIBRARY_MAPPING ''
|
ENV LIBRARY_MAPPING ''
|
||||||
|
|
||||||
ENV PLEX_BASEURL ''
|
ENV PLEX_BASEURL ''
|
||||||
ENV PLEX_TOKEN ''
|
ENV PLEX_TOKEN ''
|
||||||
ENV PLEX_USERNAME ''
|
ENV PLEX_USERNAME ''
|
||||||
ENV PLEX_PASSWORD ''
|
ENV PLEX_PASSWORD ''
|
||||||
ENV PLEX_SERVERNAME ''
|
ENV PLEX_SERVERNAME ''
|
||||||
|
|
||||||
ENV JELLYFIN_BASEURL ''
|
ENV JELLYFIN_BASEURL ''
|
||||||
ENV JELLYFIN_TOKEN ''
|
ENV JELLYFIN_TOKEN ''
|
||||||
|
|
||||||
ENV SYNC_FROM_PLEX_TO_JELLYFIN 'True'
|
ENV SYNC_FROM_PLEX_TO_JELLYFIN 'True'
|
||||||
ENV SYNC_FROM_JELLYFIN_TO_PLEX 'True'
|
ENV SYNC_FROM_JELLYFIN_TO_PLEX 'True'
|
||||||
ENV SYNC_FROM_PLEX_TO_PLEX 'True'
|
ENV SYNC_FROM_PLEX_TO_PLEX 'True'
|
||||||
ENV SYNC_FROM_JELLYFIN_TO_JELLYFIN 'True'
|
ENV SYNC_FROM_JELLYFIN_TO_JELLYFIN 'True'
|
||||||
|
|
||||||
ENV BLACKLIST_LIBRARY ''
|
ENV BLACKLIST_LIBRARY ''
|
||||||
ENV WHITELIST_LIBRARY ''
|
ENV WHITELIST_LIBRARY ''
|
||||||
ENV BLACKLIST_LIBRARY_TYPE ''
|
ENV BLACKLIST_LIBRARY_TYPE ''
|
||||||
ENV WHITELIST_LIBRARY_TYPE ''
|
ENV WHITELIST_LIBRARY_TYPE ''
|
||||||
ENV BLACKLIST_USERS ''
|
ENV BLACKLIST_USERS ''
|
||||||
ENV WHITELIST_USERS ''
|
ENV WHITELIST_USERS ''
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
RUN apt-get update && \
|
COPY ./requirements.txt ./
|
||||||
apt-get install -y --no-install-recommends \
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
build-essential && \
|
|
||||||
apt-get clean && \
|
COPY . .
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
CMD ["python", "-u", "main.py"]
|
||||||
COPY ./requirements.txt ./
|
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
|
||||||
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
CMD ["python", "-u", "main.py"]
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
plexapi
|
PlexAPI==4.13.4
|
||||||
requests
|
requests==2.28.2
|
||||||
python-dotenv
|
python-dotenv==1.0.0
|
||||||
aiohttp
|
aiohttp==3.8.4
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
pytest
|
pytest==7.3.0
|
||||||
|
|||||||
Reference in New Issue
Block a user