forked from spongy/nerm.al
added server docker files
This commit is contained in:
parent
2e1e028595
commit
47567cbcc2
151
backend/docker-compose.yaml
Normal file
151
backend/docker-compose.yaml
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
services:
|
||||||
|
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
|
||||||
|
# Downloaders
|
||||||
|
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
|
||||||
|
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
|
||||||
|
|
||||||
|
# Downloaders
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
tachidesk:
|
||||||
|
container_name: tachidesk
|
||||||
|
image: ghcr.io/suwayomi/tachidesk:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "4567:4567"
|
||||||
|
environment:
|
||||||
|
- PUID=950
|
||||||
|
- PGID=950
|
||||||
|
volumes:
|
||||||
|
- /data/media/books/new/:/home/suwayomi/.local/share/Tachidesk/downloads
|
||||||
|
- /docker/config/tachidesk/:/home/suwayomi/.local/share/Tachidesk
|
||||||
|
# Logging
|
||||||
|
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
|
||||||
|
promtail:
|
||||||
|
container_name: promtail
|
||||||
|
image: grafana/promtail:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- /docker/config/promtail-config.yml:/etc/promtail/promtail-config.yml
|
||||||
|
grafana:
|
||||||
|
container_name: grafana
|
||||||
|
image: grafana/grafana:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
6
backend/env/doplarr
vendored
Normal file
6
backend/env/doplarr
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# general > api key
|
||||||
|
SONARR__API=
|
||||||
|
RADARR__API=
|
||||||
|
|
||||||
|
DISCORD__TOKEN=
|
||||||
|
|
3
backend/env/gluetun
vendored
Normal file
3
backend/env/gluetun
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
WIREGUARD_PRIVATE_KEY=
|
||||||
|
WIREGUARD_PRESHARED_KEY=
|
||||||
|
WIREGUARD_ADDRESSES=
|
66
frontend/authentik.yaml
Normal file
66
frontend/authentik.yaml
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
services:
|
||||||
|
postgresql:
|
||||||
|
container_name: postgresql
|
||||||
|
image: docker.io/library/postgres:16-alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
|
||||||
|
start_period: 20s
|
||||||
|
interval: 30s
|
||||||
|
retries: 5
|
||||||
|
timeout: 5s
|
||||||
|
volumes:
|
||||||
|
- /data/postgresql:/var/lib/postgresql/data
|
||||||
|
env_file:
|
||||||
|
- ./env/authentik
|
||||||
|
redis:
|
||||||
|
container_name: redis
|
||||||
|
image: docker.io/library/redis:alpine
|
||||||
|
command: --save 60 1 --loglevel warning
|
||||||
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
|
||||||
|
start_period: 20s
|
||||||
|
interval: 30s
|
||||||
|
retries: 5
|
||||||
|
timeout: 3s
|
||||||
|
volumes:
|
||||||
|
- /data/redis:/data
|
||||||
|
server:
|
||||||
|
container_name: authentik_server
|
||||||
|
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.8.3}
|
||||||
|
restart: unless-stopped
|
||||||
|
command: server
|
||||||
|
environment:
|
||||||
|
AUTHENTIK_REDIS__HOST: redis
|
||||||
|
AUTHENTIK_POSTGRESQL__HOST: postgresql
|
||||||
|
volumes:
|
||||||
|
- /data/authentik/media:/media
|
||||||
|
- /data/authentik/custom-templates:/templates
|
||||||
|
env_file:
|
||||||
|
- ./env/authentik
|
||||||
|
ports:
|
||||||
|
- "9000:9000"
|
||||||
|
- "9443:9443"
|
||||||
|
depends_on:
|
||||||
|
- postgresql
|
||||||
|
- redis
|
||||||
|
worker:
|
||||||
|
container_name: authentik_worker
|
||||||
|
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.8.3}
|
||||||
|
restart: unless-stopped
|
||||||
|
command: worker
|
||||||
|
environment:
|
||||||
|
AUTHENTIK_REDIS__HOST: redis
|
||||||
|
AUTHENTIK_POSTGRESQL__HOST: postgresql
|
||||||
|
user: root
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- /data/authentik/media:/media
|
||||||
|
- /data/certs:/certs
|
||||||
|
- /data/authentik/custom-templates:/templates
|
||||||
|
env_file:
|
||||||
|
- ./env/authentik
|
||||||
|
depends_on:
|
||||||
|
- postgresql
|
||||||
|
- redis
|
68
frontend/docker-compose.yaml
Normal file
68
frontend/docker-compose.yaml
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
include:
|
||||||
|
- authentik.yaml
|
||||||
|
|
||||||
|
services:
|
||||||
|
vaultwarden:
|
||||||
|
container_name: vaultwarden
|
||||||
|
image: vaultwarden/server:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- ./env/vaultwarden
|
||||||
|
ports:
|
||||||
|
- "82:80"
|
||||||
|
environment:
|
||||||
|
- DOMAIN=https://vault.nerm.al
|
||||||
|
- PUSH_ENABLED=true
|
||||||
|
volumes:
|
||||||
|
- /data/vaultwarden:/data
|
||||||
|
kavita:
|
||||||
|
container_name: kavita
|
||||||
|
image: jvmilazz0/kavita:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "5000:5000"
|
||||||
|
environment:
|
||||||
|
- PUID=950
|
||||||
|
- GUID=950
|
||||||
|
volumes:
|
||||||
|
- /docker/config/kavita:/app/config
|
||||||
|
- /data/media:/data/media
|
||||||
|
gitea:
|
||||||
|
container_name: gitea
|
||||||
|
image: gitea/gitea:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
- "222:22"
|
||||||
|
environment:
|
||||||
|
- USER_UID=950
|
||||||
|
- USER_GID=950
|
||||||
|
volumes:
|
||||||
|
- /data/files/gitea:/data
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
db:
|
||||||
|
image: mysql:8
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=gitea
|
||||||
|
- MYSQL_USER=gitea
|
||||||
|
- MYSQL_PASSWORD=gitea
|
||||||
|
- MYSQL_DATABASE=gitea
|
||||||
|
volumes:
|
||||||
|
- /data/files/mysql:/var/lib/mysql
|
||||||
|
|
||||||
|
jellyfin:
|
||||||
|
container_name: jellyfin
|
||||||
|
image: ghcr.io/hotio/jellyfin
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "8096:8096"
|
||||||
|
environment:
|
||||||
|
- PUID=950
|
||||||
|
- PGID=950
|
||||||
|
volumes:
|
||||||
|
- /docker/config/jellyfin:/app/config
|
||||||
|
- /data/media:/data/media
|
8
frontend/env/authentik
vendored
Normal file
8
frontend/env/authentik
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
POSTGRES_PASSWORD=<FILL WITH POSTGRES PASSWORD>
|
||||||
|
POSTGRES_USER=authentik
|
||||||
|
POSTGRES_DB=authentik
|
||||||
|
AUTHENTIK_SECRET_KEY=<FILL WITH AUTHENTIK SECRET KEY>
|
||||||
|
|
||||||
|
AUTHENTIK_POSTGRESQL__USER=authentik
|
||||||
|
AUTHENTIK_POSTGRESQL__NAME=authentik
|
||||||
|
AUTHENTIK_POSTGRESQL__PASSWORD=<FILL WITH POSTGRES PASSWORD>
|
3
frontend/env/vaultwarden
vendored
Normal file
3
frontend/env/vaultwarden
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# generate at https://bitwarden.com/host/
|
||||||
|
PUSH_INSTALLATION_ID=
|
||||||
|
PUSH_INSTALLATION_KEY=
|
62
server/docker-compose.yaml
Normal file
62
server/docker-compose.yaml
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
services:
|
||||||
|
proxy:
|
||||||
|
container_name: mc-velocity
|
||||||
|
image: itzg/mc-proxy
|
||||||
|
environment:
|
||||||
|
TYPE: VELOCITY
|
||||||
|
DEBUG: "false"
|
||||||
|
ENABLE_RCON: "true"
|
||||||
|
UID: 950
|
||||||
|
GID: 950
|
||||||
|
ports:
|
||||||
|
- "25565:25577"
|
||||||
|
volumes:
|
||||||
|
- /data/mc/config/velocity.toml:/config/velocity.toml:ro
|
||||||
|
- /data/mc/config/forwarding.secret:/config/forwarding.secret:ro
|
||||||
|
- /data/mc/server:/server
|
||||||
|
lobby:
|
||||||
|
container_name: mc-lobby
|
||||||
|
image: itzg/minecraft-server
|
||||||
|
environment:
|
||||||
|
EULA: "TRUE"
|
||||||
|
ONLINE_MODE: "FALSE"
|
||||||
|
TYPE: PAPER
|
||||||
|
SYNC_SKIP_NEWER_IN_DESTINATION: false
|
||||||
|
UID: 950
|
||||||
|
GID: 950
|
||||||
|
JVM_OPTS: -Dpaper.disableChannelLimit=true
|
||||||
|
volumes:
|
||||||
|
- /data/mc/config/paper-global.yml:/config/paper-global.yml
|
||||||
|
- /data/mc/lobby/:/data
|
||||||
|
ports:
|
||||||
|
- "25566:25565"
|
||||||
|
vanilla:
|
||||||
|
container_name: mc-vanilla
|
||||||
|
image: itzg/minecraft-server
|
||||||
|
environment:
|
||||||
|
EULA: "TRUE"
|
||||||
|
ONLINE_MODE: "FALSE"
|
||||||
|
TYPE: PAPER
|
||||||
|
SYNC_SKIP_NEWER_IN_DESTINATION: false
|
||||||
|
UID: 950
|
||||||
|
GID: 950
|
||||||
|
volumes:
|
||||||
|
- /data/mc/config/paper-global.yml:/config/paper-global.yml
|
||||||
|
- /data/mc/vanilla:/data
|
||||||
|
ports:
|
||||||
|
- "25567:25565"
|
||||||
|
rpg:
|
||||||
|
container_name: mc-rpg
|
||||||
|
image: itzg/minecraft-server:java17
|
||||||
|
environment:
|
||||||
|
EULA: "true"
|
||||||
|
UID: 950
|
||||||
|
GID: 950
|
||||||
|
MEMORY: "24G"
|
||||||
|
TYPE: "FORGE"
|
||||||
|
VERSION: "1.18.2"
|
||||||
|
FORGE_VERSION: "40.2.17"
|
||||||
|
ports:
|
||||||
|
- "25568:25565"
|
||||||
|
volumes:
|
||||||
|
- /data/mc/rpg:/data
|
Loading…
Reference in New Issue
Block a user