50 Commits

Author SHA1 Message Date
20e0155e8c fix pipe
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-29 18:31:58 +01:00
dcb47da9f7 fix pipe
Some checks failed
continuous-integration/drone/push Build is failing
2025-03-29 18:28:53 +01:00
be642e2c4d fix pipe
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2025-03-29 18:26:16 +01:00
46585688c6 update pipeline
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2025-03-29 18:22:57 +01:00
837235524a fix pipe
Some checks failed
continuous-integration/drone/push Build is failing
2025-03-29 17:52:32 +01:00
92223686ff fix pipe...
Some checks failed
continuous-integration/drone/push Build is failing
2025-03-29 17:46:50 +01:00
8a9583e3a3 fix pipe???
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-29 17:41:49 +01:00
1fb403fd64 fix pipe
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-29 17:37:39 +01:00
fb01815c85 fix yaml
Some checks failed
continuous-integration/drone/tag Build is failing
2025-03-29 17:30:59 +01:00
9c11f1705c also push to latest
Some checks reported errors
continuous-integration/drone/tag Build encountered an error
2025-03-29 17:27:50 +01:00
aad30fda0f also push to latest
All checks were successful
continuous-integration/drone/tag Build is passing
2025-03-29 17:18:32 +01:00
3b63958dce also push to latest
All checks were successful
continuous-integration/drone/tag Build is passing
2025-03-29 17:07:29 +01:00
d8a3cba654 switch to tags
All checks were successful
continuous-integration/drone/tag Build is passing
2025-03-29 17:01:10 +01:00
844ac546e5 specify platform
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-28 22:38:01 +01:00
f121308163 Update README.md
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-28 14:06:20 +01:00
581ee0ddf7 Revert "Merge pull request 'Update ubuntu Docker tag to v24' (#2) from renovate/ubuntu-24.x into master"
All checks were successful
continuous-integration/drone/push Build is passing
This reverts commit 31a1ad4e72, reversing
changes made to f8ee0b97d6.
2025-03-27 00:32:39 +01:00
31a1ad4e72 Merge pull request 'Update ubuntu Docker tag to v24' (#2) from renovate/ubuntu-24.x into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #2
2025-03-27 00:27:21 +01:00
f8ee0b97d6 speedup docker manifest
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-27 00:25:21 +01:00
a7a9d8da38 specify node arch in .drone.yml
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-27 00:17:28 +01:00
9f94cce6e1 Revert "try arm build"
Some checks reported errors
continuous-integration/drone/push Build was killed
This reverts commit f268698aa6.
2025-03-27 00:13:25 +01:00
f268698aa6 try arm build
Some checks reported errors
continuous-integration/drone/push Build was killed
2025-03-27 00:03:11 +01:00
2ba53a33b6 Update ubuntu Docker tag to v24
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-26 23:00:18 +00:00
7da161ce64 update multiarch build
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-26 23:52:43 +01:00
c4bec8ef22 update drone pipe
Some checks failed
continuous-integration/drone/push Build is failing
2025-03-26 23:32:32 +01:00
b4c3060875 update drone
Some checks reported errors
continuous-integration/drone/push Build was killed
2025-03-26 17:45:23 +01:00
ea292b24e8 Revert "update drone"
Some checks reported errors
continuous-integration/drone/push Build was killed
This reverts commit 20f84970d1.
2025-03-26 17:22:35 +01:00
20f84970d1 update drone
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2025-03-26 17:20:19 +01:00
457337130c update pipe
Some checks reported errors
continuous-integration/drone/push Build was killed
2025-03-26 17:06:24 +01:00
7c3e0d4735 temp fix drone build
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-26 16:49:46 +01:00
90c9790b60 update drone
Some checks reported errors
continuous-integration/drone/push Build was killed
2025-03-25 04:28:06 +01:00
3acc2ff6a0 update drone
Some checks reported errors
continuous-integration/drone/push Build was killed
2025-03-25 04:26:09 +01:00
21e25c0094 try amd64
Some checks reported errors
continuous-integration/drone/push Build was killed
2025-03-25 04:13:34 +01:00
fc80e68287 fix dockerfile
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-25 04:06:23 +01:00
898a44ec3c use drone plugin
Some checks failed
continuous-integration/drone/push Build is failing
2025-03-25 04:02:52 +01:00
e8001b43d4 update drone
Some checks failed
continuous-integration/drone/push Build is failing
2025-03-25 03:57:43 +01:00
13fc4f61cc try drone update
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2025-03-25 03:55:47 +01:00
af7484183c fix arch
Some checks failed
continuous-integration/drone/push Build is failing
2025-03-25 03:20:50 +01:00
8a1e4c9092 fix drone
Some checks reported errors
continuous-integration/drone/push Build was killed
2025-03-25 03:19:53 +01:00
61facdcc76 rename drone
Some checks reported errors
continuous-integration/drone/push Build was killed
2025-03-25 02:56:59 +01:00
15b922acca disable github pipes 2025-03-25 02:56:14 +01:00
ef0c504e00 add drone dev pipe
Some checks failed
Build/Push (master) / changes (push) Has been cancelled
Build/Push (master) / build-docker (push) Has been cancelled
2025-03-25 02:54:35 +01:00
7df3678862 fix dockerfile
Some checks are pending
Build/Push (master) / changes (push) Waiting to run
Build/Push (master) / build-docker (push) Blocked by required conditions
2025-03-25 02:14:39 +01:00
1dc35dd7ee fix multiarch...
Some checks are pending
Build/Push (master) / changes (push) Waiting to run
Build/Push (master) / build-docker (push) Blocked by required conditions
2025-03-25 02:09:56 +01:00
ec3bce5731 fix dockerfile
Some checks are pending
Build/Push (master) / changes (push) Waiting to run
Build/Push (master) / build-docker (push) Blocked by required conditions
2025-03-25 02:01:45 +01:00
b362934ce9 update dockerfile
Some checks are pending
Build/Push (master) / changes (push) Waiting to run
Build/Push (master) / build-docker (push) Blocked by required conditions
2025-03-25 01:54:48 +01:00
044a65a0d9 Revert "update ubuntu version"
Some checks are pending
Build/Push (master) / changes (push) Waiting to run
Build/Push (master) / build-docker (push) Blocked by required conditions
This reverts commit ce2f1a966e.
2025-03-25 01:45:06 +01:00
ce2f1a966e update ubuntu version
Some checks are pending
Build/Push (master) / changes (push) Waiting to run
Build/Push (master) / build-docker (push) Blocked by required conditions
2025-03-25 01:44:09 +01:00
28d1519e75 try to fix multiarch build
Some checks are pending
Build/Push (master) / changes (push) Waiting to run
Build/Push (master) / build-docker (push) Blocked by required conditions
2025-03-25 01:33:28 +01:00
69c54e53ae Merge remote-tracking branch 'upstream/master'
Some checks are pending
Build/Push (master) / changes (push) Waiting to run
Build/Push (master) / build-docker (push) Blocked by required conditions
2025-03-25 01:27:15 +01:00
10d57f7e8e update base ubuntu ver 2025-03-25 01:26:43 +01:00
12 changed files with 285 additions and 56 deletions

130
.drone.yml Normal file
View File

@@ -0,0 +1,130 @@
---
kind: pipeline
type: kubernetes
name: amd64-main
node_selector: # Ensure this runs on an amd64 runner
kubernetes.io/arch: amd64
trigger: # Only run on pushes to the main branch
event: [ push ]
branch: [ main ]
steps:
- name: build_push_amd64_latest
image: plugins/docker # Use Docker plugin to build and push image
settings:
repo: bottledpills/deluge-openvpn
dockerfile: docker/Dockerfile.amd64
tags:
- latest-linux-amd64 # Tag for amd64 variant (main branch → "latest")
username:
from_secret: docker_username # Docker registry credentials (secret)
password:
from_secret: docker_password
---
kind: pipeline
type: kubernetes
name: arm64-main
node_selector: # Ensure this runs on an arm64 runner
kubernetes.io/arch: arm64
trigger: # Only run on pushes to the main branch
event: [ push ]
branch: [ main ]
steps:
- name: build_push_arm64_latest
image: plugins/docker
settings:
repo: bottledpills/deluge-openvpn
dockerfile: docker/Dockerfile.arm64
tags:
- latest-linux-arm64 # Tag for arm64 variant (main branch → "latest")
username:
from_secret: docker_username
password:
from_secret: docker_password
---
kind: pipeline
type: kubernetes
name: amd64-tag
node_selector:
kubernetes.io/arch: amd64
trigger: # Only run on creation of Git tags (releases)
event: [ tag ]
steps:
- name: build_push_amd64_version
image: plugins/docker
settings:
repo: bottledpills/deluge-openvpn
dockerfile: docker/Dockerfile.amd64
# Use Drone env substitution to strip the leading "v" from the tag [oai_citation_attribution:0‡docs.drone.io](https://docs.drone.io/pipeline/environment/substitution/#:~:text=,0)
tags:
- ${DRONE_TAG##v}-linux-amd64 # e.g. "v2.0.1" → "2.0.1-linux-amd64"
username:
from_secret: docker_username
password:
from_secret: docker_password
---
kind: pipeline
type: kubernetes
name: arm64-tag
node_selector:
kubernetes.io/arch: arm64
trigger: # Only run on creation of Git tags (releases)
event: [ tag ]
steps:
- name: build_push_arm64_version
image: plugins/docker
settings:
repo: bottledpills/deluge-openvpn
dockerfile: docker/Dockerfile.arm64
tags:
- ${DRONE_TAG##v}-linux-arm64 # e.g. "v2.0.1" → "2.0.1-linux-arm64"
username:
from_secret: docker_username
password:
from_secret: docker_password
---
kind: pipeline
type: kubernetes
name: manifest-main
# The manifest step can run on either architecture; we'll use amd64 for consistency
node_selector:
kubernetes.io/arch: amd64
trigger: # Run on main branch pushes (to create "latest" manifest)
event: [ push ]
branch: [ main ]
depends_on: # Wait for both arch images to be built and pushed
- amd64-main
- arm64-main
steps:
- name: push_manifest_latest
image: plugins/manifest # Drone manifest plugin to create multi-arch manifest
settings:
username:
from_secret: docker_username
password:
from_secret: docker_password
spec: docker/manifest.tmpl # Use external manifest template for tags and images
---
kind: pipeline
type: kubernetes
name: manifest-tag
node_selector:
kubernetes.io/arch: amd64
trigger: # Run on tag events (to create versioned manifest)
event: [ tag ]
depends_on:
- amd64-tag
- arm64-tag
steps:
- name: push_manifest_version
image: plugins/manifest
settings:
username:
from_secret: docker_username
password:
from_secret: docker_password
spec: docker/manifest.tmpl # Same template handles both latest and version tags

View File

@@ -1,54 +0,0 @@
FROM ubuntu:18.04
ARG DEBIAN_FRONTEND="noninteractive"
RUN set -ex; \
apt-get update && \
apt-get -y install software-properties-common && \
add-apt-repository -u ppa:deluge-team/stable && \
apt-get update && apt-get -y install dumb-init iputils-ping dnsutils bash jq net-tools openvpn curl ufw deluged deluge-web p7zip-full unrar unzip && \
echo "Cleanup"; \
rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/* && \
echo "Adding user"; \
groupmod -g 1000 users && \
useradd -u 911 -U -d /config -s /bin/false abc && \
usermod -G users abc
# Add configuration and scripts
COPY root/ /
ENV OPENVPN_USERNAME=**None** \
OPENVPN_PASSWORD=**None** \
OPENVPN_PROVIDER=**None** \
GLOBAL_APPLY_PERMISSIONS=true \
TZ=Europe/Berlin \
DELUGE_WEB_PORT=8112 \
DELUGE_DEAMON_PORT=58846 \
DELUGE_DOWNLOAD_DIR=/download/completed \
DELUGE_INCOMPLETE_DIR=/download/incomplete \
DELUGE_TORRENT_DIR=/download/torrents \
DELUGE_WATCH_DIR=/download/watch \
CREATE_TUN_DEVICE=true \
ENABLE_UFW=false \
UFW_ALLOW_GW_NET=false \
UFW_EXTRA_PORTS= \
UFW_DISABLE_IPTABLES_REJECT=false \
PUID= \
PGID= \
UMASK=022 \
PEER_DNS=true \
PEER_DNS_PIN_ROUTES=true \
DROP_DEFAULT_ROUTE= \
HEALTH_CHECK_HOST=google.com \
LOG_TO_STDOUT=false \
DELUGE_LISTEN_PORT_LOW=53394 \
DELUGE_LISTEN_PORT_HIGH=53404 \
DELUGE_OUTGOING_PORT_LOW=63394 \
DELUGE_OUTGOING_PORT_HIGH=63404
HEALTHCHECK --interval=1m CMD /etc/scripts/healthcheck.sh
# Deluge Deamon and web
EXPOSE 8112 58846
CMD ["dumb-init", "/etc/openvpn/init.sh"]

View File

@@ -1,7 +1,7 @@
# OpenVPN and Deluge with WebUI
![Build/Push (master)](https://github.com/ebrianne/docker-deluge-openvpn/workflows/Build/Push%20(master)/badge.svg?branch=master)
[![Docker Pulls](https://img.shields.io/docker/pulls/ebrianne/docker-deluge-openvpn.svg)](https://hub.docker.com/r/ebrianne/docker-deluge-openvpn/)
[![Build Status](https://drone.beatrice.wtf/api/badges/bea/docker-deluge-openvpn/status.svg)](https://drone.beatrice.wtf/bea/docker-deluge-openvpn)
[![Docker Pulls](https://img.shields.io/docker/pulls/bottledpills/deluge-openvpn.svg)](https://hub.docker.com/r/bottledpills/deluge-openvpn/)
## Acknowledgments

70
docker/Dockerfile.amd64 Normal file
View File

@@ -0,0 +1,70 @@
FROM ubuntu:22.04
ARG DEBIAN_FRONTEND="noninteractive"
ENV DUMB_INIT_BASE_URL="https://github.com/Yelp/dumb-init/releases/download/v1.2.5"
# Step 1: Install prerequisites
RUN apt-get update && apt-get -y install curl software-properties-common
# Step 2: Add the Deluge PPA and update apt cache
RUN add-apt-repository -u ppa:deluge-team/stable && apt-get update
# Step 3: Download dumb-init asset for amd64
RUN curl -Lo /tmp/dumb-init "$DUMB_INIT_BASE_URL/dumb-init_1.2.5_amd64.deb"
# Step 4: Install dumb-init for amd64
RUN dpkg-deb -x /tmp/dumb-init /tmp/dumb-init-dir && \
cp /tmp/dumb-init-dir/usr/bin/dumb-init /usr/local/bin/dumb-init && \
chmod +x /usr/local/bin/dumb-init && \
rm -rf /tmp/dumb-init /tmp/dumb-init-dir
# Step 5: Install other dependencies
RUN apt-get -y install iputils-ping dnsutils bash jq net-tools openvpn curl ufw deluged deluge-web p7zip-full unrar unzip
# Step 6: Clean up apt cache and temporary files
RUN rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
# Step 7: Add the user "abc"
RUN groupmod -g 1000 users && \
useradd -u 911 -U -d /config -s /bin/false abc && \
usermod -G users abc
# Step 8: Copy configuration and scripts
COPY root/ /
# Step 9: Set environment variables
ENV OPENVPN_USERNAME=**None** \
OPENVPN_PASSWORD=**None** \
OPENVPN_PROVIDER=**None** \
GLOBAL_APPLY_PERMISSIONS=true \
TZ=Europe/Berlin \
DELUGE_WEB_PORT=8112 \
DELUGE_DEAMON_PORT=58846 \
DELUGE_DOWNLOAD_DIR=/download/completed \
DELUGE_INCOMPLETE_DIR=/download/incomplete \
DELUGE_TORRENT_DIR=/download/torrents \
DELUGE_WATCH_DIR=/download/watch \
CREATE_TUN_DEVICE=true \
ENABLE_UFW=false \
UFW_ALLOW_GW_NET=false \
UFW_EXTRA_PORTS= \
UFW_DISABLE_IPTABLES_REJECT=false \
PUID= \
PGID= \
UMASK=022 \
PEER_DNS=true \
PEER_DNS_PIN_ROUTES=true \
DROP_DEFAULT_ROUTE= \
HEALTH_CHECK_HOST=google.com \
LOG_TO_STDOUT=false \
DELUGE_LISTEN_PORT_LOW=53394 \
DELUGE_LISTEN_PORT_HIGH=53404 \
DELUGE_OUTGOING_PORT_LOW=63394 \
DELUGE_OUTGOING_PORT_HIGH=63404
# Step 10: Configure health check and expose ports
HEALTHCHECK --interval=1m CMD /etc/scripts/healthcheck.sh
EXPOSE 8112 58846
# Step 11: Set default command
CMD ["/usr/local/bin/dumb-init", "/etc/openvpn/init.sh"]

69
docker/Dockerfile.arm64 Normal file
View File

@@ -0,0 +1,69 @@
FROM ubuntu:22.04
ARG DEBIAN_FRONTEND="noninteractive"
ENV DUMB_INIT_BASE_URL="https://github.com/Yelp/dumb-init/releases/download/v1.2.5"
# Step 1: Install prerequisites
RUN apt-get update && apt-get -y install curl software-properties-common
# Step 2: Add the Deluge PPA and update apt cache
RUN add-apt-repository -u ppa:deluge-team/stable && apt-get update
# Step 3: Download dumb-init asset for arm64
RUN curl -Lo /tmp/dumb-init "$DUMB_INIT_BASE_URL/dumb-init_1.2.5_aarch64"
# Step 4: Install dumb-init for arm64
RUN cp /tmp/dumb-init /usr/local/bin/dumb-init && \
chmod +x /usr/local/bin/dumb-init && \
rm -rf /tmp/dumb-init
# Step 5: Install other dependencies
RUN apt-get -y install iputils-ping dnsutils bash jq net-tools openvpn curl ufw deluged deluge-web p7zip-full unrar unzip
# Step 6: Clean up apt cache and temporary files
RUN rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
# Step 7: Add the user "abc"
RUN groupmod -g 1000 users && \
useradd -u 911 -U -d /config -s /bin/false abc && \
usermod -G users abc
# Step 8: Copy configuration and scripts
COPY root/ /
# Step 9: Set environment variables
ENV OPENVPN_USERNAME=**None** \
OPENVPN_PASSWORD=**None** \
OPENVPN_PROVIDER=**None** \
GLOBAL_APPLY_PERMISSIONS=true \
TZ=Europe/Berlin \
DELUGE_WEB_PORT=8112 \
DELUGE_DEAMON_PORT=58846 \
DELUGE_DOWNLOAD_DIR=/download/completed \
DELUGE_INCOMPLETE_DIR=/download/incomplete \
DELUGE_TORRENT_DIR=/download/torrents \
DELUGE_WATCH_DIR=/download/watch \
CREATE_TUN_DEVICE=true \
ENABLE_UFW=false \
UFW_ALLOW_GW_NET=false \
UFW_EXTRA_PORTS= \
UFW_DISABLE_IPTABLES_REJECT=false \
PUID= \
PGID= \
UMASK=022 \
PEER_DNS=true \
PEER_DNS_PIN_ROUTES=true \
DROP_DEFAULT_ROUTE= \
HEALTH_CHECK_HOST=google.com \
LOG_TO_STDOUT=false \
DELUGE_LISTEN_PORT_LOW=53394 \
DELUGE_LISTEN_PORT_HIGH=53404 \
DELUGE_OUTGOING_PORT_LOW=63394 \
DELUGE_OUTGOING_PORT_HIGH=63404
# Step 10: Configure health check and expose ports
HEALTHCHECK --interval=1m CMD /etc/scripts/healthcheck.sh
EXPOSE 8112 58846
# Step 11: Set default command
CMD ["/usr/local/bin/dumb-init", "/etc/openvpn/init.sh"]

14
docker/manifest.tmpl Normal file
View File

@@ -0,0 +1,14 @@
# docker/manifest.tmpl
image: bottledpills/deluge-openvpn:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
manifests:
- image: bottledpills/deluge-openvpn:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
platform:
architecture: amd64
os: linux
- image: bottledpills/deluge-openvpn:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
platform:
architecture: arm64
os: linux
variant: v8