feat: regroup all images in one repo

This commit is contained in:
AngeD 2023-09-16 23:47:01 +02:00
parent 0ac43342c7
commit 055037031a
84 changed files with 3411 additions and 0 deletions

6
bazarr/.env Normal file
View File

@ -0,0 +1,6 @@
BASE_URL=bazarr.
EMAIL=
MEDIA_PATH=
PUID=1000
PGID=1000

32
bazarr/Dockerfile Normal file
View File

@ -0,0 +1,32 @@
FROM docker.io/python:3.11-slim as base
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONDONTWRITEBYTECODE=1 \
PYTHONFAULTHANDLER=1 \
PYTHONUNBUFFERED=1 \
VIRTUAL_ENV="/opt/venv" \
PATH="/opt/venv/bin:$PATH"
WORKDIR /app/
FROM base as build
RUN python -m venv "$VIRTUAL_ENV"
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
curl \
unzip \
&& rm -rf /var/lib/apt/lists/*
ARG URL="https://github.com/morpheus65535/bazarr/releases/latest/download/bazarr.zip"
RUN curl -LO "$URL" \
&& unzip bazarr.zip \
&& pip install -U --no-cache-dir -r requirements.txt \
&& rm bazarr.zip
FROM base
COPY --from=build /app/ .
COPY --from=build "$VIRTUAL_ENV" "$VIRTUAL_ENV"
COPY entrypoint.sh /usr/local/bin/
RUN useradd -m app
VOLUME /config/
EXPOSE 6767
ENTRYPOINT ["entrypoint.sh"]
CMD ["python", "bazarr.py", "--no-update", "--config=/config"]

38
bazarr/compose.yaml Normal file
View File

@ -0,0 +1,38 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/bazarr.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
bazarr:
build: .
restart: unless-stopped
environment:
- PUID
- PGID
volumes:
- config:/config/
- $MEDIA_PATH:/data/
networks:
- nginx
volumes:
sites:
external: true
certs:
external: true
certbotroot:
external: true
config:
networks:
nginx:
external: true

13
bazarr/entrypoint.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
if [ -n "$PGID" ]; then
groupmod -g "$PGID" app
fi
if [ -n "$PUID" ]; then
usermod -u "$PUID" app
fi
chown -R app:app /app/ /config/
exec su app -c "$*"

1
bazarr/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

29
bazarr/nginx.conf Normal file
View File

@ -0,0 +1,29 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
location / {
proxy_pass http://bazarr:6767;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_redirect off;
proxy_http_version 1.1;
}
}

5
element/.env Normal file
View File

@ -0,0 +1,5 @@
BASE_URL=chat.
EMAIL=
PUID=1000
PGID=1000

2
element/Dockerfile Normal file
View File

@ -0,0 +1,2 @@
FROM docker.io/vectorim/element-web:latest
COPY config.json /app/config.json

32
element/compose.yaml Normal file
View File

@ -0,0 +1,32 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/element.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
element:
build: .
restart: unless-stopped
user: "$PUID:$PGID"
networks:
- nginx
volumes:
sites:
external: true
certs:
external: true
certbotroot:
external: true
networks:
nginx:
external: true

10
element/config.json Normal file
View File

@ -0,0 +1,10 @@
{
"default_server_config": {
"m.homeserver": {
"base_url": "https://matrix.maby.dev"
}
},
"setting_defaults": {
"use_system_theme": true
}
}

1
element/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

27
element/nginx.conf Normal file
View File

@ -0,0 +1,27 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
location / {
proxy_pass http://element;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Cache-Control "no-cache";
proxy_redirect off;
}
}

9
gitea/.env Normal file
View File

@ -0,0 +1,9 @@
BASE_URL=git.
EMAIL=
POSTGRES_PASSWORD=
PUID=1000
PGID=1000
POSTGRES_DB=gitea
POSTGRES_USER=gitea

58
gitea/compose.yaml Normal file
View File

@ -0,0 +1,58 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/gitea.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
db:
image: docker.io/postgres:15
restart: unless-stopped
volumes:
- db:/var/lib/postgresql/data/
environment:
- POSTGRES_DB=$POSTGRES_DB
- POSTGRES_USER=$POSTGRES_USER
- POSTGRES_PASSWORD=$POSTGRES_PASSWORD
gitea:
image: docker.io/gitea/gitea:1.20
restart: unless-stopped
volumes:
- data:/data/
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- USER_UID=$PUID
- USER_GID=$PGID
- POSTGRES_HOST=db
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=$POSTGRES_DB
- GITEA__database__USER=$POSTGRES_USER
- GITEA__database__PASSWD=$POSTGRES_PASSWORD
networks:
- nginx
depends_on:
- db
volumes:
data:
db:
sites:
external: true
certs:
external: true
certbotroot:
external: true
networks:
nginx:
external: true

1
gitea/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

27
gitea/nginx.conf Normal file
View File

@ -0,0 +1,27 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
client_max_body_size 8G;
location / {
proxy_pass http://gitea:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

6
jellyfin/.env Normal file
View File

@ -0,0 +1,6 @@
BASE_URL=jellyfin.
EMAIL=
MEDIA_PATH=
PUID=1000
PGID=1000

36
jellyfin/compose.yaml Normal file
View File

@ -0,0 +1,36 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/jellyfin.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
jellyfin:
image: docker.io/jellyfin/jellyfin:latest
restart: unless-stopped
user: "$PUID:$PGID"
volumes:
- config:/config/
- $MEDIA_PATH:/media/
networks:
- nginx
volumes:
sites:
external: true
certs:
external: true
certbotroot:
external: true
config:
networks:
nginx:
external: true

1
jellyfin/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

23
jellyfin/nginx.conf Normal file
View File

@ -0,0 +1,23 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
location / {
proxy_pass http://jellyfin:8096;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

6
lidarr/.env Normal file
View File

@ -0,0 +1,6 @@
BASE_URL=lidarr.
EMAIL=
MEDIA_PATH=
PUID=1000
PGID=1000

28
lidarr/Dockerfile Normal file
View File

@ -0,0 +1,28 @@
FROM docker.io/debian:12-slim as base
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /app/
FROM base as build
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
curl \
&& rm -rf /var/lib/apt/lists/*
ARG LIDARR="http://lidarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64"
RUN curl -L "$LIDARR" | tar xz --strip-components=1
FROM base
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
libchromaprint-tools \
mediainfo \
sqlite3 \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /app/ .
COPY entrypoint.sh /usr/local/bin/
RUN useradd -m app
VOLUME /config/
EXPOSE 8686
ENTRYPOINT ["entrypoint.sh"]
CMD ["./Lidarr", "-nobrowser", "-data=/config"]

38
lidarr/compose.yaml Normal file
View File

@ -0,0 +1,38 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/lidarr.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
lidarr:
build: .
restart: unless-stopped
environment:
- PUID
- PGID
volumes:
- config:/config/
- $MEDIA_PATH:/data/
networks:
- nginx
volumes:
sites:
external: true
certs:
external: true
certbotroot:
external: true
config:
networks:
nginx:
external: true

13
lidarr/entrypoint.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
if [ -n "$PGID" ]; then
groupmod -g "$PGID" app
fi
if [ -n "$PUID" ]; then
usermod -u "$PUID" app
fi
chown -R app:app /config/
exec su app -c "$*"

1
lidarr/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

23
lidarr/nginx.conf Normal file
View File

@ -0,0 +1,23 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
location / {
proxy_pass http://lidarr:8686;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

26
monero/Dockerfile Normal file
View File

@ -0,0 +1,26 @@
FROM docker.io/debian:12-slim as base
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /app/
FROM base as build
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
bzip2 \
ca-certificates \
curl \
&& rm -rf /var/lib/apt/lists/*
ARG MONERO='https://downloads.getmonero.org/cli/linux64'
RUN curl -L "$MONERO" | tar xj --strip-components=1
FROM base
COPY --from=build /app/ .
RUN useradd -m app
# Generate your wallet via accessing the container and run:
# cd /wallet
# monero-wallet-cli
RUN mkdir -p /home/app/.bitmonero/ /wallet/ \
&& chown -R app:app /home/app/ /wallet/
VOLUME /home/app/.bitmonero/ /wallet/
EXPOSE 18080 18081
USER app
CMD ["./monerod", "--p2p-bind-ip=0.0.0.0", "--p2p-bind-port=18080", "--rpc-bind-ip=0.0.0.0", "--rpc-bind-port=18081", "--non-interactive", "--confirm-external-bind"]

15
monero/compose.yaml Normal file
View File

@ -0,0 +1,15 @@
---
services:
monero:
build: .
restart: unless-stopped
ports:
- "18080:18080"
- "18081:18081"
volumes:
- wallet:/wallet/
- blocks:/home/monero/.bitmonero/
volumes:
wallet:
blocks:

1
monero/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

8
mullvad/Dockerfile Normal file
View File

@ -0,0 +1,8 @@
FROM docker.io/debian:12-slim
WORKDIR /etc/openvpn/
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
openvpn \
&& rm -rf /var/lib/apt/lists/*
COPY openvpn/ /etc/openvpn/
CMD ["openvpn", "--config", "mullvad_00.conf"]

10
mullvad/compose.yaml Normal file
View File

@ -0,0 +1,10 @@
---
services:
mullvad:
build: .
restart: unless-stopped
network_mode: host
devices:
- /dev/net/
cap_add:
- NET_ADMIN

1
mullvad/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

3
mullvad/openvpn/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*
!.gitignore
!README.md

View File

@ -0,0 +1,2 @@
Put your openvpn config here
https://mullvad.net/en/account/openvpn-config

11
nextcloud/.env Normal file
View File

@ -0,0 +1,11 @@
BASE_URL=cloud.
EMAIL=
POSTGRES_PASSWORD=
DEFAULT_PHONE_REGION=FR
MEDIA_PATH=/media
PUID=1000
PGID=1000
POSTGRES_DB=nextcloud
POSTGRES_USER=nextcloud

5
nextcloud/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM docker.io/nextcloud:26-apache
COPY config/ /usr/src/nextcloud/config/
COPY entrypoint.sh /usr/local/bin/
ENTRYPOINT ["entrypoint.sh"]
CMD ["apache2-foreground"]

66
nextcloud/compose.yaml Normal file
View File

@ -0,0 +1,66 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/nextcloud.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
db:
image: docker.io/postgres:15
restart: unless-stopped
volumes:
- db:/var/lib/postgresql/data/
environment:
- POSTGRES_DB
- POSTGRES_USER
- POSTGRES_PASSWORD
redis:
image: docker.io/redis:latest
restart: unless-stopped
nextcloud:
build: .
restart: unless-stopped
volumes:
- nextcloud:/var/www/html/
- apps:/var/www/html/custom_apps/
- config:/var/www/html/config/
- data:/var/www/html/data/
- $MEDIA_PATH:/media/
env_file:
- .env
environment:
- POSTGRES_HOST=db
- REDIS_HOST=redis
- TRUSTED_PROXIES=nextcloud
- OVERWRITEPROTOCOL=https
networks:
- nginx
depends_on:
- db
- redis
volumes:
db:
nextcloud:
apps:
config:
data:
sites:
external: true
certs:
external: true
certbotroot:
external: true
networks:
nginx:
external: true

View File

@ -0,0 +1,5 @@
<?php
$default_phone_region = getenv('DEFAULT_PHONE_REGION');
if ($default_phone_region) {
$CONFIG['default_phone_region'] = $default_phone_region;
}

12
nextcloud/entrypoint.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/bash
if [ -n "$PGID" ]; then
groupmod -g "$PGID" www-data
fi
if [ -n "$PUID" ]; then
usermod -u "$PUID" www-data
fi
busybox crond -l 0 -L /dev/stdout
exec sh -c "/entrypoint.sh $*"

1
nextcloud/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

36
nextcloud/nginx.conf Normal file
View File

@ -0,0 +1,36 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
client_max_body_size 1024G;
location / {
proxy_pass http://nextcloud;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_redirect off;
}
location /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
}

11
nginx/Dockerfile Normal file
View File

@ -0,0 +1,11 @@
FROM docker.io/nginx:latest as base
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
certbot \
cron \
&& rm -rf /var/lib/apt/lists/*
COPY cron.d/ /etc/cron.d/
COPY entrypoint.d/ /docker-entrypoint.d/
COPY default.conf /tmp/
VOLUME /etc/nginx/conf.d/ /etc/letsencrypt/ /sites/

28
nginx/compose.yaml Normal file
View File

@ -0,0 +1,28 @@
---
services:
nginx:
container_name: nginx
build: .
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- sites:/etc/nginx/conf.d/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/:ro
networks:
- nginx
volumes:
sites:
name: sites
certs:
name: certs
certbotroot:
name: certbotroot
config:
networks:
nginx:
name: nginx

1
nginx/cron.d/certbot Normal file
View File

@ -0,0 +1 @@
0 0 * * * root certbot --webroot -w /var/www/certbot/ -q renew

15
nginx/default.conf Normal file
View File

@ -0,0 +1,15 @@
server {
listen 80 default_server;
listen [::]:80 default_server;
location ~ /.well-known/acme-challenge/ {
root /var/www/certbot/;
}
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_reject_handshake on;
}

View File

@ -0,0 +1,5 @@
#!/bin/bash
cp /tmp/default.conf /etc/nginx/conf.d/
/etc/init.d/cron start
crontab /etc/cron.d/*

View File

@ -0,0 +1,11 @@
FROM docker.io/debian:12-slim as base
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
certbot \
gettext \
netcat-openbsd \
&& rm -rf /var/lib/apt/lists/*
COPY entrypoint.sh /usr/local/bin/
WORKDIR /web/
ENTRYPOINT ["entrypoint.sh"]

View File

@ -0,0 +1,22 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL=subdomain.domain.tld
- EMAIL=user@domain.tld
volumes:
- ./app_nginx.conf:/web/app.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
volumes:
sites:
external: true
certs:
external: true
certbotroot:
external: true
config:

View File

@ -0,0 +1,18 @@
#!/bin/sh -e
certbot certonly -n \
--webroot \
-w /var/www/certbot/ \
--agree-tos \
--no-eff-email \
-m "$EMAIL" \
-d "$BASE_URL"
for f in *; do
envsubst "$(bash -c 'compgen -v' | xargs printf '$%s ')" \
< "$f" \
> "/sites/$f"
done
printf "POST /containers/nginx/kill?signal=SIGHUP HTTP/1.0\r\n\n" \
| nc -U /var/run/docker.sock

2
prowlarr/.env Normal file
View File

@ -0,0 +1,2 @@
BASE_URL=prowlarr.
EMAIL=

25
prowlarr/Dockerfile Normal file
View File

@ -0,0 +1,25 @@
FROM docker.io/debian:12-slim as base
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /app/
FROM base as build
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
curl \
&& rm -rf /var/lib/apt/lists/*
ARG PROWLARR="http://prowlarr.servarr.com/v1/update/develop/updatefile?os=linux&runtime=netcore&arch=x64"
RUN curl -L "$PROWLARR" | tar xz --strip-components=1
FROM base
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
libicu72 \
sqlite3 \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /app/ .
RUN useradd -m app
VOLUME /config/
EXPOSE 9696
CMD ["./Prowlarr", "-nobrowser", "-data=/config"]

37
prowlarr/compose.yaml Normal file
View File

@ -0,0 +1,37 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/prowlarr.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
prowlarr:
build: .
restart: unless-stopped
environment:
- PUID
- PGID
volumes:
- config:/config/
networks:
- nginx
volumes:
sites:
external: true
certs:
external: true
certbotroot:
external: true
config:
networks:
nginx:
external: true

1
prowlarr/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

29
prowlarr/nginx.conf Normal file
View File

@ -0,0 +1,29 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
location / {
proxy_pass http://prowlarr:9696;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_redirect off;
proxy_http_version 1.1;
}
}

6
qbittorrent/.env Normal file
View File

@ -0,0 +1,6 @@
BASE_URL=torrent.
EMAIL=
MEDIA_PATH=
PUID=1000
PGID=1000

38
qbittorrent/compose.yaml Normal file
View File

@ -0,0 +1,38 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/qbittorrent.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
qbittorrent:
image: docker.io/qbittorrentofficial/qbittorrent-nox:latest
restart: unless-stopped
environment:
- QBT_EULA=accept
- QBT_DOWNLOADS_PATH=/data/torrents/
volumes:
- $MEDIA_PATH/torrents/:/data/torrents/
- config:/config
networks:
- nginx
volumes:
sites:
external: true
certs:
external: true
certbotroot:
external: true
config:
networks:
nginx:
external: true

1
qbittorrent/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

24
qbittorrent/nginx.conf Normal file
View File

@ -0,0 +1,24 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
location / {
proxy_pass http://qbittorrent:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}

6
radarr/.env Normal file
View File

@ -0,0 +1,6 @@
BASE_URL=radarr.
EMAIL=
MEDIA_PATH=
PUID=1000
PGID=1000

27
radarr/Dockerfile Normal file
View File

@ -0,0 +1,27 @@
FROM docker.io/debian:12-slim as base
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /app/
FROM base as build
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
curl \
&& rm -rf /var/lib/apt/lists/*
ARG RADARR="http://radarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64"
RUN curl -L "$RADARR" | tar xz --strip-components=1
FROM base
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
libicu72 \
sqlite3 \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /app/ .
COPY entrypoint.sh /usr/local/bin/
RUN useradd -m app
VOLUME /config/
EXPOSE 7878
ENTRYPOINT ["entrypoint.sh"]
CMD ["./Radarr", "-nobrowser", "-data=/config"]

38
radarr/compose.yaml Normal file
View File

@ -0,0 +1,38 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/radarr.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
radarr:
build: .
restart: unless-stopped
environment:
- PUID
- PGID
volumes:
- config:/config/
- $MEDIA_PATH:/data/
networks:
- nginx
volumes:
sites:
external: true
certs:
external: true
certbotroot:
external: true
config:
networks:
nginx:
external: true

13
radarr/entrypoint.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
if [ -n "$PGID" ]; then
groupmod -g "$PGID" app
fi
if [ -n "$PUID" ]; then
usermod -u "$PUID" app
fi
chown -R app:app /config/
exec su app -c "$*"

1
radarr/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

29
radarr/nginx.conf Normal file
View File

@ -0,0 +1,29 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
location / {
proxy_pass http://radarr:7878;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_redirect off;
proxy_http_version 1.1;
}
}

6
readarr/.env Normal file
View File

@ -0,0 +1,6 @@
BASE_URL=readarr.
EMAIL=
MEDIA_PATH=
PUID=1000
PGID=1000

27
readarr/Dockerfile Normal file
View File

@ -0,0 +1,27 @@
FROM docker.io/debian:12-slim as base
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /app/
FROM base as build
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
curl \
&& rm -rf /var/lib/apt/lists/*
ARG READARR="https://readarr.servarr.com/v1/update/develop/updatefile?os=linux&runtime=netcore&arch=x64"
RUN curl -L "$READARR" | tar xz --strip-components=1
FROM base
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
libicu72 \
sqlite3 \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /app/ .
COPY entrypoint.sh /usr/local/bin/
RUN useradd -m app
VOLUME /config/
EXPOSE 8787
ENTRYPOINT ["entrypoint.sh"]
CMD ["./Readarr", "-nobrowser", "-data=/config"]

38
readarr/compose.yaml Normal file
View File

@ -0,0 +1,38 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/readarr.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
readarr:
build: .
restart: unless-stopped
environment:
- PUID
- PGID
volumes:
- config:/config/
- $MEDIA_PATH:/data/
networks:
- nginx
volumes:
sites:
external: true
certs:
external: true
certbotroot:
external: true
config:
networks:
nginx:
external: true

13
readarr/entrypoint.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
if [ -n "$PGID" ]; then
groupmod -g "$PGID" app
fi
if [ -n "$PUID" ]; then
usermod -u "$PUID" app
fi
chown -R app:app /config/
exec su app -c "$*"

1
readarr/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

29
readarr/nginx.conf Normal file
View File

@ -0,0 +1,29 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
location / {
proxy_pass http://readarr:8787;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_redirect off;
proxy_http_version 1.1;
}
}

2
searxng/.env Normal file
View File

@ -0,0 +1,2 @@
BASE_URL=searx.
EMAIL=

5
searxng/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM docker.io/searxng/searxng:latest
COPY settings.yml /tmp/
COPY entrypoint.sh /usr/local/bin/
ENTRYPOINT ["entrypoint.sh"]
CMD ["/sbin/tini", "--", "/usr/local/searxng/dockerfiles/docker-entrypoint.sh"]

42
searxng/compose.yaml Normal file
View File

@ -0,0 +1,42 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/searxng.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
redis:
image: docker.io/redis:latest
restart: unless-stopped
searxng:
build: .
restart: unless-stopped
volumes:
- config:/etc/searxng/
environment:
- REDIS_HOST=redis
networks:
- nginx
depends_on:
- redis
volumes:
config:
sites:
external: true
certs:
external: true
certbotroot:
external: true
networks:
nginx:
external: true

7
searxng/entrypoint.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh -e
sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" /tmp/settings.yml
mv /tmp/settings.yml "$SEARXNG_SETTINGS_PATH"
exec "$@"

1
searxng/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

26
searxng/nginx.conf Normal file
View File

@ -0,0 +1,26 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
location / {
proxy_pass http://searxng:8080;
proxy_set_header Host $host;
proxy_set_header Connection $http_connection;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

2013
searxng/settings.yml Normal file

File diff suppressed because it is too large Load Diff

6
sonarr/.env Normal file
View File

@ -0,0 +1,6 @@
BASE_URL=sonarr.
EMAIL=
MEDIA_PATH=
PUID=1000
PGID=1000

48
sonarr/Dockerfile Normal file
View File

@ -0,0 +1,48 @@
FROM docker.io/debian:12-slim as base
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /app/
FROM base as build
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
curl \
&& rm -rf /var/lib/apt/lists/*
ARG SONARR="https://services.sonarr.tv/v1/download/main/latest?version=3&os=linux"
RUN curl -L "$SONARR" | tar xz --strip-components=1
FROM base
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libmono-corlib4.5-cil \
libmono-microsoft-csharp4.0-cil \
libmono-posix4.0-cil \
libmono-system-componentmodel-dataannotations4.0-cil \
libmono-system-configuration-install4.0-cil \
libmono-system-configuration4.0-cil \
libmono-system-core4.0-cil \
libmono-system-data-datasetextensions4.0-cil \
libmono-system-data4.0-cil \
libmono-system-identitymodel4.0-cil \
libmono-system-io-compression4.0-cil \
libmono-system-net-http4.0-cil \
libmono-system-numerics4.0-cil \
libmono-system-runtime-serialization4.0-cil \
libmono-system-security4.0-cil \
libmono-system-servicemodel4.0a-cil \
libmono-system-serviceprocess4.0-cil \
libmono-system-transactions4.0-cil \
libmono-system-web4.0-cil \
libmono-system-xml-linq4.0-cil \
libmono-system-xml4.0-cil \
libmono-system4.0-cil \
mediainfo \
mono-runtime \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /app/ .
COPY entrypoint.sh /usr/local/bin/
RUN useradd -m app
VOLUME /config/
EXPOSE 8989
ENTRYPOINT ["entrypoint.sh"]
CMD ["mono", "Sonarr.exe", "-nobrowser", "-data=/config"]

38
sonarr/compose.yaml Normal file
View File

@ -0,0 +1,38 @@
---
services:
install_site:
build: install_site
environment:
- BASE_URL
- EMAIL
volumes:
- ./nginx.conf:/web/sonarr.conf
- sites:/sites/
- certs:/etc/letsencrypt/
- certbotroot:/var/www/certbot/
- /var/run/docker.sock:/var/run/docker.sock
sonarr:
build: .
restart: unless-stopped
environment:
- PUID
- PGID
volumes:
- config:/config/
- $MEDIA_PATH:/data/
networks:
- nginx
volumes:
sites:
external: true
certs:
external: true
certbotroot:
external: true
config:
networks:
nginx:
external: true

13
sonarr/entrypoint.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
if [ -n "$PGID" ]; then
groupmod -g "$PGID" app
fi
if [ -n "$PUID" ]; then
usermod -u "$PUID" app
fi
chown -R app:app /config/
exec su app -c "$*"

1
sonarr/install_site Symbolic link
View File

@ -0,0 +1 @@
../nginx/install_site

29
sonarr/nginx.conf Normal file
View File

@ -0,0 +1,29 @@
server {
listen 80;
listen [::]:80;
server_name $BASE_URL;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name $BASE_URL;
ssl_certificate /etc/letsencrypt/live/$BASE_URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$BASE_URL/privkey.pem;
location / {
proxy_pass http://sonarr:8989;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_redirect off;
proxy_http_version 1.1;
}
}

10
todo Normal file
View File

@ -0,0 +1,10 @@
nginx autoreload with install_site
openvpn auto download config from mullvad?
https://docs.gitea.com/installation/install-with-docker#ssh-container-passthrough
docs
monero auto wallet creation
- modoboa
- collabora
- bitcoin
- minecraft-server