Skip to content
Snippets Groups Projects
Commit 78564769 authored by nimrod's avatar nimrod
Browse files

A whole lot of work.

parent 7482d592
No related branches found
No related tags found
No related merge requests found
Pipeline #320 passed with warnings
~*
*~
*.sw[op]
*.py[cod]
.DS_Store
__pycache__/
.vagrant/
vendor/
Thumbs.db
*.retry
.svn/
.sass-cache/
*.log
*.out
*.so
node_modules/
.npm/
nbproject/
*.ipynb
.idea/
*.egg-info/
*.[ao]
.classpath
.cache/
bower_components/
*.class
*.[ewj]ar
secring.*
.*.kate-swp
.swp.*
.directory
.Trash-*
build/
_build/
dist/
.tox/
*.pdf
*.exe
*.dll
*.gz
*.tgz
*.tar
*.rar
*.zip
*.pid
*.lock
*.env
.bundle/
!Pipfile.lock
---
include:
- project: shore/ci-templates
file: templates/docker-compose.yml
build:
extends: .compose-build
tags: [kodi.shore.co.il]
run:
extends: .compose-run
tags: [kodi.shore.co.il]
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks.git
rev: v3.4.0
hooks:
- id: check-added-large-files
- id: check-executables-have-shebangs
- id: check-json
- id: check-merge-conflict
- id: check-symlinks
- id: trailing-whitespace
- repo: https://github.com/Yelp/detect-secrets
rev: v0.14.3
hooks:
- id: detect-secrets
exclude: settings\.json
- repo: https://github.com/adrienverge/yamllint
rev: v1.25.0
hooks:
- id: yamllint
- id: yamllint
alias: transmission-rss.conf
files: rss/transmission-rss.conf
types: [text]
- repo: https://github.com/amperser/proselint/
rev: 0.10.2
hooks:
- id: proselint
types: [plain-text]
exclude: LICENSE
- repo: https://github.com/executablebooks/mdformat.git
rev: 0.5.3
hooks:
- id: mdformat
- repo: https://git.shore.co.il/nimrod/shell-pre-commit.git
rev: v0.6.0
hooks:
- id: shell-lint
- repo: https://github.com/shellcheck-py/shellcheck-py.git
rev: v0.7.1.1
hooks:
- id: shellcheck
- repo: https://git.shore.co.il/nimrod/docker-pre-commit.git/
rev: v0.3.0
hooks:
- id: hadolint
- id: docker-compose
MIT License
Copyright (c) 2018 Adar Nimrod
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
# Transmission Docker
[![pipeline status](https://git.shore.co.il/nimrod/transmission-docker/badges/master/pipeline.svg)](https://git.shore.co.il/nimrod/transmission-docker/-/commits/master)
> A dockerized Transmission daemon, RSS watcher and annonymous FTP server.
## Requirements
- Docker
- Docker Compose
## License
This software is licensed under the MIT license (see `LICENSE.txt`).
## Author Information
Nimrod Adar, [contact me](mailto:nimrod@shore.co.il) or visit my
[website](https://www.shore.co.il/). Patches are welcome via
[`git send-email`](http://git-scm.com/book/en/v2/Git-Commands-Email). The repository
is located at: <https://git.shore.co.il/expore/>.
FROM alpine:3.12
# hadolint ignore=DL3018
RUN apk add --update --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ \
gosu \
&& \
apk add --update --no-cache \
transmission-daemon \
shadow \
&& \
groupmod -g 1000 transmission && \
usermod -u 1000 transmission && \
apk del --no-cache --rdepends shadow && \
mkdir -p /var/run/transmission /etc/transmission/ && \
chown -R transmission:transmission /var/run/transmission
COPY --chown=root:root entrypoint /
COPY --chown=1000:1000 settings.json /etc/transmission/
VOLUME /var/lib/transmission/
WORKDIR /var/lib/transmission
EXPOSE 9091 51413/tcp 51413/udp
ENTRYPOINT [ "/entrypoint" ]
CMD [ "transmission-daemon", "--foreground" ]
HEALTHCHECK CMD wget --spider http://localhost:9091/transmission || exit 1
#!/bin/sh
set -eux
install -d -o 1000 -g 1000 -m 750 /var/lib/transmission/.config/transmission-daemon/
install -d -o 1000 -g 1000 -m 755 /var/lib/transmission/downloads
install -o 1000 -g 1000 -m 640 /etc/transmission/settings.json /var/lib/transmission/.config/transmission-daemon/settings.json
eval exec gosu "1000:1000" "$@"
{
"alt-speed-down": 50,
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127,
"alt-speed-time-enabled": false,
"alt-speed-time-end": 1020,
"alt-speed-up": 50,
"bind-address-ipv4": "0.0.0.0",
"bind-address-ipv6": "::",
"blocklist-enabled": false,
"blocklist-url": "http://www.bluetack.co.uk/config/level1.gz",
"cache-size-mb": 4,
"dht-enabled": true,
"download-dir": "/var/lib/transmission/downloads",
"download-limit": 100,
"download-limit-enabled": 0,
"download-queue-enabled": true,
"download-queue-size": 5,
"encryption": 1,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/var/lib/transmission/incomplete",
"incomplete-dir-enabled": false,
"lpd-enabled": true,
"max-peers-global": 200,
"message-level": 1,
"peer-congestion-algorithm": "",
"peer-id-ttl-hours": 6,
"peer-limit-global": 200,
"peer-limit-per-torrent": 50,
"peer-port": 51413,
"peer-port-random-high": 65535,
"peer-port-random-low": 49152,
"peer-port-random-on-start": false,
"peer-socket-tos": "default",
"pex-enabled": true,
"port-forwarding-enabled": false,
"preallocation": 1,
"prefetch-enabled": true,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 2,
"ratio-limit-enabled": true,
"rename-partial-files": true,
"rpc-authentication-required": false,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-host-whitelist": "*.shore.co.il,transmission-rss",
"rpc-host-whitelist-enabled": false,
"rpc-password": "transmission",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "transmission",
"rpc-whitelist": "127.0.0.*,192.168.*.*,10.*.*.*,172.16.*.*,172.17.*.*,172.18.*.*,172.19.*.*,172.2?.*.*,172.30.*.*,172.31.*.*",
"rpc-whitelist-enabled": true,
"scrape-paused-torrents-enabled": true,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
"seed-queue-enabled": false,
"seed-queue-size": 10,
"speed-limit-down": 100,
"speed-limit-down-enabled": false,
"speed-limit-up": 100,
"speed-limit-up-enabled": false,
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 18,
"upload-limit": 100,
"upload-limit-enabled": 0,
"upload-slots-per-torrent": 14,
"utp-enabled": true
}
# vim:ff=unix:ts=2:sw=2:ai:expandtab
---
version: '3.7'
services:
daemon:
build:
context: daemon/
ports:
- 9091:9091
- 51413:51413/tcp
- 51413:51413/udp
volumes:
- daemon:/var/lib/transmission/
restart: always
networks:
default:
aliases:
- transmission-daemon
rss:
build:
context: rss/
volumes:
- rss:/var/lib/transmission-rss/
restart: always
ftp:
build:
context: vsftpd/
volumes:
- daemon:/var/lib/transmission/
ports:
- '21:21'
- 4559-4564:4559-4564
restart: always
volumes:
daemon:
rss:
networks:
default:
name: shore
FROM ruby:alpine
# hadolint ignore=DL3018
RUN apk add --update --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ \
gosu \
&& \
apk add --update --no-cache \
build-base \
&& \
gem install \
transmission-rss:1.0.0 \
&& \
apk del --rdepends --no-cache build-base && \
addgroup -g 1000 transmission-rss && \
adduser -h /var/lib/transmission-rss -G transmission-rss -D -u 1000 transmission-rss
COPY --chown=root:root entrypoint /usr/local/sbin/
COPY --chown=root:root transmission-rss.conf /etc/
ENTRYPOINT [ "entrypoint" ]
WORKDIR /var/lib/transmission-rss
VOLUME /var/lib/transmission-rss
CMD [ "/usr/local/bundle/bin/transmission-rss" ]
HEALTHCHECK CMD pgrep ruby || exit 1
#!/bin/sh
set -eux
install -d -o 1000 -g 1000 -m 755 /var/lib/transmission-rss/
eval exec gosu "1000:1000" "$@"
# vim:ff=unix:ts=2:sw=2:ai:expandtab:ft=yaml
# yamllint disable rule:line-length
---
server:
host: transmission-daemon
fork: false
update_interval: 1800
feeds:
- url: https://showrss.info/show/270.rss
download_path: /var/lib/transmission/downloads/TV Shows/Archer 2009/
regexp: 720p
- url: https://showrss.info/show/126.rss
download_path: /var/lib/transmission/downloads/TV Shows/Fargo/
regexp: 720p
- url: https://showrss.info/show/214.rss
download_path: /var/lib/transmission/downloads/TV Shows/Bob's Burgers/
regexp: 720p
- url: https://showrss.info/show/101.rss
download_path: /var/lib/transmission/downloads/TV Shows/Bojack Horseman/
regexp: 720p
- url: https://showrss.info/show/58.rss
download_path: /var/lib/transmission/downloads/TV Shows/Brooklyn Nine-Nine/
regexp: 720p
- url: https://showrss.info/show/262.rss
download_path: /var/lib/transmission/downloads/TV Shows/Game of Thrones/
regexp: 720p
- url: https://showrss.info/show/274.rss
download_path: /var/lib/transmission/downloads/TV Shows/House Of Cards 2013/
regexp: 720p
- url: https://showrss.info/show/278.rss
download_path: /var/lib/transmission/downloads/TV Shows/Orange Is The New Black/
regexp: 720p
- url: https://showrss.info/show/44.rss
download_path: /var/lib/transmission/downloads/TV Shows/Rick and Morty/
regexp: 720p
- url: https://showrss.info/show/275.rss
download_path: /var/lib/transmission/downloads/TV Shows/Silicon Valley/
regexp: 720p
- url: https://showrss.info/show/623.rss
download_path: /var/lib/transmission/downloads/TV Shows/Son of Zorn/
regexp: 720p
- url: https://showrss.info/show/707.rss
download_path: /var/lib/transmission/downloads/TV Shows/The Grand Tour/
regexp: 720p
- url: https://showrss.info/show/479.rss
download_path: /var/lib/transmission/downloads/TV Shows/Vinyl/
regexp: 720p
- url: https://showrss.info/show/522.rss
download_path: /var/lib/transmission/downloads/TV Shows/Unbreakable Kimmy Schmidt/
regexp: 720p
- url: http://horriblesubs.info/rss.php?res=1080
download_path: /var/lib/transmission/downloads/TV Shows/Dragon Ball Super/
regexp: Dragon Ball Super
- url: https://showrss.info/show/820.rss
download_path: /var/lib/transmission/downloads/TV Shows/Twin Peaks/
regexp: 720p
- url: https://showrss.info/show/811.rss
download_path: /var/lib/transmission/downloads/TV Shows/The Handmaid's Tale/
regexp: 720p
- url: http://horriblesubs.info/rss.php?res=1080
download_path: /var/lib/transmission/downloads/TV Shows/One-Punch Man/
regexp: One-Punch Man
- url: https://showrss.info/show/262.rss
download_path: /var/lib/transmission/downloads/TV Shows/Game of Thrones/
regexp: 720p
- url: https://showrss.info/show/314.rss
download_path: /var/lib/transmission/downloads/TV Shows/Top Chef/
regexp: 720p
- url: https://showrss.info/show/583.rss
download_path: /var/lib/transmission/downloads/TV Shows/Stranger Things/
regexp: 720p
- url: https://showrss.info/show/865.rss
download_path: /var/lib/transmission/downloads/TV Shows/Marvel's The Defenders/
regexp: 720p
- url: https://showrss.info/show/863.rss
download_path: /var/lib/transmission/downloads/TV Shows/Top of the Lake/
regexp: 720p
- url: https://showrss.info/show/871.rss
download_path: /var/lib/transmission/downloads/TV Shows/The Deuce/
regexp: 720p
- url: https://showrss.info/show/843.rss
download_path: /var/lib/transmission/downloads/TV Shows/Ozark/
regexp: 720p
- url: https://showrss.info/show/876.rss
download_path: /var/lib/transmission/downloads/TV Shows/Philip K. Dick's Electric Dreams/
regexp: 720p
- url: https://showrss.info/show/630.rss
download_path: /var/lib/transmission/downloads/TV Shows/The Good Place/
regexp: 720p
- url: https://showrss.info/show/889.rss
download_path: /var/lib/transmission/downloads/TV Shows/Marvel's Inhumans/
regexp: 720p
- url: https://showrss.info/show/893.rss
download_path: /var/lib/transmission/downloads/TV Shows/Curb Your Enthusiasm/
regexp: 720p
- url: https://showrss.info/show/612.rss
download_path: /var/lib/transmission/downloads/TV Shows/Jean-Claude Van Johnson/
regexp: 720p
- url: https://showrss.info/show/921.rss
download_path: /var/lib/transmission/downloads/TV Shows/Marvel's The Punisher/
regexp: 720p
- url: https://showrss.info/show/923.rss
download_path: /var/lib/transmission/downloads/TV Shows/Marvel's Runaways/
regexp: 720p
- url: https://showrss.info/show/877.rss
download_path: /var/lib/transmission/downloads/TV Shows/The Great British Bake Off/
regexp: 720p
- url: https://showrss.info/show/590.rss
download_path: /var/lib/transmission/downloads/TV Shows/Comedians in Cars Getting Coffee/
regexp: 720p
- url: https://showrss.info/show/951.rss
download_path: /var/lib/transmission/downloads/TV Shows/Altered Carbon/
regexp: 720p
- url: https://showrss.info/show/337.rss
download_path: /var/lib/transmission/downloads/TV Shows/Red Dwarf/
regexp: 720p
- url: https://showrss.info/show/982.rss
download_path: /var/lib/transmission/downloads/TV Shows/Roseanne/
regexp: 720p
- url: https://showrss.info/show/996.rss
download_path: /var/lib/transmission/downloads/TV Shows/Cobra Kai/
regexp: 720p
- url: https://showrss.info/show/1003.rss
download_path: /var/lib/transmission/downloads/TV Shows/Marvel's Cloak and Dagger/
regexp: 720p
- url: https://showrss.info/show/346.rss
download_path: /var/lib/transmission/downloads/TV Shows/Arrested Development/
regexp: 720p
- url: https://showrss.info/show/639.rss
download_path: /var/lib/transmission/downloads/TV Shows/Marvel's Luke Cage/
regexp: 720p
- url: https://showrss.info/show/365.rss
download_path: /var/lib/transmission/downloads/TV Shows/Jessica Jones/
regexp: 720p
- url: https://showrss.info/show/1023.rss
download_path: /var/lib/transmission/downloads/TV Shows/Who Is America?/
regexp: 720p
- url: https://showrss.info/show/834.rss
download_path: /var/lib/transmission/downloads/TV Shows/GLOW/
regexp: 720p
- url: https://showrss.info/show/1112.rss
download_path: /var/lib/transmission/downloads/TV Shows/Hanna/
regexp: 720p
- url: https://showrss.info/show/1120.rss
download_path: /var/lib/transmission/downloads/TV Shows/Doom Patrol/
regexp: 720p
- url: https://showrss.info/show/1121.rss
download_path: /var/lib/transmission/downloads/TV Shows/Umbrella Academy/
regexp: 720p
- url: https://showrss.info/show/1135.rss
download_path: /var/lib/transmission/downloads/TV Shows/Love, Death & Robots/
regexp: 720p
- url: https://showrss.info/show/1158.rss
download_path: /var/lib/transmission/downloads/TV Shows/Catch-22/
regexp: 720p
- url: https://showrss.info/show/1161.rss
download_path: /var/lib/transmission/downloads/TV Shows/The Rain/
regexp: 720p
- url: https://showrss.info/show/1168.rss
download_path: /var/lib/transmission/downloads/TV Shows/Your Pretty Face Is Going To Hell/
regexp: 720p
- url: https://showrss.info/show/1183.rss
download_path: /var/lib/transmission/downloads/TV Shows/The Boys/
regexp: 720p
- url: https://showrss.info/show/1185.rss
download_path: /var/lib/transmission/downloads/TV Shows/Veronica Mars/
regexp: 720p
- url: https://showrss.info/show/1196.rss
download_path: /var/lib/transmission/downloads/TV Shows/On Becoming a God in Central Florida/
regexp: 720p
- url: https://showrss.info/show/442.rss
download_path: /var/lib/transmission/downloads/TV Shows/Mike Tyson Mysteries/
regexp: 720p
- url: https://showrss.info/show/1066.rss
download_path: /var/lib/transmission/downloads/TV Shows/Titans/
regexp: 720p
- url: https://showrss.info/show/1238.rss
download_path: /var/lib/transmission/downloads/TV Shows/Harley Quinn/
regexp: 720p
- url: https://showrss.info/show/1264.rss
download_path: '/var/lib/transmission/downloads/TV Shows/Star Trek: Picard/'
regexp: 720p
- url: https://showrss.info/show/1311.rss
download_path: /var/lib/transmission/downloads/TV Shows/Stargirl/
regexp: 720p
FROM debian:buster-slim
# hadolint ignore=DL3008
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ftp \
gosu \
netcat-openbsd \
vsftpd \
&& \
mkdir -p /var/run/vsftpd/empty && \
rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/* /var/cache/apt/archives/*
COPY --chown=root:root entrypoint /usr/local/sbin/
COPY --chown=root:root healthcheck /usr/local/bin
COPY --chown=root:root vsftpd.conf /etc/vsftpd.conf
EXPOSE 21 4559 4560 4561 4562 4563 4564
ENTRYPOINT [ "/usr/local/sbin/entrypoint" ]
CMD [ "vsftpd" ]
HEALTHCHECK CMD healthcheck || exit 1
#!/bin/sh
set -eux
install -d -o 1000 -g 1000 -m 755 /var/lib/transmission/downloads
touch /var/log/vsftpd.log
tail -f /var/log/vsftpd.log &
eval exec "$@"
#!/bin/sh
set -eux
ftp -inv<<EOF
open localhost
user anonymous healthcheck
ls
bye
EOF
listen=YES
local_enable=NO
anonymous_enable=YES
write_enable=NO
anon_root=/var/lib/transmission/downloads
listen_address=0.0.0.0
xferlog_enable=YES
pasv_min_port=4559
pasv_max_port=4564
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment