Compare commits
10 Commits
update_err
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| fcc8cf57e0 | |||
| 269a54c96a | |||
| 4980a19bcb | |||
| 83686d6ee6 | |||
| 646fc0447f | |||
| 5a49e922f0 | |||
| 552c51ebb8 | |||
| 46c8ab373c | |||
| 4d27950ceb | |||
| bb86de125d |
@ -1,27 +1,13 @@
|
|||||||
FROM alpine:3.20 AS base
|
FROM alpine:3.20 AS base
|
||||||
|
|
||||||
ARG PROXY_SERVER
|
|
||||||
ARG PROXY_PORT
|
|
||||||
|
|
||||||
RUN apk add --no-cache \
|
RUN apk add --no-cache \
|
||||||
python3 \
|
python3
|
||||||
iptables
|
|
||||||
|
|
||||||
ADD https://github.com/semigodking/redsocks/releases/download/release-0.71/redsocks2-x86_64-release-0.71 /bin/redsocks2
|
|
||||||
RUN chmod +x /bin/redsocks2
|
|
||||||
|
|
||||||
COPY redsocks.conf /etc/redsocks.conf
|
|
||||||
RUN sed -i "s/vPROXY-SERVER/${PROXY_SERVER}/g" /etc/redsocks.conf && \
|
|
||||||
sed -i "s/vPROXY-PORT/${PROXY_PORT}/g" /etc/redsocks.conf
|
|
||||||
|
|
||||||
RUN mkdir /services && mkdir /data
|
|
||||||
WORKDIR /services
|
|
||||||
|
|
||||||
|
|
||||||
# Install AniworldDownloader
|
|
||||||
RUN python3 -m venv aniworlddownnloader_venv && \
|
RUN mkdir services
|
||||||
aniworlddownnloader_venv/bin/pip install aniworld && \
|
RUN python3 -m venv services/aniworlddownloader_venv && \
|
||||||
mkdir /data/aniworld_downloads
|
services/aniworlddownloader_venv/bin/pip install --no-cache-dir aniworld
|
||||||
|
|
||||||
WORKDIR /
|
WORKDIR /
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
|||||||
25
aniworld/Dockerfile.i2p
Normal file
25
aniworld/Dockerfile.i2p
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
FROM alpine:3.20 AS base
|
||||||
|
|
||||||
|
ARG PROXY_SERVER
|
||||||
|
ARG PROXY_PORT
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
python3 \
|
||||||
|
iptables
|
||||||
|
|
||||||
|
ADD https://github.com/semigodking/redsocks/releases/download/release-0.71/redsocks2-x86_64-release-0.71 /bin/redsocks2
|
||||||
|
RUN chmod +x /bin/redsocks2
|
||||||
|
|
||||||
|
COPY redsocks.conf /etc/redsocks.conf
|
||||||
|
RUN sed -i "s/vPROXY-SERVER/${PROXY_SERVER}/g" /etc/redsocks.conf && \
|
||||||
|
sed -i "s/vPROXY-PORT/${PROXY_PORT}/g" /etc/redsocks.conf
|
||||||
|
|
||||||
|
RUN mkdir -p /services /var/aniworld
|
||||||
|
WORKDIR /services
|
||||||
|
|
||||||
|
RUN python3 -m venv aniworlddownloader_venv && \
|
||||||
|
aniworlddownloader_venv/bin/pip install --no-cache-dir aniworld
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
COPY entrypoint.sh.i2p /entrypoint.sh
|
||||||
|
ENTRYPOINT ["sh", "/entrypoint.sh"]
|
||||||
@ -1,7 +1,6 @@
|
|||||||
#!/usr/share/env bash
|
#!/usr/share/env bash
|
||||||
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 12345
|
|
||||||
iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDIRECT --to-port 12345
|
|
||||||
redsocks2 -c /etc/redsocks.conf
|
/services/aniworlddownloader_venv/bin/aniworld --web-ui --no-browser --web-expose --web-port 3000 --output-dir /var/aniworld/downloads &
|
||||||
/services/aniworlddownnloader_venv/bin/aniworld --web-ui --no-browser --web-expose --web-port 3000 --output-dir /data/aniworld_downloads &
|
|
||||||
|
|
||||||
while true; do sleep 1000; done
|
while true; do sleep 1000; done
|
||||||
8
aniworld/entrypoint.sh.i2p
Executable file
8
aniworld/entrypoint.sh.i2p
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/share/env bash
|
||||||
|
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 12345
|
||||||
|
iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDIRECT --to-port 12345
|
||||||
|
|
||||||
|
redsocks2 -c /etc/redsocks.conf
|
||||||
|
/services/aniworlddownloader_venv/bin//aniworld --web-ui --no-browser --web-expose --web-port 3000 --output-dir /var/aniworld/downloads &
|
||||||
|
|
||||||
|
while true; do sleep 1000; done
|
||||||
15
aniworld/wg0.conf
Normal file
15
aniworld/wg0.conf
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
[Interface]
|
||||||
|
# Key for proxmoxADS
|
||||||
|
# Bouncing = 2
|
||||||
|
# NAT-PMP (Port Forwarding) = off
|
||||||
|
# VPN Accelerator = on
|
||||||
|
# Table = off
|
||||||
|
PrivateKey = uPGxlIrs0+erepQsbnkld/aBde7qd7HwwsMrGaNtGUg=
|
||||||
|
Address = 10.2.0.2/32
|
||||||
|
DNS = 10.2.0.1
|
||||||
|
|
||||||
|
[Peer]
|
||||||
|
# NL-FREE#136
|
||||||
|
PublicKey = 8xx8LqTpTHCEWou3Wu43p2CaEqnO9kcKQrLb+C8fZw8=
|
||||||
|
AllowedIPs = 0.0.0.0/0, ::/0
|
||||||
|
Endpoint = 169.150.218.70:51820
|
||||||
106
compose.yml
106
compose.yml
@ -1,33 +1,75 @@
|
|||||||
services:
|
version: "3.8"
|
||||||
aniworld:
|
|
||||||
build:
|
|
||||||
context: aniworld
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
target: base
|
|
||||||
args:
|
|
||||||
- "PROXY_SERVER=i2pendpoint.arpa"
|
|
||||||
- "PROXY_PORT=4444"
|
|
||||||
pull_policy: build
|
|
||||||
image: katzenkralle/aniworld_served:latest
|
|
||||||
|
|
||||||
|
configs:
|
||||||
|
wg0_conf:
|
||||||
|
file: ./aniworld/wg0.conf
|
||||||
|
|
||||||
|
services:
|
||||||
|
wireguard:
|
||||||
|
image: linuxserver/wireguard
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN # Required for networking changes
|
||||||
|
- SYS_MODULE # Optional for WireGuard modules
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Europe/Berlin
|
||||||
|
restart: unless-stopped
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||||||
|
configs:
|
||||||
|
- source: wg0_conf
|
||||||
|
target: /config/wg0.conf
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
|
|
||||||
cap_add:
|
|
||||||
- NET_ADMIN
|
|
||||||
- NET_RAW
|
|
||||||
|
|
||||||
|
|
||||||
#volumes:
|
|
||||||
# - data_aniworld:/data/aniworld_downloads
|
|
||||||
|
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: true
|
traefik.enable: true
|
||||||
traefik.http.routers.aniworld.service: aniworld
|
traefik.http.routers.aniworld.service: aniworld
|
||||||
traefik.http.routers.aniworld.rule: Host(`aniworld.arpa.urmel.de`)
|
traefik.http.routers.aniworld.rule: Host(`aniworld.arpa.urmel.de`)
|
||||||
traefik.http.routers.aniworld.tls: "true"
|
traefik.http.routers.aniworld.tls: "true"
|
||||||
traefik.http.routers.aniworld.tls.certresolver: hetzner
|
traefik.http.routers.aniworld.tls.certresolver: hetzner
|
||||||
traefik.http.services.aniworld.loadbalancer.server.port: 3000
|
traefik.http.services.aniworld.loadbalancer.server.port: 8080
|
||||||
|
traefik.http.routers.aniworld.middlewares: local-only@file, traefik-auth@file
|
||||||
|
|
||||||
|
|
||||||
|
aniworld:
|
||||||
|
image: ghcr.io/phoenixthrush/aniworld-downloader:latest
|
||||||
|
user: "0:0"
|
||||||
|
network_mode: "service:wireguard"
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- data_aniworld:/app/Downloads
|
||||||
|
- config_aniworld:/home/aniworld/.aniworld
|
||||||
|
|
||||||
|
bittorrent:
|
||||||
|
image: linuxserver/qbittorrent:5.1.4
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
volumes:
|
||||||
|
- config_qbittorrent:/config
|
||||||
|
- data_qbittorrent:/downloads
|
||||||
|
ports:
|
||||||
|
- 6881:6881
|
||||||
|
- 6881:6881/udp
|
||||||
|
environment:
|
||||||
|
- PUID=0
|
||||||
|
- PGID=0
|
||||||
|
- TZ=Europe/Berlin
|
||||||
|
labels:
|
||||||
|
traefik.enable: true
|
||||||
|
traefik.http.routers.qb.rule: "Host(`qbittorrent.arpa.urmel.de`)"
|
||||||
|
traefik.http.routers.qb.tls: "true"
|
||||||
|
traefik.http.routers.qb.tls.certresolver: hetzner
|
||||||
|
traefik.http.services.qb.loadbalancer.server.port: "8080"
|
||||||
|
|
||||||
|
|
||||||
|
traefik.http.middlewares.qb-headers.headers.customRequestHeaders.X-Frame-Options: SAMEORIGIN
|
||||||
|
traefik.http.middlewares.qb-headers.headers.customRequestHeaders.Referer: ""
|
||||||
|
traefik.http.middlewares.qb-headers.headers.customRequestHeaders.Origin: ""
|
||||||
|
|
||||||
|
traefik.http.routers.qb.middlewares: local-only@file, traefik-auth@file, qb-headers
|
||||||
|
traefik.http.services.qb.loadbalancer.passhostheader: "false"
|
||||||
|
|
||||||
|
|
||||||
i2psnark:
|
i2psnark:
|
||||||
image: ypopovych/i2psnark:latest
|
image: ypopovych/i2psnark:latest
|
||||||
@ -43,22 +85,25 @@ services:
|
|||||||
|
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: true
|
traefik.enable: true
|
||||||
traefik.http.routers.i2psnark.rule: Host(`i2psnark.arpa.urmel.de`) && PathPrefix(`/i2psnark/`)
|
traefik.http.routers.i2psnark.rule: "Host(`i2psnark.arpa.urmel.de`) && (PathPrefix(`/i2psnark/`) || Path(`/`))"
|
||||||
traefik.http.routers.i2psnark.entrypoints: https
|
|
||||||
traefik.http.routers.i2psnark.tls: "true"
|
traefik.http.routers.i2psnark.tls: "true"
|
||||||
traefik.http.routers.i2psnark.tls.certresolver: hetzner
|
traefik.http.routers.i2psnark.tls.certresolver: hetzner
|
||||||
|
|
||||||
traefik.http.routers.i2psnark.service: i2psnark
|
traefik.http.routers.i2psnark.service: i2psnark
|
||||||
traefik.http.services.i2psnark.loadbalancer.server.port: "8002"
|
traefik.http.services.i2psnark.loadbalancer.server.port: "8002"
|
||||||
|
|
||||||
|
traefik.http.middlewares.i2psnark-redirect.redirectregex.regex: "^/$"
|
||||||
|
traefik.http.middlewares.i2psnark-redirect.redirectregex.replacement: "/i2psnark/"
|
||||||
|
traefik.http.middlewares.i2psnark-redirect.redirectregex.permanent: "true"
|
||||||
|
|
||||||
traefik.http.middlewares.i2psnark-headers.headers.customRequestHeaders.Host: i2psnark.arpa.urmel.de
|
traefik.http.middlewares.i2psnark-headers.headers.customRequestHeaders.Host: i2psnark.arpa.urmel.de
|
||||||
traefik.http.middlewares.i2psnark-headers.headers.customRequestHeaders.X-Forwarded-Proto: https
|
traefik.http.middlewares.i2psnark-headers.headers.customRequestHeaders.X-Forwarded-Proto: https
|
||||||
traefik.http.routers.i2psnark.middlewares: i2psnark-headers
|
traefik.http.routers.i2psnark.middlewares: local-only@file, traefik-auth@file, i2psnark-redirect, i2psnark-headers
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
proxy:
|
proxy:
|
||||||
external: true
|
external: true
|
||||||
name: urmel_proxy_exposed
|
name: traefik_exposed
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data_i2psnark:
|
data_i2psnark:
|
||||||
@ -66,9 +111,18 @@ volumes:
|
|||||||
type: nfs4
|
type: nfs4
|
||||||
o: addr=217.100.0.2,rw,noatime,tcp
|
o: addr=217.100.0.2,rw,noatime,tcp
|
||||||
device: ":/mnt/Main/servicesData/i2psnark"
|
device: ":/mnt/Main/servicesData/i2psnark"
|
||||||
|
config_i2psnark:
|
||||||
|
|
||||||
data_aniworld:
|
data_aniworld:
|
||||||
driver_opts:
|
driver_opts:
|
||||||
type: nfs4
|
type: nfs4
|
||||||
o: addr=217.100.0.2,rw,noatime,tcp
|
o: addr=217.100.0.2,rw,noatime,tcp
|
||||||
device: ":/mnt/Main/servicesData/aniworld"
|
device: ":/mnt/Main/servicesData/aniworld"
|
||||||
config_i2psnark:
|
config_aniworld:
|
||||||
|
|
||||||
|
config_qbittorrent:
|
||||||
|
data_qbittorrent:
|
||||||
|
driver_opts:
|
||||||
|
type: nfs4
|
||||||
|
o: addr=217.100.0.2,rw,noatime,tcp
|
||||||
|
device: ":/mnt/Main/servicesData/qbittorrent"
|
||||||
|
|||||||
@ -1,27 +0,0 @@
|
|||||||
FROM alpine:3.20 AS base
|
|
||||||
|
|
||||||
RUN apk add --no-cache \
|
|
||||||
openjdk21-jre-headless \
|
|
||||||
unzip \
|
|
||||||
wget
|
|
||||||
|
|
||||||
RUN mkdir /services
|
|
||||||
WORKDIR /services
|
|
||||||
|
|
||||||
|
|
||||||
# Install i2psnark
|
|
||||||
RUN wget https://i2pplus.github.io/installers/i2psnark-standalone.zip -O i2psnark-standalone.zip && \
|
|
||||||
unzip i2psnark-standalone.zip && \
|
|
||||||
rm i2psnark-standalone.zip
|
|
||||||
RUN mkdir -p /services/i2psnark_config/i2psnark.config.d && \
|
|
||||||
mv i2psnark/jetty-i2psnark.xml /services/i2psnark_config/ && \
|
|
||||||
mv i2psnark/i2psnark-appctx.config /services/i2psnark_config/ && \
|
|
||||||
ln -s /services/i2psnark_config/jetty-i2psnark.xml i2psnark/jetty-i2psnark.xml && \
|
|
||||||
ln -s /services/i2psnark_config/i2psnark-appctx.config i2psnark/i2psnark-appctx.config && \
|
|
||||||
ln -s /services/i2psnark_config/i2psnark.config.d i2psnark/i2psnark.config.d
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
|
||||||
ENTRYPOINT ["sh", "/entrypoint.sh"]
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
#!/usr/share/env bash
|
|
||||||
|
|
||||||
sh /services/i2psnark/launch-i2psnark &
|
|
||||||
|
|
||||||
while true; do sleep 1000; done
|
|
||||||
Loading…
x
Reference in New Issue
Block a user