diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c9ea05c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +config.example +Dockerfile +docker-compose.yml +docker-compose.*.yml +logo* +README.md +venv \ No newline at end of file diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..65e7309 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,35 @@ +name: docker + +on: + push: + branches: [master] + +jobs: + main: + runs-on: ubuntu-latest + steps: + - + name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - + name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Build and push + id: docker_build + uses: docker/build-push-action@v2 + with: + context: . + file: ./Dockerfile + platforms: linux/amd64,linux/386,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x + push: true + tags: iw00t/redbetter:latest + - + name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} diff --git a/.gitignore b/.gitignore index 7643d88..e819b29 100644 --- a/.gitignore +++ b/.gitignore @@ -121,3 +121,4 @@ bin/ include/ share/ lib/ +docker-compose.override.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..37144b2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM python:2-slim + +RUN set -x \ + && apt-get update \ + && apt-get install -y musl lame sox flac mktorrent \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app +ADD requirements.txt /app + +RUN set -x \ + && pip install -r requirements.txt + +ADD . /app + +USER nobody + +CMD ["/app/redactedbetter"] diff --git a/README.md b/README.md index 9e73387..6908811 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,30 @@ REDBetter caches the results of your transcodes, and will skip any transcodes it Beware though, this will cause the script to re-check every download as it does on the first run. +### Docker example + +~~~ + $> cp docker-compose.override.example.yml docker-compose.override.yml + $> $EDITOR docker-compose.override.yml + + # Change the volume mounts to your custom values + # Use your own 'user: uid:gid' pair + + $> mkdir ~/.redactedbetter + $> chmod go-rx ~/.redactedbetter + $> $EDITOR ~/.redactedbetter/config + + # Configure your username and password. Paths in this configuration file + # are valid inside the container, you shouldn't have to change them if you + # properly configured the volumes previously. (docker-compose.override.yml) + + # Without arguments + $> docker-compose run --rm redbetter + + # With arguments + $> docker-compose run --rm redbetter -U http://redacted.ch/torrents.php?id=1000\&torrentid=1000000 +~~~ + ## Bugs and feature requests If you have any issues using the script, or would like to suggest a feature, feel free to open an issue in the issue tracker, *provided that you have searched for similar issues already*. diff --git a/config.example b/config.example new file mode 100644 index 0000000..16b59c0 --- /dev/null +++ b/config.example @@ -0,0 +1,10 @@ +[redacted] +username = +password = +data_dir = /data +output_dir = /output +torrent_dir = /torrents +24bit_behaviour = 0 +formats = flac, v0, 320 +piece_length = 18 +# media = diff --git a/docker-compose.override.example.yml b/docker-compose.override.example.yml new file mode 100644 index 0000000..98e4c76 --- /dev/null +++ b/docker-compose.override.example.yml @@ -0,0 +1,9 @@ +version: '3' +services: + redbetter: + user: '1000:1000' + volumes: + - ${HOME}/.redactedbetter:/config + - /your/real/path:/data + - /your/real/path:/output + - /your/real/path:/torrents diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9db7239 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,5 @@ +version: '3' +services: + redbetter: + image: iw00t/redbetter:latest + entrypoint: ["/app/redactedbetter", "--config", "/config/config", "--cache", "/config/cache"]