master
Simon Bruder 2020-06-03 21:17:17 +02:00
commit 917060c091
No known key found for this signature in database
GPG Key ID: 6F03E0000CC5B62F
9 changed files with 126 additions and 0 deletions

25
.drone.yml Normal file
View File

@ -0,0 +1,25 @@
kind: pipeline
name: default
steps:
- name: deluge
image: plugins/docker
settings:
registry: r.sbruder.de
username:
from_secret: docker_username
password:
from_secret: docker_password
repo: r.sbruder.de/deluge
- name: http-socket
image: plugins/docker
settings:
registry: r.sbruder.de
username:
from_secret: docker_username
password:
from_secret: docker_password
context: http-socket
dockerfile: http-socket/Dockerfile
repo: r.sbruder.de/http-socket

26
Dockerfile Normal file
View File

@ -0,0 +1,26 @@
FROM debian:testing-slim
RUN apt-get update \
&& apt-get -y install --no-install-recommends runit \
&& apt-get -y install \
deluge-console \
deluge-web \
deluged \
git \
gosu \
nginx-light \
python3-pip \
tini
RUN git clone --depth=1 https://github.com/tobbez/deluge_exporter /opt/deluge_exporter \
&& cd /opt/deluge_exporter \
&& pip3 install --no-cache-dir -r requirements.txt
COPY services /etc/service
COPY nginx.conf /etc/nginx/
COPY entrypoint.sh /usr/local/bin/
ENV PER_TORRENT_METRICS 1
ENV PUID 1000
ENTRYPOINT ["entrypoint.sh"]

5
entrypoint.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
set -u
adduser -q --gecos '' --disabled-password --uid $PUID deluge
chown deluge:deluge /download/ /config/
exec tini -- runsvdir /etc/service/

9
http-socket/Dockerfile Normal file
View File

@ -0,0 +1,9 @@
FROM alpine
RUN apk add --no-cache \
socat \
tini
EXPOSE 80
ENTRYPOINT ["tini", "--", "socat", "TCP-LISTEN:80,reuseaddr,fork,su=nobody", "UNIX-CLIENT:/var/run/nginx.sock"]

52
nginx.conf Normal file
View File

@ -0,0 +1,52 @@
# vim: set et sts=4 sw=4 ts=4:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
error_log /dev/stderr warn;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_tokens off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
client_max_body_size 32M;
server {
listen unix:/var/run/nginx.sock;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8112/;
add_header X-Frame-Options SAMEORIGIN;
# this is NOT authentication (it is in a public git repository
# after all), it is only meant to avoid automatic scans
if ($cookie_preauth != "correct horse battery staple") {
return 404;
}
}
location /download/ {
alias /download/;
autoindex on;
auth_basic "go away";
auth_basic_user_file /config/htpasswd;
}
location /metrics {
proxy_pass http://localhost:9354/metrics;
auth_basic "go away";
auth_basic_user_file /config/htpasswd;
}
}
}

2
services/deluge-web/run Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
gosu deluge deluge-web -d -c /config

2
services/deluge_exporter/run Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
DELUGE_CONFIG_DIR=/config/ gosu deluge /opt/deluge_exporter/deluge_exporter.py

2
services/deluged/run Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
gosu deluge deluged -d -c /config

3
services/nginx/run Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
rm -f /var/run/nginx.sock
nginx -g 'daemon off;'