commit 2f66143916e8535a7c84093cea731678ed125a5f Author: Arnaud G. GIBERT Date: Fri May 23 13:33:16 2025 +0200 - Initial release, - Based on rx3-docker/server:1.2.2-mga9 image, - Support Docker Tools 1.4.x. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..556bc65 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*~ +*.old diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..77ab096 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,96 @@ +# Rx3-Docker/Deluge Dockerfile +#------------------------------------------------------------------------------- + +ARG IMG_FROM_URL="rx3-docker/server:latest" + +FROM ${IMG_FROM_URL} + +ARG IMG_NAME +ARG IMG_NAME_FULL +ARG IMG_VERSION +ARG IMG_MAINTAINER + +LABEL org.rx3.${IMG_NAME}.name=${IMG_NAME_FULL} +LABEL org.rx3.${IMG_NAME}.version=${IMG_VERSION} +LABEL org.rx3.${IMG_NAME}.maintainer=${IMG_MAINTAINER} +LABEL maintainer=${IMG_MAINTAINER} + +ARG DELUGE_PORT_DAEMON +ARG DELUGE_PORT_WEB + +ARG DELUGE_LIB=/var/lib/deluge +ARG DELUGE_SPOOL=/var/spool/deluge +ARG DELUGE_HOME=${DELUGE_LIB} +ARG DELUGE_CONFIG=${DELUGE_HOME} +ARG DELUGE_CONFIG_TEMPLATE=${DELUGE_HOME}-template + + +#---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ARG DELUGED='#!/bin/bash \n\ + \n\ +usermod -u ${DELUGE_UID} deluge \n\ +groupmod -g ${DELUGE_GID} deluge \n\ + \n\ +if [[ ! -f '${DELUGE_CONFIG}'/auth ]] \n\ +then \n\ + cp -R '${DELUGE_CONFIG_TEMPLATE}'/* '${DELUGE_CONFIG}' \n\ + \n\ + deluged --config '${DELUGE_CONFIG}' \n\ + \n\ + deluge-console --config '${DELUGE_CONFIG}' config --set allow_remote true \n\ + deluge-console --config '${DELUGE_CONFIG}' config --set copy_torrent_file true \n\ + deluge-console --config '${DELUGE_CONFIG}' config --set move_completed true \n\ + \n\ + deluge-console --config '${DELUGE_CONFIG}' config --set listen_ports "[${DELUGE_PORT_BT_LOW},${DELUGE_PORT_BT_HIGH}]" \n\ + \n\ + deluge-console --config '${DELUGE_CONFIG}' config --set download_location '${DELUGE_SPOOL}'/tmp \n\ + deluge-console --config '${DELUGE_CONFIG}' config --set move_completed_path '${DELUGE_SPOOL}'/completed \n\ + deluge-console --config '${DELUGE_CONFIG}' config --set plugins_location '${DELUGE_CONFIG}'/plugins \n\ + deluge-console --config '${DELUGE_CONFIG}' config --set torrentfiles_location '${DELUGE_SPOOL}'/torrent \n\ + \n\ + deluge-console --config '${DELUGE_CONFIG}' plugin --enable Label Stats WebUi \n\ + \n\ + deluge-console --config '${DELUGE_CONFIG}' halt \n\ + \n\ + echo "deluge:delugeadmin:10" >> '${DELUGE_CONFIG}'/auth \n\ + \n\ + echo "{\n \"file\": 1,\n \"format\": 1\n}{\n \"enabled\": true,\n \"port\": '${DELUGE_PORT_WEB}',\n \"ssl\": false\n}" > '${DELUGE_CONFIG}'/web_plugin.conf \n\ +fi \n\ + \n\ +for dir in torrent tmp completed \n\ +do \n\ + if [[ ! -d '${DELUGE_SPOOL}'/${dir} ]] \n\ + then \n\ + mkdir '${DELUGE_SPOOL}'/${dir} \n\ + fi \n\ +done \n\ + \n\ +chown -R deluge:deluge '${DELUGE_LIB}' '${DELUGE_SPOOL} +#---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +#---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ARG DELUGED_INI='[program:deluged] \n\ +directory='${DELUGE_HOME}' \n\ +command=deluged --config '${DELUGE_CONFIG}' --do-not-daemonize \n\ +user=deluge \n\ +environment=HOME='${DELUGE_HOME} +#---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + + +RUN urpmi.update -a \ + && urpmi --force deluge myip --no-recommends \ + && useradd --home-dir ${DELUGE_HOME} --password "" deluge \ + && mkdir ${DELUGE_SPOOL} \ + && echo -e "${DELUGED}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/deluged \ + && chmod a+x /etc/init.d/deluged \ + && ln -s /etc/init.d/deluged /etc/rcD.d/S30deluged \ + && echo -e "${DELUGED_INI}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/supervisord.d/deluged.ini \ + && deluged --config ${DELUGE_CONFIG_TEMPLATE} \ + && deluge-console --config ${DELUGE_CONFIG_TEMPLATE} halt + + + +EXPOSE ${DELUGE_PORT_DAEMON} +EXPOSE ${DELUGE_PORT_WEB} + diff --git a/ReadMe.txt b/ReadMe.txt new file mode 100644 index 0000000..b23c605 --- /dev/null +++ b/ReadMe.txt @@ -0,0 +1,19 @@ +Welcome to Rx3-Docker/Deluge docker image! + + + +This project aims to build a Deluge docker image. + +Features: + - Curtently based on rx3-docker/server:1.2.2-mga9 image, + - Deluge Web plugin enabled. + + + +Enjoy it! + +Your Rx3 Team. + +-- +arnaud@rx3.net +https://git.rx3.org/gitea/rx3-docker/deluge diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt new file mode 100644 index 0000000..7ffd720 --- /dev/null +++ b/ReleaseNotes.txt @@ -0,0 +1,7 @@ +------------------------------------------------------------------------------------------------------------------------------------ +Rx3-Docker/Deluge V 1.0.0 - A. GIBERT - 2025/05/23 +------------------------------------------------------------------------------------------------------------------------------------ + +- Initial release, +- Based on rx3-docker/server:1.2.2-mga9 image, +- Support Docker Tools 1.4.x. diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..345bcac --- /dev/null +++ b/compose.yaml @@ -0,0 +1,71 @@ +# Rx3-Docker/Deluge Docker Image +#------------------------------------------------------------------------------- + +name: ${HOST_NAME_PREFIX} + +services: + +#------------------------------------------------------------------------------- + + peer-2-peer: + container_name: ${P2P_HOST_NAME} + hostname: ${P2P_HOST_NAME} + + image: ${P2P_IMG_URL} + + build: + args: + IMG_NAME: ${P2P_IMG_URL} + IMG_NAME_FULL: ${P2P_IMG_NAME_FULL} + IMG_VERSION: ${P2P_IMG_VERSION} + IMG_MAINTAINER: ${P2P_IMG_MAINTAINER} + IMG_FROM_URL: ${P2P_IMG_FROM_URL} + + DELUGE_PORT_DAEMON: ${P2P_PORT_MAIN_INT} + DELUGE_PORT_WEB: ${P2P_PORT_ADMIN_INT} + + restart: unless-stopped + + environment: + DELUGE_UID: ${P2P_USER_ID} + DELUGE_GID: ${P2P_GROUP_ID} + DELUGE_PORT_BT_LOW: ${P2P_PORT_BT_LOW} + DELUGE_PORT_BT_HIGH: ${P2P_PORT_BT_HIGH} + +# healthcheck: +# test: /opt/appl/kafka/bin/kafka-cluster.sh cluster-id --bootstrap-server localhost:${P2P_PORT_MAIN_INT} +# interval: 30s +# timeout: 10s +# start_period: 60s +# start_interval: 10s +# retries: 30 + + volumes: + - ./${P2P_LIB_EXT}:${P2P_LIB_INT} + - ./${P2P_LOG_INIT_EXT}:${P2P_LOG_INIT_INT} + - ./${P2P_LOG_SV_EXT}:${P2P_LOG_SV_INT} + - ./${P2P_SPOOL_EXT}:${P2P_SPOOL_INT} + + networks: + proxy: + ipv4_address: ${NETWORK_ADDRESS} + + ports: + - "127.0.0.1:${P2P_PORT_SV_EXT}:${P2P_PORT_SV_INT}" + - "127.0.0.1:${P2P_PORT_MAIN_EXT}:${P2P_PORT_MAIN_INT}" + - "127.0.0.1:${P2P_PORT_ADMIN_EXT}:${P2P_PORT_ADMIN_INT}" + + + +#------------------------------------------------------------------------------- + +networks: + proxy: + name: ${NETWORK_NAME} + driver: bridge + driver_opts: + com.docker.network.bridge.name: ${NETWORK_IF_NAME} + ipam: + config: + - subnet: ${NETWORK_SUBNET} + gateway: ${NETWORK_GATEWAY} diff --git a/env.dist b/env.dist new file mode 100644 index 0000000..716761a --- /dev/null +++ b/env.dist @@ -0,0 +1,95 @@ +# Rx3-Docker/Deluge Docker Image +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +# Global Settings +#------------------------------------------------------------------------------- + +ORG_NAME="rx3-docker" +ORG_REGISTRY="docker.xor.rx3:5000" +ORG_MAINTAINER='"Arnaud G. GIBERT" ' + +ORG_URL_PREFIX="${ORG_REGISTRY}/${ORG_NAME}" + + + +#------------------------------------------------------------------------------- +# Image Settings +#------------------------------------------------------------------------------- + +APPL_NAME="deluge" +APPL_NAME_FULL="Deluge Proxy" +APPL_NAME_SHORT="deluge" +APPL_ORG="rx3" +APPL_VERSION="1.0.0" +APPL_MAINTAINER='"Arnaud G. GIBERT" ' + +APPL_URL_PREFIX="${ORG_REGISTRY}/${APPL_ORG}" + + + +#------------------------------------------------------------------------------- +# User Settings +#------------------------------------------------------------------------------- + +APPL_ENV="0" +APPL_NAME_SHORT="vir" + + + +#------------------------------------------------------------------------------- +# Common +#------------------------------------------------------------------------------- + +if [[ "${APPL_ENV}" != "prd" ]] +then + APPL_SUFFIX="-${APPL_ENV}" + PORT_ENV_OFFSET=100 +else + APPL_SUFFIX="" + PORT_ENV_OFFSET=0 +fi + +APPL_USER="apache" +APPL_GROUP="apache" + +HOST_NAME_PREFIX=${APPL_NAME}${APPL_SUFFIX} + +NETWORK_NAME=${HOST_NAME_PREFIX} +NETWORK_IF_NAME=br-${APPL_NAME_SHORT}-${APPL_ENV} + +PORT_ENV_OFFSET=0 + +PORT_SV_INT=9001 +PORT_SV_OFFSET=1000 + +DOCKER_TOOLS_DEBUG=FALSE +DOCKER_TOOLS_VOLUME=SINGLE + + + +#------------------+----------+--------------------------+--------------------+------------------+-------------------------------+----------------------+--------------------+---------------+------------+--------------+------------+-------+-------+-------+-------+--------------+--------------+ +# | Variable | Service | Target Image | From Image | Module | Main Port | Admin Port | User | Group | +# | Prefix | Name | URL Prefix | Name | Name Full | Version | URL Prefix | Name | Version | Name | Version | Ext | Int | Ext | Int | Name / Id | Name / Id | +#------------------+----------+--------------------------+--------------------+------------------+-------------------------------+----------------------+--------------------+---------------+------------+--------------+------------+-------+-------+-------+-------+--------------+--------------+ + +docker_service_add P2P peer-2-peer ${ORG_URL_PREFIX} deluge "Rx3-Docker/Deluge" ${APPL_VERSION}-mga9 ${ORG_URL_PREFIX} server 1.2.2-mga9 - - 8846 58846 8847 80 arnaud apache + + + +#------------------------------------------------------------------------------- +# User Settings +#------------------------------------------------------------------------------- + +SERVER_CROND_ENABLED="FALSE" + +P2P_SPOOL_INT="/var/spool/${P2P_IMG_NAME}" +P2P_SPOOL_EXT=".${P2P_SPOOL_INT}" + +P2P_PORT_BT_LOW=2500 +P2P_PORT_BT_HIGH=2501 + +NETWORK_SUBNET=10.10.34.8/30 +NETWORK_ADDRESS=10.10.34.9 +NETWORK_GATEWAY=10.10.34.10 +NETWORK_TABLE=4