feat: add registry mirror for build #1

Closed
slany wants to merge 0 commits from (deleted):main into main
8 changed files with 106 additions and 103 deletions

20
.drone.yml Normal file
View file

@ -0,0 +1,20 @@
kind: pipeline
name: default
steps:
- name: docker
image: plugins/docker
settings:
username: drone
password:
from_secret: maven_password
repo: docker.nyyu.dev/nyyu/pyload-ng
tags: latest
registry: docker.nyyu.dev
trigger:
branch:
- main
image_pull_secrets:
- dockerconfig

View file

@ -1,31 +1,19 @@
steps:
build:
image: woodpeckerci/plugin-kaniko
pull: true
settings:
dry-run: true
repo: ${CI_REPO_OWNER}/pyload-ng
registry: ${DOCKER_REGISTRY}
mirror: https://${DOCKER_REGISTRY}
tags: latest
build_args: VERSION=dev
when:
branch:
exclude: ${CI_REPO_DEFAULT_BRANCH}
event: [push, cron, tag, manual]
push:
image: woodpeckerci/plugin-kaniko
pull: true
pipeline:
docker:
image: woodpeckerci/plugin-docker-buildx
settings:
username:
from_secret: registry_username
password:
from_secret: registry_password
repo: ${CI_REPO_OWNER}/pyload-ng
repo: ${DOCKER_REGISTRY}/${CI_REPO_OWNER}/pyload-ng
registry: ${DOCKER_REGISTRY}
mirror: https://${DOCKER_REGISTRY}
tags: latest
build_args: VERSION=dev
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: [push, cron, tag, manual]
branch: main
event:
- push
- cron
- tag

View file

@ -1,38 +1,50 @@
FROM python:3.13.5-alpine
# set version label
ARG VERSION \
SEVENZIP_VERSION="24.09-r0"
ENV PIP_NO_CACHE_DIR=false \
PIP_ROOT_USER_ACTION=ignore
FROM ghcr.io/linuxserver/baseimage-alpine:3.16
# add local files
COPY root/ /
# set version label
ARG VERSION
LABEL build_version="pyload docker version:- ${VERSION} Build-date:- $(date +'%F')"
ENV HOME="/config"
RUN \
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 ****" && \
echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories && \
echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories && \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
gcc musl-dev \
curl-dev && \
build-base \
curl-dev \
libffi-dev \
libjpeg-turbo-dev \
openssl-dev \
python3-dev \
zlib-dev && \
echo "**** install packages ****" && \
apk add --no-cache \
curl \
ffmpeg \
libjpeg-turbo \
p7zip \
py3-pip \
python3 \
sqlite \
tesseract-ocr && \
echo "**** install pyload ****" && \
PYLOAD='https://github.com/pyload/pyload/archive/develop.zip#[all]' && \
if [[ -n "${VERSION}" && "${VERSION}" != "dev" ]]; then \
PYLOAD="pyload-ng[all]==${VERSION}"; \
fi && \
pip3 install -U "${PYLOAD}" && \
rm -rf /usr/local/share/doc && \
pip3 install -U pip setuptools wheel && \
pip install -U --find-links https://wheel-index.linuxserver.io/alpine-3.16/ \
"${PYLOAD}" && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
echo "**** add user abc ****" && \
adduser -D -u 911 -h /config abc
rm -rf \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 8000
VOLUME /config /downloads
CMD ["/start.sh"]
VOLUME /config

View file

@ -1,4 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["local>nyyu/renovate-config"]
}

View file

@ -1,68 +1,65 @@
version: 2
general - "General":
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
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_dl : "Change ownership of downloads" = False
bool change_file : "Change permissions of downloads" = False
bool change_group : "Change group of running process" = 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
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 : "Maximum connections for one download" = 3
time end_time : "End time" = 0:00
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 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 time" = 0:00
time start_time : "Start" = 0:00
time end_time : "End" = 0:00
reconnect - "Reconnection":
bool enabled : "Activated" = False
time end_time : "End time" = 0:00
str script : "Script" =
time start_time : "Start time" = 0:00
time start_time : "Start" = 0:00
time end_time : "End" = 0:00
webui - "Web Interface":
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)" =
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 use_ssl : "Use HTTPS" = False
bool autologin : "Skip login if single user" = False
str prefix: "Path Prefix" =
proxy - "Proxy":
bool enabled : "Activated" = False
ip host : "IP address" = localhost
password password : "Password" =
ip host : "IP Address" = localhost
int port : "Port" = 7070
bool socks_resolve_dns : "Enable DNS resolution through SOCKS proxy" = False
http;https;socks4;socks5 type : "Protocol" = http
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 filelog : "Save log to file" = True
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
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

View file

@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/with-contenv bash
# create our folders
mkdir -p \
@ -16,4 +16,4 @@ echo "[cont-init.d] Setting permissions this may take some time"
chown -R abc:abc \
/config
chown abc:abc \
/downloads || true
/downloads

View file

@ -0,0 +1,4 @@
#!/usr/bin/with-contenv bash
exec \
s6-setuidgid abc pyload --userdir /config --storagedir /downloads

View file

@ -1,14 +0,0 @@
#!/bin/sh
set -e
PUID=${PUID:-911}
PGID=${PGID:-911}
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"
done
exec su abc -c 'pyload --userdir /config --storagedir /downloads'