Created backend (markdown)
parent
fac6a28645
commit
c166805b82
309
backend.md
Normal file
309
backend.md
Normal file
@ -0,0 +1,309 @@
|
|||||||
|
## Contents
|
||||||
|
1. [*arr apps](#*arr-apps)
|
||||||
|
2. [Nginx Proxy Manager](#Nginx-Proxy-Manager)
|
||||||
|
- [Authentik setup](#Authentik-setup)
|
||||||
|
3. [Downloaders](#Downloaders)
|
||||||
|
- [Gluetun](#Gluetun)
|
||||||
|
4. [Logging](#Logging)
|
||||||
|
|
||||||
|
## *arr apps
|
||||||
|
> For configuration see [TRaSH-Guides](https://trash-guides.info/)
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><b>Sonarr</b></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
services:
|
||||||
|
sonarr:
|
||||||
|
container_name: sonarr
|
||||||
|
restart: unless-stopped
|
||||||
|
image: ghcr.io/hotio/sonarr
|
||||||
|
ports:
|
||||||
|
- "8989:8989"
|
||||||
|
environment:
|
||||||
|
- PUID=950
|
||||||
|
- PGID=950
|
||||||
|
volumes:
|
||||||
|
- /docker/config/sonarr:/config
|
||||||
|
- /data/media:/data/media
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary><b>Radarr</b></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
radarr:
|
||||||
|
container_name: radarr
|
||||||
|
restart: unless-stopped
|
||||||
|
image: ghcr.io/hotio/radarr
|
||||||
|
ports:
|
||||||
|
- "7878:7878"
|
||||||
|
environment:
|
||||||
|
- PUID=950
|
||||||
|
- PGID=950
|
||||||
|
volumes:
|
||||||
|
- /docker/config/radarr:/config
|
||||||
|
- /data/media:/data/media
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary><b>Prowlarr</b></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
prowlarr:
|
||||||
|
container_name: prowlarr
|
||||||
|
restart: unless-stopped
|
||||||
|
image: ghcr.io/hotio/prowlarr
|
||||||
|
ports:
|
||||||
|
- "9696:9696"
|
||||||
|
environment:
|
||||||
|
- PUID=950
|
||||||
|
- PGID=950
|
||||||
|
volumes:
|
||||||
|
- /docker/config/prowlarr:/config
|
||||||
|
```
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary><b>Bazarr</b></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
bazarr:
|
||||||
|
container_name: bazarr
|
||||||
|
restart: unless-stopped
|
||||||
|
image: ghcr.io/hotio/bazarr
|
||||||
|
ports:
|
||||||
|
- "6767:6767"
|
||||||
|
environment:
|
||||||
|
- PUID=950
|
||||||
|
- PGID=950
|
||||||
|
volumes:
|
||||||
|
- /docker/config/bazarr:/config
|
||||||
|
- /data/media:/data/media
|
||||||
|
```
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary><b>Doplarr</b></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
doplarr:
|
||||||
|
container_name: doplarr
|
||||||
|
restart: unless-stopped
|
||||||
|
image: ghcr.io/hotio/doplarr:latest
|
||||||
|
env_file:
|
||||||
|
- ./env/doplarr
|
||||||
|
environment:
|
||||||
|
- SONARR__URL=http://sonarr:8989
|
||||||
|
- RADARR__URL=http://radarr:7878
|
||||||
|
- LOG_LEVEL=:report
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
## Nginx Proxy Manager
|
||||||
|
<details>
|
||||||
|
<summary>Compose snippet</summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
nginxproxymanager:
|
||||||
|
container_name: nginxpm
|
||||||
|
image: jc21/nginx-proxy-manager:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "81:81"
|
||||||
|
- "443:443"
|
||||||
|
- "25565:25565"
|
||||||
|
volumes:
|
||||||
|
- /docker/config/nginxpm:/data
|
||||||
|
- /docker/config/letsencrypt:/etc/letsencrypt
|
||||||
|
- /data/www:/data/www
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### Authentik setup
|
||||||
|
> edit [AUTHENTIK IP] and [AUTHENTIK port]
|
||||||
|
<details>
|
||||||
|
<summary> for proxy services add the following to the advanced section of the proxy host </summary>
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
# Increase buffer size for large headers
|
||||||
|
# This is needed only if you get 'upstream sent too big header while reading response
|
||||||
|
# header from upstream' error when trying to access an application protected by goauthentik
|
||||||
|
proxy_buffers 8 16k;
|
||||||
|
proxy_buffer_size 32k;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
# Put your proxy_pass to your application here
|
||||||
|
proxy_pass $forward_scheme://$server:$port;
|
||||||
|
# #########################################
|
||||||
|
# CUSTOM - START Websocket behind authenticated proxy
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
# END Websockets FIX
|
||||||
|
# #########################################
|
||||||
|
|
||||||
|
# authentik-specific config
|
||||||
|
auth_request /outpost.goauthentik.io/auth/nginx;
|
||||||
|
error_page 401 = @goauthentik_proxy_signin;
|
||||||
|
auth_request_set $auth_cookie $upstream_http_set_cookie;
|
||||||
|
add_header Set-Cookie $auth_cookie;
|
||||||
|
|
||||||
|
# translate headers from the outposts back to the actual upstream
|
||||||
|
auth_request_set $authentik_username $upstream_http_x_authentik_username;
|
||||||
|
auth_request_set $authentik_groups $upstream_http_x_authentik_groups;
|
||||||
|
auth_request_set $authentik_email $upstream_http_x_authentik_email;
|
||||||
|
auth_request_set $authentik_name $upstream_http_x_authentik_name;
|
||||||
|
auth_request_set $authentik_uid $upstream_http_x_authentik_uid;
|
||||||
|
|
||||||
|
proxy_set_header X-authentik-username $authentik_username;
|
||||||
|
proxy_set_header X-authentik-groups $authentik_groups;
|
||||||
|
proxy_set_header X-authentik-email $authentik_email;
|
||||||
|
proxy_set_header X-authentik-name $authentik_name;
|
||||||
|
proxy_set_header X-authentik-uid $authentik_uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
# all requests to /outpost.goauthentik.io must be accessible without authentication
|
||||||
|
location /outpost.goauthentik.io {
|
||||||
|
# ################################
|
||||||
|
# CHANGE IP TO AUTHENTIK IP here.
|
||||||
|
proxy_pass http://[AUTHENTIK IP]:[AUTHENTIK PORT]/outpost.goauthentik.io;
|
||||||
|
# ################################
|
||||||
|
# ensure the host of this vserver matches your external URL you've configured
|
||||||
|
# in authentik
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
|
||||||
|
add_header Set-Cookie $auth_cookie;
|
||||||
|
auth_request_set $auth_cookie $upstream_http_set_cookie;
|
||||||
|
|
||||||
|
# required for POST requests to work
|
||||||
|
proxy_pass_request_body off;
|
||||||
|
proxy_set_header Content-Length "";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Special location for when the /auth endpoint returns a 401,
|
||||||
|
# redirect to the /start URL which initiates SSO
|
||||||
|
location @goauthentik_proxy_signin {
|
||||||
|
internal;
|
||||||
|
add_header Set-Cookie $auth_cookie;
|
||||||
|
return 302 /outpost.goauthentik.io/start?rd=$request_uri;
|
||||||
|
# For domain level, use the below error_page to redirect to your authentik server with the full redirect path
|
||||||
|
# return 302 https://authentik.company/outpost.goauthentik.io/start?rd=$scheme://$http_host$request_uri;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
## Downloaders
|
||||||
|
<details>
|
||||||
|
<summary><b>qBittorrent</b></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
gluetun:
|
||||||
|
container_name: gluetun
|
||||||
|
image: qmcgaw/gluetun
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
env_file:
|
||||||
|
./env/gluetun
|
||||||
|
environment:
|
||||||
|
- VPN_SERVICE_PROVIDER=airvpn
|
||||||
|
- VPN_TYPE=wireguard
|
||||||
|
- SERVER_COUNTRIES=Canada
|
||||||
|
- LOG_LEVEL=debug
|
||||||
|
- OPENVPN_VERSION=2.4
|
||||||
|
- FIREWALL_VPN_INPUT_PORTS=46575
|
||||||
|
privileged: true
|
||||||
|
devices:
|
||||||
|
- /dev/net/tun:/dev/net/tun
|
||||||
|
qbittorrent:
|
||||||
|
container_name: qbittorrent
|
||||||
|
image: ghcr.io/hotio/qbittorrent
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: "service:gluetun"
|
||||||
|
environment:
|
||||||
|
- WEBUI_PORT=8080
|
||||||
|
- PUID=950
|
||||||
|
- PGID=950
|
||||||
|
volumes:
|
||||||
|
- /docker/config/qbittorent:/config
|
||||||
|
- /data/media:/data/media
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### Gluetun
|
||||||
|
Gluetun is used to pass qbittorrent connections through a vpn, if that's not necessary for you it can be omitted, just move the port statement to qbittorrent. If using gluetun research your provider on their [wiki](https://github.com/qdm12/gluetun-wiki/tree/main/setup) and edit the env file accordingly
|
||||||
|
|
||||||
|
When using gluetun all references to qbittorrent (eg, qbittorrent:8080) must be done through gluetun (eg, gluetun:8080)
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><b>SABnzbd<b></summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
sabnzbd:
|
||||||
|
container_name: sabnzbd
|
||||||
|
image: ghcr.io/hotio/sabnzbd
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "8090:8080"
|
||||||
|
environment:
|
||||||
|
- PUID=950
|
||||||
|
- PGID=950
|
||||||
|
volumes:
|
||||||
|
- /docker/config/sabnzbd:/config
|
||||||
|
- /data/media:/data/media
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
## Logging
|
||||||
|
<details>
|
||||||
|
<summary>Grafana</summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
grafana:
|
||||||
|
container_name: grafana
|
||||||
|
image: grafana/grafana:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary>Loki</summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
loki:
|
||||||
|
container_name: loki
|
||||||
|
image: grafana/loki:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "3100:3100"
|
||||||
|
volumes:
|
||||||
|
- /docker/config/loki-config.yml:/etc/loki/loki-config.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary>Promtail</summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
promtail:
|
||||||
|
container_name: promtail
|
||||||
|
image: grafana/promtail:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- /docker/config/promtail-config.yml:/etc/promtail/promtail-config.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user