commit 6415cfd7c48c460e4cba3d0eebddcfb83704ec63 Author: aptalca Date: Mon Jan 24 11:20:57 2022 -0500 initial release diff --git a/.editorconfig b/.editorconfig new file mode 100755 index 0000000..a92f7df --- /dev/null +++ b/.editorconfig @@ -0,0 +1,20 @@ +# This file is globally distributed to all container image projects from +# https://github.com/linuxserver/docker-jenkins-builder/blob/master/.editorconfig + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true +# trim_trailing_whitespace may cause unintended issues and should not be globally set true +trim_trailing_whitespace = false + +[{Dockerfile*,**.yml}] +indent_style = space +indent_size = 2 + +[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}] +indent_style = space +indent_size = 4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..df432a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.jenkins-external diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..31b53b7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,64 @@ +FROM ghcr.io/linuxserver/baseimage-alpine:3.15 + +# set version label +ARG BUILD_DATE +ARG VERSION +ARG PYLOAD_VERSION +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="aptalca" + +ENV HOME="/config" + +RUN \ + echo "**** install build packages ****" && \ + apk add --no-cache --virtual=build-dependencies \ + build-base \ + cargo \ + curl-dev \ + libffi-dev \ + libjpeg-turbo-dev \ + openssl-dev \ + python3-dev \ + zlib-dev && \ + echo "**** install packages ****" && \ + apk add --no-cache \ + curl \ + libjpeg-turbo \ + py3-pip \ + python3 \ + sqlite \ + tesseract-ocr && \ + echo "**** install unrar ****" && \ + mkdir /tmp/unrar && \ + curl -o /tmp/unrar.tar.gz \ + -L "https://www.rarlab.com/rar/unrarsrc-6.1.4.tar.gz" && \ + tar xf /tmp/unrar.tar.gz -C \ + /tmp/unrar --strip-components=1 && \ + cd /tmp/unrar && \ + make && \ + make install && \ + mkdir -p /usr/share/licenses/unrar && \ + mv license.txt /usr/share/licenses/unrar/ && \ + echo "**** install pyload ****" && \ + if [ -z ${PYLOAD_VERSION+x} ]; then \ + PYLOAD="pyload-ng[all]"; \ + else \ + PYLOAD="pyload-ng[all]==${PYLOAD_VERSION}"; \ + fi && \ + pip3 install -U pip setuptools wheel && \ + pip install -U --find-links https://wheel-index.linuxserver.io/alpine-3.15/ \ + "${PYLOAD}" && \ + echo "**** cleanup ****" && \ + apk del --purge \ + build-dependencies && \ + rm -rf \ + /tmp/* \ + ${HOME}/.cache \ + ${HOME}/.cargo + +# add local files +COPY root/ / + +# ports and volumes +EXPOSE 8000 +VOLUME /config diff --git a/root/defaults/pyload.cfg b/root/defaults/pyload.cfg new file mode 100644 index 0000000..81b5e28 --- /dev/null +++ b/root/defaults/pyload.cfg @@ -0,0 +1,65 @@ +version: 2 + +general - "General": + en; language : "Language" = en + folder storage_folder : "Download Folder" = /downloads + bool debug_mode : "Debug Mode" = True + debug;trace;stack debug_level : "Debug Level" = trace + int min_free_space : "Min Free Space in MiB" = 1024 + bool folder_per_package : "Create folder for each package" = True +permission - "Permissions": + bool change_user : "Change user of running process" = False + str user : "Username" = abc + str folder : "Folder Permission mode" = 0755 + bool change_file : "Change file mode of downloads" = False + str file : "Filemode for Downloads" = 0644 + bool change_group : "Change group of running process" = False + str group : "Groupname" = abc + bool change_dl : "Change Group and User of Downloads" = False +download - "Download": + int chunks : "Max connections for one download" = 3 + int max_downloads : "Max Parallel Downloads" = 3 + int max_speed : "Max Download Speed in KiB/s" = -1 + bool limit_speed : "Limit Download Speed" = False + ip interface : "Download interface to bind (IP Address)" = + bool ipv6 : "Allow IPv6" = False + bool skip_existing : "Skip already existing files" = False + time start_time : "Start" = 0:00 + time end_time : "End" = 0:00 +reconnect - "Reconnection": + bool enabled : "Activated" = False + str script : "Script" = + time start_time : "Start" = 0:00 + time end_time : "End" = 0:00 +webui - "Web Interface": + bool enabled : "Activated" = True + bool use_ssl : "Use HTTPS" = False + bool develop : "Development mode" = False + file ssl_certfile : "SSL Certificate" = ssl.crt + file ssl_keyfile : "SSL Key" = ssl.key + file ssl_certchain : "CA's intermediate certificate bundle (optional)" = + ip host : "IP Address" = 0.0.0.0 + int port : "Port" = 8000 + Default;modern;pyplex theme : "Theme" = pyplex + bool autologin : "Skip login if single user" = False + str prefix: "Path Prefix" = +proxy - "Proxy": + bool enabled : "Activated" = False + ip host : "IP Address" = localhost + int port : "Port" = 7070 + http;socks4;socks5 type : "Protocol" = http + str username : "Username" = + password password : "Password" = +log - "Log": + bool console : "Print log to console" = True + bool console_color : "Colorize console" = False + bool syslog : "Sent log to syslog" = False + local;remote syslog_location : "Syslog location" = local + folder syslog_folder : "Syslog local folder" = + ip syslog_host : "Syslog remote IP Address" = localhost + int syslog_port : "Syslog remote Port" = 514 + bool filelog : "Save log to file" = True + int filelog_size : "Max file size (in KiB)" = 5120 + folder filelog_folder : "File folder" = + int filelog_entries : "Max log files" = 10 + bool filelog_rotate : "Log rotate" = True diff --git a/root/etc/cont-init.d/30-config b/root/etc/cont-init.d/30-config new file mode 100644 index 0000000..5fac058 --- /dev/null +++ b/root/etc/cont-init.d/30-config @@ -0,0 +1,19 @@ +#!/usr/bin/with-contenv bash + +# create our folders +mkdir -p \ + /config/settings \ + /downloads + +# default config file +[[ ! -f "/config/settings/pyload.cfg" ]] && \ + cp \ + /defaults/pyload.cfg \ + /config/settings/pyload.cfg + +# permissions +echo "[cont-init.d] Setting permissions this may take some time" +chown -R abc:abc \ + /config +chown abc:abc \ + /downloads diff --git a/root/etc/services.d/pyload/run b/root/etc/services.d/pyload/run new file mode 100644 index 0000000..bcc4e2e --- /dev/null +++ b/root/etc/services.d/pyload/run @@ -0,0 +1,4 @@ +#!/usr/bin/with-contenv bash + +exec \ + s6-setuidgid abc pyload --userdir /config --storagedir /downloads