feat: regroup all images in one repo
This commit is contained in:
parent
0ac43342c7
commit
055037031a
6
bazarr/.env
Normal file
6
bazarr/.env
Normal file
@ -0,0 +1,6 @@
|
||||
BASE_URL=bazarr.
|
||||
EMAIL=
|
||||
MEDIA_PATH=
|
||||
|
||||
PUID=1000
|
||||
PGID=1000
|
32
bazarr/Dockerfile
Normal file
32
bazarr/Dockerfile
Normal 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
38
bazarr/compose.yaml
Normal 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
13
bazarr/entrypoint.sh
Executable 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
1
bazarr/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
29
bazarr/nginx.conf
Normal file
29
bazarr/nginx.conf
Normal 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
5
element/.env
Normal file
@ -0,0 +1,5 @@
|
||||
BASE_URL=chat.
|
||||
EMAIL=
|
||||
|
||||
PUID=1000
|
||||
PGID=1000
|
2
element/Dockerfile
Normal file
2
element/Dockerfile
Normal file
@ -0,0 +1,2 @@
|
||||
FROM docker.io/vectorim/element-web:latest
|
||||
COPY config.json /app/config.json
|
32
element/compose.yaml
Normal file
32
element/compose.yaml
Normal 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
10
element/config.json
Normal 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
1
element/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
27
element/nginx.conf
Normal file
27
element/nginx.conf
Normal 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
9
gitea/.env
Normal 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
58
gitea/compose.yaml
Normal 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
1
gitea/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
27
gitea/nginx.conf
Normal file
27
gitea/nginx.conf
Normal 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
6
jellyfin/.env
Normal file
@ -0,0 +1,6 @@
|
||||
BASE_URL=jellyfin.
|
||||
EMAIL=
|
||||
MEDIA_PATH=
|
||||
|
||||
PUID=1000
|
||||
PGID=1000
|
36
jellyfin/compose.yaml
Normal file
36
jellyfin/compose.yaml
Normal 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
1
jellyfin/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
23
jellyfin/nginx.conf
Normal file
23
jellyfin/nginx.conf
Normal 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
6
lidarr/.env
Normal file
@ -0,0 +1,6 @@
|
||||
BASE_URL=lidarr.
|
||||
EMAIL=
|
||||
MEDIA_PATH=
|
||||
|
||||
PUID=1000
|
||||
PGID=1000
|
28
lidarr/Dockerfile
Normal file
28
lidarr/Dockerfile
Normal 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
38
lidarr/compose.yaml
Normal 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
13
lidarr/entrypoint.sh
Executable 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
1
lidarr/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
23
lidarr/nginx.conf
Normal file
23
lidarr/nginx.conf
Normal 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
26
monero/Dockerfile
Normal 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
15
monero/compose.yaml
Normal 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
1
monero/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
8
mullvad/Dockerfile
Normal file
8
mullvad/Dockerfile
Normal 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
10
mullvad/compose.yaml
Normal 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
1
mullvad/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
3
mullvad/openvpn/.gitignore
vendored
Normal file
3
mullvad/openvpn/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
*
|
||||
!.gitignore
|
||||
!README.md
|
2
mullvad/openvpn/README.md
Normal file
2
mullvad/openvpn/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
Put your openvpn config here
|
||||
https://mullvad.net/en/account/openvpn-config
|
11
nextcloud/.env
Normal file
11
nextcloud/.env
Normal 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
5
nextcloud/Dockerfile
Normal 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
66
nextcloud/compose.yaml
Normal 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
|
5
nextcloud/config/phone.config.php
Normal file
5
nextcloud/config/phone.config.php
Normal 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
12
nextcloud/entrypoint.sh
Executable 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
1
nextcloud/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
36
nextcloud/nginx.conf
Normal file
36
nextcloud/nginx.conf
Normal 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
11
nginx/Dockerfile
Normal 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
28
nginx/compose.yaml
Normal 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
1
nginx/cron.d/certbot
Normal file
@ -0,0 +1 @@
|
||||
0 0 * * * root certbot --webroot -w /var/www/certbot/ -q renew
|
15
nginx/default.conf
Normal file
15
nginx/default.conf
Normal 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;
|
||||
}
|
5
nginx/entrypoint.d/00-certbot.sh
Executable file
5
nginx/entrypoint.d/00-certbot.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
cp /tmp/default.conf /etc/nginx/conf.d/
|
||||
/etc/init.d/cron start
|
||||
crontab /etc/cron.d/*
|
11
nginx/install_site/Dockerfile
Normal file
11
nginx/install_site/Dockerfile
Normal 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"]
|
22
nginx/install_site/compose.yaml
Normal file
22
nginx/install_site/compose.yaml
Normal 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:
|
18
nginx/install_site/entrypoint.sh
Executable file
18
nginx/install_site/entrypoint.sh
Executable 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
2
prowlarr/.env
Normal file
@ -0,0 +1,2 @@
|
||||
BASE_URL=prowlarr.
|
||||
EMAIL=
|
25
prowlarr/Dockerfile
Normal file
25
prowlarr/Dockerfile
Normal 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
37
prowlarr/compose.yaml
Normal 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
1
prowlarr/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
29
prowlarr/nginx.conf
Normal file
29
prowlarr/nginx.conf
Normal 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
6
qbittorrent/.env
Normal file
@ -0,0 +1,6 @@
|
||||
BASE_URL=torrent.
|
||||
EMAIL=
|
||||
MEDIA_PATH=
|
||||
|
||||
PUID=1000
|
||||
PGID=1000
|
38
qbittorrent/compose.yaml
Normal file
38
qbittorrent/compose.yaml
Normal 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
1
qbittorrent/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
24
qbittorrent/nginx.conf
Normal file
24
qbittorrent/nginx.conf
Normal 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
6
radarr/.env
Normal file
@ -0,0 +1,6 @@
|
||||
BASE_URL=radarr.
|
||||
EMAIL=
|
||||
MEDIA_PATH=
|
||||
|
||||
PUID=1000
|
||||
PGID=1000
|
27
radarr/Dockerfile
Normal file
27
radarr/Dockerfile
Normal 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
38
radarr/compose.yaml
Normal 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
13
radarr/entrypoint.sh
Executable 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
1
radarr/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
29
radarr/nginx.conf
Normal file
29
radarr/nginx.conf
Normal 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
6
readarr/.env
Normal file
@ -0,0 +1,6 @@
|
||||
BASE_URL=readarr.
|
||||
EMAIL=
|
||||
MEDIA_PATH=
|
||||
|
||||
PUID=1000
|
||||
PGID=1000
|
27
readarr/Dockerfile
Normal file
27
readarr/Dockerfile
Normal 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
38
readarr/compose.yaml
Normal 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
13
readarr/entrypoint.sh
Executable 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
1
readarr/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
29
readarr/nginx.conf
Normal file
29
readarr/nginx.conf
Normal 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
2
searxng/.env
Normal file
@ -0,0 +1,2 @@
|
||||
BASE_URL=searx.
|
||||
EMAIL=
|
5
searxng/Dockerfile
Normal file
5
searxng/Dockerfile
Normal 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
42
searxng/compose.yaml
Normal 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
7
searxng/entrypoint.sh
Executable 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
1
searxng/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
26
searxng/nginx.conf
Normal file
26
searxng/nginx.conf
Normal 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
2013
searxng/settings.yml
Normal file
File diff suppressed because it is too large
Load Diff
6
sonarr/.env
Normal file
6
sonarr/.env
Normal file
@ -0,0 +1,6 @@
|
||||
BASE_URL=sonarr.
|
||||
EMAIL=
|
||||
MEDIA_PATH=
|
||||
|
||||
PUID=1000
|
||||
PGID=1000
|
48
sonarr/Dockerfile
Normal file
48
sonarr/Dockerfile
Normal 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
38
sonarr/compose.yaml
Normal 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
13
sonarr/entrypoint.sh
Executable 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
1
sonarr/install_site
Symbolic link
@ -0,0 +1 @@
|
||||
../nginx/install_site
|
29
sonarr/nginx.conf
Normal file
29
sonarr/nginx.conf
Normal 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;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user