diff --git a/Dockerfile b/Dockerfile index f3a2a76..90fc944 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,22 @@ FROM python:3.13.1-alpine # set version label -ARG VERSION +ARG VERSION \ + SEVENZIP_VERSION="24.09-r0" +ENV PIP_NO_CACHE_DIR=false \ + PIP_ROOT_USER_ACTION=ignore # add local files COPY root/ / RUN \ - wget -q https://nexus.nyyu.dev/repository/files/alpine/7zip-24.09-r0.apk && \ - apk add --no-cache --allow-untrusted 7zip*.apk && \ - rm -f 7zip*.apk && \ + wget -q https://nexus.nyyu.dev/repository/files/alpine/7zip-${SEVENZIP_VERSION}.apk && \ + apk add --no-cache --allow-untrusted 7zip-${SEVENZIP_VERSION}.apk && \ + rm -f 7zip-${SEVENZIP_VERSION}.apk && \ echo "**** install packages ****" && \ apk add --no-cache --virtual=build-dependencies \ gcc musl-dev \ curl-dev && \ apk add --no-cache \ - shadow \ curl \ tesseract-ocr && \ echo "**** install pyload ****" && \ @@ -22,7 +24,8 @@ RUN \ if [[ -n "${VERSION}" && "${VERSION}" != "dev" ]]; then \ PYLOAD="pyload-ng[all]==${VERSION}"; \ fi && \ - pip3 install --no-cache-dir --break-system-packages -U legacy-cgi "${PYLOAD}" && \ + pip3 install -U legacy-cgi "${PYLOAD}" && \ + rm -rf /usr/local/share/doc && \ apk del --purge \ build-dependencies && \ echo "**** add user abc ****" && \ @@ -30,6 +33,6 @@ RUN \ # ports and volumes EXPOSE 8000 -VOLUME /config +VOLUME /config /downloads CMD ["/start.sh"] diff --git a/root/defaults/pyload.cfg b/root/defaults/pyload.cfg index 81b5e28..c2b380f 100644 --- a/root/defaults/pyload.cfg +++ b/root/defaults/pyload.cfg @@ -1,65 +1,68 @@ 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 + debug;trace;stack debug_level : "Debug level" = trace + bool debug_mode : "Debug mode" = True bool folder_per_package : "Create folder for each package" = True + en; language : "Language" = en + int min_free_space : "Minimum free space in MiB" = 1024 + bool ssl_verify : "Verify SSL certificates" = True + folder storage_folder : "Download folder" = /downloads 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_dl : "Change ownership of downloads" = False + bool change_file : "Change permissions of downloads" = False bool change_group : "Change group of running process" = False - str group : "Groupname" = abc - bool change_dl : "Change Group and User of Downloads" = False + bool change_user : "Change user of running process" = False + str file : "Permission mode for downloaded files" = 0644 + str folder : "Permission mode for created folders" = 0755 + str group : "Groupname for ownership" = abc + str user : "Username for ownership" = abc 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 + int chunks : "Maximum connections for one download" = 3 + time end_time : "End time" = 0:00 ip interface : "Download interface to bind (IP Address)" = bool ipv6 : "Allow IPv6" = False + bool limit_speed : "Limit download speed" = False + int max_downloads : "Maximum parallel downloads" = 3 + int max_speed : "Maximum download speed in KiB/s" = -1 bool skip_existing : "Skip already existing files" = False - time start_time : "Start" = 0:00 - time end_time : "End" = 0:00 + time start_time : "Start time" = 0:00 reconnect - "Reconnection": bool enabled : "Activated" = False + time end_time : "End time" = 0:00 str script : "Script" = - time start_time : "Start" = 0:00 - time end_time : "End" = 0:00 + time start_time : "Start time" = 0:00 webui - "Web Interface": - bool enabled : "Activated" = True - bool use_ssl : "Use HTTPS" = False + bool autologin : "Skip login if single user" = False bool develop : "Development mode" = False + bool enabled : "Activated" = True + ip host : "IP address" = 0.0.0.0 + int port : "Port" = 8000 + str prefix : "Path prefix" = + int session_lifetime : "Session lifetime (minutes)" = 44640 + file ssl_certchain : "CA's intermediate certificate bundle (optional)" = 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" = + bool use_ssl : "Use HTTPS" = False proxy - "Proxy": bool enabled : "Activated" = False - ip host : "IP Address" = localhost - int port : "Port" = 7070 - http;socks4;socks5 type : "Protocol" = http - str username : "Username" = + ip host : "IP address" = localhost password password : "Password" = + int port : "Port" = 7070 + bool socks_resolve_dns : "Enable DNS resolution through SOCKS proxy" = False + http;https;socks4;socks5 type : "Protocol" = http + str username : "Username" = 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 + int filelog_entries : "Maximum log files" = 10 + folder filelog_folder : "Log file folder" = bool filelog_rotate : "Log rotate" = True + int filelog_size : "Maximum file size (in KiB)" = 5120 + bool syslog : "Sent log to syslog" = False + folder syslog_folder : "Syslog local folder" = + ip syslog_host : "Syslog remote IP address" = localhost + local;remote syslog_location : "Syslog location" = local + int syslog_port : "Syslog remote port" = 514 diff --git a/root/start.sh b/root/start.sh index 1963b85..a204876 100755 --- a/root/start.sh +++ b/root/start.sh @@ -4,8 +4,8 @@ set -e PUID=${PUID:-911} PGID=${PGID:-911} -groupmod -o -g "$PGID" abc 2>/dev/null -usermod -o -u "$PUID" abc 2>/dev/null +sed -i "s/^\(abc:[^:]*:\)[0-9]*:/\1$PGID:/" /etc/group +sed -i "s/^\(abc:[^:]*:\)[0-9]*:[0-9]*:/\1$PUID:$PGID:/" /etc/passwd for f in /etc/cont-init.d/*; do sh "$f"