Compare commits
2 Commits
9b0fac4b15
...
757fc14476
Author | SHA1 | Date |
---|---|---|
![]() |
757fc14476 | |
![]() |
75bed9a896 |
|
@ -0,0 +1,145 @@
|
||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
RPH_UID=${RPH_UID:-${UID}}
|
||||||
|
|
||||||
|
rph-docker-exec () {
|
||||||
|
docker exec $1 runtipi-host "${@:2}"
|
||||||
|
}
|
||||||
|
|
||||||
|
rph-shell() {
|
||||||
|
if rph-docker-exec "" true; then
|
||||||
|
rph-docker-exec "-it --user ${RPH_UID}" bash
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
rph-exec () {
|
||||||
|
local set_x=" set -x; pwd; id; "
|
||||||
|
[ -z "$QUIET" ] || set_x=""
|
||||||
|
local cli="cd ${START_DIR:-/srv/runtipi};${set_x} ${1:?Must supply command} "
|
||||||
|
if [ -n "$ROOT_EXEC" ]; then
|
||||||
|
cli="$cli ${*:2}"
|
||||||
|
else
|
||||||
|
cli="$cli "${2:+"$(
|
||||||
|
printf '\"%s\" ' "${@:2}"
|
||||||
|
)"}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if rph exec runtipi true; then
|
||||||
|
if [ -n "$ROOT_EXEC" ]; then
|
||||||
|
rph exec runtipi /bin/bash <<<"$cli"
|
||||||
|
else
|
||||||
|
rph shell --uid "${RPH_UID}" runtipi /bin/bash -c "$cli"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "ERROR: ${_ERROR_MGS:-"Please check if runtipi jail has started! Have you tried 'full-start'?"}" >&2
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
runtipi-cli() {
|
||||||
|
rph-exec ./runtipi-cli "${@}"
|
||||||
|
}
|
||||||
|
|
||||||
|
runtipi-app-docker-compose() {
|
||||||
|
local APP="${1:-Must supply app name}"
|
||||||
|
local LOCAL_YML="user-config/${APP}/docker-compose.yml"
|
||||||
|
|
||||||
|
rph exec runtipi test -e "/srv/runtipi/${LOCAL_YML}" || LOCAL_YML=""
|
||||||
|
[ -z "$LOCAL_YML" ] || LOCAL_YML="--file ${LOCAL_YML}"
|
||||||
|
|
||||||
|
rph-exec docker compose \
|
||||||
|
--env-file user-config/.env.local \
|
||||||
|
--env-file app-data/${APP}/app.env \
|
||||||
|
--env-file user-config/${APP}/app.env \
|
||||||
|
--project-name ${APP} \
|
||||||
|
--file apps/${APP}/docker-compose.yml \
|
||||||
|
--file repos/29ca930bfdaffa1dfabf5726336380ede7066bc53297e3c0c868b27c97282903/apps/docker-compose.common.yml \
|
||||||
|
${LOCAL_YML} ${@:2}
|
||||||
|
}
|
||||||
|
|
||||||
|
dls() {
|
||||||
|
# Default docker ps format is:
|
||||||
|
# rph-exec docker ps --format "table {{ .ID }}\t{{ .Image }}\t{{ .Command }}\t{{ .Created }}\t{{ .Status }}\t{{ .Ports }}\t{{ .Names }}"
|
||||||
|
|
||||||
|
local base='{{.Status}}\t{{.ID}}\t{{.Names}}\t{{.Image}}' #'\t{{.Networks}}\t{{.Ports}}\t{{.Mounts}}'
|
||||||
|
local compose='{{.Label "com.docker.compose.project"}}\t{{.Label "com.docker.compose.service"}}'
|
||||||
|
local format="table $compose\t$base"
|
||||||
|
ROOT_EXEC=1 QUIET=${QUIET:-0} rph-exec \
|
||||||
|
docker "container ls --all --format '$format' | ( sed -u '1s/.*/\U&/; q'; sed -Ee 's|^|555|; s|^555runtipi|000runtipi|;' | sort | sed -Ee 's/^[[:digit:]]{3}//' )"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "${1}" in
|
||||||
|
cli)
|
||||||
|
runtipi-cli "${@:2}"
|
||||||
|
;;
|
||||||
|
log)
|
||||||
|
rph-exec "POSTGRES_PASSWORD=_ TIPI_VERSION=_ LOCAL_DOMAIN=_ DOMAIN=_" docker compose --env-file user-config/.env.local logs --tail=${TAIL:-40} "${2:-runtipi}" ${3:+"${@:3}"}
|
||||||
|
;;
|
||||||
|
start)
|
||||||
|
runtipi-cli start --env-file user-config/.env.local --no-permissions
|
||||||
|
;;
|
||||||
|
update)
|
||||||
|
runtipi-cli update --env-file user-config/.env.local --no-permissions "${2:?Must supply version}" "${@:3}"
|
||||||
|
;;
|
||||||
|
full-start)
|
||||||
|
if ! rph exec runtipi true; then
|
||||||
|
rph start runtipi
|
||||||
|
sleep 1s
|
||||||
|
fi
|
||||||
|
_ERROR_MSG="ERROR: failed to invoke a command inside the runtipi jail and can't start the jail." \
|
||||||
|
runtipi-cli start --env-file user-config/.env.local --no-permissions
|
||||||
|
;;
|
||||||
|
shell)
|
||||||
|
rph-shell
|
||||||
|
;;
|
||||||
|
exec)
|
||||||
|
rph-exec "${@:2}"
|
||||||
|
;;
|
||||||
|
docker)
|
||||||
|
rph-exec docker "${@:2}"
|
||||||
|
;;
|
||||||
|
dls)
|
||||||
|
dls "${@:2}"
|
||||||
|
;;
|
||||||
|
dcoapp)
|
||||||
|
runtipi-app-docker-compose "${@:2}"
|
||||||
|
;;
|
||||||
|
dockge)
|
||||||
|
START_DIR=/srv/dockge/stacks/${2:?Must supply stack name} rph-exec docker compose "${@:3}"
|
||||||
|
;;
|
||||||
|
setup)
|
||||||
|
ln -s $2 "$(cd "$(dirname "$0")" && pwd)/$(basename "$0")" "$HOME/.local/bin/"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf '%s %-12s %s\n' \
|
||||||
|
"" "" ""\
|
||||||
|
"Usage:" "" ""\
|
||||||
|
" $(basename "$0") <command> [args...]" "" ""\
|
||||||
|
"" "" "" \
|
||||||
|
"Available commands:" "" ""\
|
||||||
|
"" "" "" \
|
||||||
|
"runtipi" "" ""\
|
||||||
|
"" "cli" "runtipi-cli" \
|
||||||
|
"" "full-start" "start runtipi jail, following with starting runtipi" \
|
||||||
|
"" "log" "runtipi docker stack logs" \
|
||||||
|
"" "start" "start runtipi" \
|
||||||
|
"" "update" "update runtipi to a specific version" \
|
||||||
|
"" "" "" \
|
||||||
|
"docker/docker-compose" "" ""\
|
||||||
|
"" "dcoapp" "docker compose for runtipi apps" \
|
||||||
|
"" "dls" "stylized docker ls" \
|
||||||
|
"" "docker" "docker" \
|
||||||
|
"" "dockge" "docker compose for dockge stacks" \
|
||||||
|
"" "" "" \
|
||||||
|
"misc." "" ""\
|
||||||
|
"" "exec" "execute within the shell, START_DIR env applies" \
|
||||||
|
"" "shell" "enter an insteractive shell" \
|
||||||
|
"" "" "" \
|
||||||
|
"" "setup" "setup runtipictl in user's .local/bin dir" \
|
||||||
|
"" "" "" \
|
||||||
|
"Related env. vars:" "" "" \
|
||||||
|
"" "VISUAL EDITOR RPH_UID QUIET START_DIR ROOT_EXEC" ""
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
|
@ -4,11 +4,14 @@ jlmkr () {
|
||||||
sudo VISUAL="${VISUAL:-}" EDITOR="${EDITOR:-}" $SCALE_POOL_ROOT/jailmaker/jlmkr.py "${@:---help}"
|
sudo VISUAL="${VISUAL:-}" EDITOR="${EDITOR:-}" $SCALE_POOL_ROOT/jailmaker/jlmkr.py "${@:---help}"
|
||||||
}
|
}
|
||||||
|
|
||||||
JAIL_UID=${JAIL_UID:-${UID}}
|
RPH_UID=${RPH_UID:-${UID}}
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
BASE_NAME="$(basename "$0")"
|
||||||
|
BASE_BASE_NAME="${BASE_NAME%.*}"
|
||||||
|
|
||||||
jlmkr-shell() {
|
jlmkr-shell() {
|
||||||
if jlmkr exec runtipi true; then
|
if jlmkr exec runtipi true; then
|
||||||
jlmkr shell --uid "${JAIL_UID}" runtipi
|
jlmkr shell --uid "${RPH_UID}" runtipi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +31,7 @@ jlmkr-exec () {
|
||||||
if [ -n "$ROOT_EXEC" ]; then
|
if [ -n "$ROOT_EXEC" ]; then
|
||||||
jlmkr exec runtipi /bin/bash <<<"$cli"
|
jlmkr exec runtipi /bin/bash <<<"$cli"
|
||||||
else
|
else
|
||||||
jlmkr shell --uid "${JAIL_UID}" runtipi /bin/bash -c "$cli"
|
jlmkr shell --uid "${RPH_UID}" runtipi /bin/bash -c "$cli"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "ERROR: ${_ERROR_MGS:-"Please check if runtipi jail has started! Have you tried 'full-start'?"}" >&2
|
echo "ERROR: ${_ERROR_MGS:-"Please check if runtipi jail has started! Have you tried 'full-start'?"}" >&2
|
||||||
|
@ -108,13 +111,16 @@ case "${1}" in
|
||||||
START_DIR=/srv/dockge/stacks/${2:?Must supply stack name} jlmkr-exec docker compose "${@:3}"
|
START_DIR=/srv/dockge/stacks/${2:?Must supply stack name} jlmkr-exec docker compose "${@:3}"
|
||||||
;;
|
;;
|
||||||
setup)
|
setup)
|
||||||
ln -s $2 "$(cd "$(dirname "$0")" && pwd)/$(basename "$0")" "$HOME/.local/bin/"
|
ln -s $2 "$(cd "${SCRIPT_DIR}" && pwd)/${BASE_NAME}" "${3:-$HOME/.local/bin/}"
|
||||||
|
;;
|
||||||
|
edit)
|
||||||
|
${VISUAL:-${EDITOR:-vi}} $0
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
printf '%s %-12s %s\n' \
|
printf '%s %-12s %s\n' \
|
||||||
"" "" ""\
|
"" "" ""\
|
||||||
"Usage:" "" ""\
|
"Usage:" "" ""\
|
||||||
" $(basename "$0") <command> [args...]" "" ""\
|
" ${BASE_NAME} <command> [args...]" "" ""\
|
||||||
"" "" "" \
|
"" "" "" \
|
||||||
"Available commands:" "" ""\
|
"Available commands:" "" ""\
|
||||||
"" "" "" \
|
"" "" "" \
|
||||||
|
@ -136,9 +142,12 @@ case "${1}" in
|
||||||
"" "shell" "enter an insteractive shell" \
|
"" "shell" "enter an insteractive shell" \
|
||||||
"" "" "" \
|
"" "" "" \
|
||||||
"" "setup" "setup runtipictl in user's .local/bin dir" \
|
"" "setup" "setup runtipictl in user's .local/bin dir" \
|
||||||
|
"" "" "${BASE_NAME} setup" \
|
||||||
|
"" "" "${BASE_NAME} setup '' ~/.local/bin/${BASE_BASE_NAME}" \
|
||||||
|
"" "" "${BASE_NAME} setup '' ~/.local/bin/runtipictl" \
|
||||||
"" "" "" \
|
"" "" "" \
|
||||||
"Related env. vars:" "" "" \
|
"Related env. vars:" "" "" \
|
||||||
"" "VISUAL EDITOR JAIL_UID QUIET START_DIR ROOT_EXEC" ""
|
"" "VISUAL EDITOR RPH_UID QUIET START_DIR ROOT_EXEC" ""
|
||||||
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
|
@ -23,10 +23,12 @@ services:
|
||||||
# - "container:vols-plex"
|
# - "container:vols-plex"
|
||||||
labels:
|
labels:
|
||||||
# Websecure
|
# Websecure
|
||||||
traefik.http.routers.<service-name>.middlewares: authentik_sysmgr@file
|
# traefik.http.routers.<service-name>.middlewares: authentik_sysmgr@file
|
||||||
|
traefik.http.routers.<service-name>.middlewares: lan-only@file
|
||||||
# traefik.http.routers.<service-name>-more.rule: Host(`<service-name>.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
# traefik.http.routers.<service-name>-more.rule: Host(`<service-name>.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
||||||
# traefik.http.routers.<service-name>-more.entrypoints: websecure
|
# traefik.http.routers.<service-name>-more.entrypoints: websecure
|
||||||
# traefik.http.routers.<service-name>-more.service: <service-name>
|
# traefik.http.routers.<service-name>-more.service: <service-name>
|
||||||
# traefik.http.routers.<service-name>-more.middlewares: authentik_sysmgr@file
|
# traefik.http.routers.<service-name>-more.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.<service-name>-more.middlewares: lan-only@file
|
||||||
# traefik.http.routers.<service-name>-more.tls: true
|
# traefik.http.routers.<service-name>-more.tls: true
|
||||||
# traefik.http.routers.<service-name>-more.tls.certresolver: myresolver
|
# traefik.http.routers.<service-name>-more.tls.certresolver: myresolver
|
|
@ -15,6 +15,18 @@
|
||||||
watch: true
|
watch: true
|
||||||
|
|
||||||
entryPoints:
|
entryPoints:
|
||||||
|
plex:
|
||||||
|
address: ':32400'
|
||||||
|
forwardedHeaders:
|
||||||
|
trustedIPs:
|
||||||
|
- "127.0.0.1/32"
|
||||||
|
- "172.16.0.0/12"
|
||||||
|
http:
|
||||||
|
redirections:
|
||||||
|
entryPoint:
|
||||||
|
to: 'websecure'
|
||||||
|
scheme: 'https'
|
||||||
|
|
||||||
web:
|
web:
|
||||||
address: ':80'
|
address: ':80'
|
||||||
forwardedHeaders:
|
forwardedHeaders:
|
||||||
|
|
|
@ -4,3 +4,5 @@ services:
|
||||||
- type: bind
|
- type: bind
|
||||||
source: ${ROOT_FOLDER_HOST}/user-config/${APP_ID}/media
|
source: ${ROOT_FOLDER_HOST}/user-config/${APP_ID}/media
|
||||||
target: /media
|
target: /media
|
||||||
|
labels:
|
||||||
|
traefik.http.routers.authentik.rule: Host(`auth.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
||||||
|
|
|
@ -16,13 +16,17 @@ services:
|
||||||
RUNTIPI_LOCAL_DOMAIN: "${LOCAL_DOMAIN}"
|
RUNTIPI_LOCAL_DOMAIN: "${LOCAL_DOMAIN}"
|
||||||
RUNTIPI_DOMAIN: "${DOMAIN}"
|
RUNTIPI_DOMAIN: "${DOMAIN}"
|
||||||
RUNTIPI_ROOT_DOMAIN: "${ROOT_DOMAIN}"
|
RUNTIPI_ROOT_DOMAIN: "${ROOT_DOMAIN}"
|
||||||
|
SZ_USER_UID: "${SZ_USER_UID}"
|
||||||
|
SZ_USER_GID: "${SZ_USER_GID}"
|
||||||
PUID: "${SZ_USER_UID}"
|
PUID: "${SZ_USER_UID}"
|
||||||
PGID: "${SZ_USER_GID}"
|
PGID: "${SZ_USER_GID}"
|
||||||
|
TZ: "${TZ:?Did you forget to define TZ in the root RunTipi .env.local?}"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: true
|
traefik.http.routers.dockge.rule: Host(`dockge.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
||||||
# traefik.http.services.dockge.loadbalancer.server.port: 5001
|
|
||||||
traefik.http.routers.dockge.entrypoints: websecure
|
|
||||||
traefik.http.routers.dockge.rule: Host(`dockge.${ROOT_DOMAIN}`)
|
|
||||||
traefik.http.routers.dockge.service: dockge
|
|
||||||
traefik.http.routers.dockge.middlewares: authentik_sysmgr@file
|
traefik.http.routers.dockge.middlewares: authentik_sysmgr@file
|
||||||
traefik.http.routers.dockge.tls.certresolver: myresolver
|
|
||||||
|
# traefik.enable: true
|
||||||
|
# # traefik.http.services.dockge.loadbalancer.server.port: 5001
|
||||||
|
# traefik.http.routers.dockge.entrypoints: websecure
|
||||||
|
# traefik.http.routers.dockge.service: dockge
|
||||||
|
# traefik.http.routers.dockge.tls.certresolver: myresolver
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
services:
|
||||||
|
dozzle:
|
||||||
|
hostname: dozzle.docker
|
||||||
|
environment:
|
||||||
|
PUID: "${SZ_USER_UID}"
|
||||||
|
PGID: "${SZ_USER_GID}"
|
||||||
|
# RUNTIPI Environment
|
||||||
|
RUNTIPI_APP_PORT: "${APP_PORT}"
|
||||||
|
RUNTIPI_APP_ID: "${APP_ID}"
|
||||||
|
RUNTIPI_APP_DATA_DIR: "${APP_DATA_DIR}"
|
||||||
|
RUNTIPI_APP_EXPOSED: "${APP_EXPOSED:-}"
|
||||||
|
RUNTIPI_APP_DOMAIN: "${APP_DOMAIN}"
|
||||||
|
RUNTIPI_APP_HOST: "${APP_HOST}"
|
||||||
|
RUNTIPI_LOCAL_DOMAIN: "${LOCAL_DOMAIN}"
|
||||||
|
RUNTIPI_DOMAIN: "${DOMAIN}"
|
||||||
|
RUNTIPI_ROOT_DOMAIN: "${ROOT_DOMAIN}"
|
||||||
|
# volumes_from:
|
||||||
|
# - "container:vols-dl"
|
||||||
|
# - "container:vols-personal-media"
|
||||||
|
# - "container:vols-shared-media"
|
||||||
|
# - "container:vols-media"
|
||||||
|
# - "container:vols-arr"
|
||||||
|
# - "container:vols-plex"
|
||||||
|
labels:
|
||||||
|
# Websecure
|
||||||
|
traefik.http.routers.dozzle.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.dozzle.middlewares: lan-only@file
|
||||||
|
# traefik.http.routers.dozzle-more.rule: Host(`dozzle.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
||||||
|
# traefik.http.routers.dozzle-more.entrypoints: websecure
|
||||||
|
# traefik.http.routers.dozzle-more.service: dozzle
|
||||||
|
# traefik.http.routers.dozzle-more.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.dozzle-more.middlewares: lan-only@file
|
||||||
|
# traefik.http.routers.dozzle-more.tls: true
|
||||||
|
# traefik.http.routers.dozzle-more.tls.certresolver: myresolver
|
|
@ -0,0 +1,25 @@
|
||||||
|
services:
|
||||||
|
homepage:
|
||||||
|
environment:
|
||||||
|
PUID: "${SZ_USER_UID}"
|
||||||
|
PGID: "${SZ_USER_GID}"
|
||||||
|
# RUNTIPI Environment
|
||||||
|
RUNTIPI_APP_PORT: "${APP_PORT}"
|
||||||
|
RUNTIPI_APP_ID: "${APP_ID}"
|
||||||
|
RUNTIPI_APP_DATA_DIR: "${APP_DATA_DIR}"
|
||||||
|
RUNTIPI_APP_EXPOSED: "${APP_EXPOSED:-}"
|
||||||
|
RUNTIPI_APP_DOMAIN: "${APP_DOMAIN}"
|
||||||
|
RUNTIPI_APP_HOST: "${APP_HOST}"
|
||||||
|
RUNTIPI_LOCAL_DOMAIN: "${LOCAL_DOMAIN}"
|
||||||
|
RUNTIPI_DOMAIN: "${DOMAIN}"
|
||||||
|
RUNTIPI_ROOT_DOMAIN: "${ROOT_DOMAIN}"
|
||||||
|
|
||||||
|
labels:
|
||||||
|
# Websecure
|
||||||
|
traefik.http.routers.homepage.middlewares: authentik_sysmgr@file
|
||||||
|
traefik.http.routers.homepage.rule: Host(`www.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
||||||
|
# #traefik.http.routers.homepage-more.rule: Host(`www.${LEGACY_ROOT_DOMAIN}`)
|
||||||
|
# traefik.http.routers.homepage-more.entrypoints: websecure
|
||||||
|
# traefik.http.routers.homepage-more.service: homepage
|
||||||
|
# traefik.http.routers.homepage-more.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.homepage-more.tls.certresolver: myresolver
|
|
@ -0,0 +1,19 @@
|
||||||
|
services:
|
||||||
|
overseerr:
|
||||||
|
hostname: overseerr.docker
|
||||||
|
environment:
|
||||||
|
PUID: "${SZ_USER_UID}"
|
||||||
|
PGID: "${SZ_USER_GID}"
|
||||||
|
# RUNTIPI Environment
|
||||||
|
RUNTIPI_APP_PORT: "${APP_PORT}"
|
||||||
|
RUNTIPI_APP_ID: "${APP_ID}"
|
||||||
|
RUNTIPI_APP_DATA_DIR: "${APP_DATA_DIR}"
|
||||||
|
RUNTIPI_APP_EXPOSED: "${APP_EXPOSED:-}"
|
||||||
|
RUNTIPI_APP_DOMAIN: "${APP_DOMAIN}"
|
||||||
|
RUNTIPI_APP_HOST: "${APP_HOST}"
|
||||||
|
RUNTIPI_LOCAL_DOMAIN: "${LOCAL_DOMAIN}"
|
||||||
|
RUNTIPI_DOMAIN: "${DOMAIN}"
|
||||||
|
RUNTIPI_ROOT_DOMAIN: "${ROOT_DOMAIN}"
|
||||||
|
labels:
|
||||||
|
# Websecure
|
||||||
|
traefik.http.routers.overseerr.rule: Host(`req.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
|
@ -0,0 +1,27 @@
|
||||||
|
services:
|
||||||
|
prowlarr:
|
||||||
|
hostname: prowlarr.docker
|
||||||
|
environment:
|
||||||
|
PUID: "${SZ_USER_UID}"
|
||||||
|
PGID: "${SZ_USER_GID}"
|
||||||
|
# RUNTIPI Environment
|
||||||
|
RUNTIPI_APP_PORT: "${APP_PORT}"
|
||||||
|
RUNTIPI_APP_ID: "${APP_ID}"
|
||||||
|
RUNTIPI_APP_DATA_DIR: "${APP_DATA_DIR}"
|
||||||
|
RUNTIPI_APP_EXPOSED: "${APP_EXPOSED:-}"
|
||||||
|
RUNTIPI_APP_DOMAIN: "${APP_DOMAIN}"
|
||||||
|
RUNTIPI_APP_HOST: "${APP_HOST}"
|
||||||
|
RUNTIPI_LOCAL_DOMAIN: "${LOCAL_DOMAIN}"
|
||||||
|
RUNTIPI_DOMAIN: "${DOMAIN}"
|
||||||
|
RUNTIPI_ROOT_DOMAIN: "${ROOT_DOMAIN}"
|
||||||
|
labels:
|
||||||
|
# Websecure
|
||||||
|
traefik.http.routers.prowlarr.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.prowlarr.middlewares: lan-only@file
|
||||||
|
traefik.http.routers.prowlarr.rule: Host(`prowlarr.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
||||||
|
# traefik.http.routers.prowlarr-more.entrypoints: websecure
|
||||||
|
# traefik.http.routers.prowlarr-more.service: prowlarr
|
||||||
|
# traefik.http.routers.prowlarr-more.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.prowlarr-more.middlewares: lan-only@file
|
||||||
|
# traefik.http.routers.prowlarr-more.tls: true
|
||||||
|
# traefik.http.routers.prowlarr-more.tls.certresolver: myresolver
|
|
@ -0,0 +1,29 @@
|
||||||
|
services:
|
||||||
|
radarr:
|
||||||
|
hostname: radarr.docker
|
||||||
|
environment:
|
||||||
|
PUID: "${SZ_USER_UID}"
|
||||||
|
PGID: "${SZ_USER_GID}"
|
||||||
|
# RUNTIPI Environment
|
||||||
|
RUNTIPI_APP_PORT: "${APP_PORT}"
|
||||||
|
RUNTIPI_APP_ID: "${APP_ID}"
|
||||||
|
RUNTIPI_APP_DATA_DIR: "${APP_DATA_DIR}"
|
||||||
|
RUNTIPI_APP_EXPOSED: "${APP_EXPOSED:-}"
|
||||||
|
RUNTIPI_APP_DOMAIN: "${APP_DOMAIN}"
|
||||||
|
RUNTIPI_APP_HOST: "${APP_HOST}"
|
||||||
|
RUNTIPI_LOCAL_DOMAIN: "${LOCAL_DOMAIN}"
|
||||||
|
RUNTIPI_DOMAIN: "${DOMAIN}"
|
||||||
|
RUNTIPI_ROOT_DOMAIN: "${ROOT_DOMAIN}"
|
||||||
|
volumes_from:
|
||||||
|
- "container:vols-arr"
|
||||||
|
labels:
|
||||||
|
# Websecure
|
||||||
|
traefik.http.routers.radarr.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.radarr.middlewares: lan-only@file
|
||||||
|
# traefik.http.routers.radarr-more.rule: Host(`radarr.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
||||||
|
# traefik.http.routers.radarr-more.entrypoints: websecure
|
||||||
|
# traefik.http.routers.radarr-more.service: radarr
|
||||||
|
# traefik.http.routers.radarr-more.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.radarr-more.middlewares: lan-only@file
|
||||||
|
# traefik.http.routers.radarr-more.tls: true
|
||||||
|
# traefik.http.routers.radarr-more.tls.certresolver: myresolver
|
|
@ -0,0 +1,29 @@
|
||||||
|
services:
|
||||||
|
sabnzbd:
|
||||||
|
hostname: nzb.docker
|
||||||
|
environment:
|
||||||
|
PUID: "${SZ_USER_UID}"
|
||||||
|
PGID: "${SZ_USER_GID}"
|
||||||
|
# RUNTIPI Environment
|
||||||
|
RUNTIPI_APP_PORT: "${APP_PORT}"
|
||||||
|
RUNTIPI_APP_ID: "${APP_ID}"
|
||||||
|
RUNTIPI_APP_DATA_DIR: "${APP_DATA_DIR}"
|
||||||
|
RUNTIPI_APP_EXPOSED: "${APP_EXPOSED:-}"
|
||||||
|
RUNTIPI_APP_DOMAIN: "${APP_DOMAIN}"
|
||||||
|
RUNTIPI_APP_HOST: "${APP_HOST}"
|
||||||
|
RUNTIPI_LOCAL_DOMAIN: "${LOCAL_DOMAIN}"
|
||||||
|
RUNTIPI_DOMAIN: "${DOMAIN}"
|
||||||
|
RUNTIPI_ROOT_DOMAIN: "${ROOT_DOMAIN}"
|
||||||
|
volumes_from:
|
||||||
|
- "container:vols-dl"
|
||||||
|
labels:
|
||||||
|
# Websecure
|
||||||
|
traefik.http.routers.sabnzbd.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.sabnzbd.middlewares: lan-only@file
|
||||||
|
traefik.http.routers.sabnzbd.rule: Host(`nzb.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
||||||
|
# traefik.http.routers.sabnzbd-more.entrypoints: websecure
|
||||||
|
# traefik.http.routers.sabnzbd-more.service: sabnzbd
|
||||||
|
# traefik.http.routers.sabnzbd-more.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.sabnzbd-more.middlewares: lan-only@file
|
||||||
|
# traefik.http.routers.sabnzbd-more.tls: true
|
||||||
|
# traefik.http.routers.sabnzbd-more.tls.certresolver: myresolver
|
|
@ -0,0 +1,29 @@
|
||||||
|
services:
|
||||||
|
sonarr:
|
||||||
|
hostname: sonarr.docker
|
||||||
|
environment:
|
||||||
|
PUID: "${SZ_USER_UID}"
|
||||||
|
PGID: "${SZ_USER_GID}"
|
||||||
|
# RUNTIPI Environment
|
||||||
|
RUNTIPI_APP_PORT: "${APP_PORT}"
|
||||||
|
RUNTIPI_APP_ID: "${APP_ID}"
|
||||||
|
RUNTIPI_APP_DATA_DIR: "${APP_DATA_DIR}"
|
||||||
|
RUNTIPI_APP_EXPOSED: "${APP_EXPOSED:-}"
|
||||||
|
RUNTIPI_APP_DOMAIN: "${APP_DOMAIN}"
|
||||||
|
RUNTIPI_APP_HOST: "${APP_HOST}"
|
||||||
|
RUNTIPI_LOCAL_DOMAIN: "${LOCAL_DOMAIN}"
|
||||||
|
RUNTIPI_DOMAIN: "${DOMAIN}"
|
||||||
|
RUNTIPI_ROOT_DOMAIN: "${ROOT_DOMAIN}"
|
||||||
|
volumes_from:
|
||||||
|
- "container:vols-arr"
|
||||||
|
labels:
|
||||||
|
# Websecure
|
||||||
|
traefik.http.routers.sonarr.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.sonarr.middlewares: lan-only@file
|
||||||
|
traefik.http.routers.sonarr-more.rule: Host(`sonarr.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
||||||
|
# traefik.http.routers.sonarr-more.entrypoints: websecure
|
||||||
|
# traefik.http.routers.sonarr-more.service: sonarr
|
||||||
|
# traefik.http.routers.sonarr-more.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.sonarr-more.middlewares: lan-only@file
|
||||||
|
# traefik.http.routers.sonarr-more.tls: true
|
||||||
|
# traefik.http.routers.sonarr-more.tls.certresolver: myresolver
|
|
@ -0,0 +1,24 @@
|
||||||
|
services:
|
||||||
|
syncthing:
|
||||||
|
hostname: syncthing.docker
|
||||||
|
environment:
|
||||||
|
PUID: "${SZ_USER_UID}"
|
||||||
|
PGID: "${SZ_USER_GID}"
|
||||||
|
# RUNTIPI Environment
|
||||||
|
RUNTIPI_APP_PORT: "${APP_PORT}"
|
||||||
|
RUNTIPI_APP_ID: "${APP_ID}"
|
||||||
|
RUNTIPI_APP_DATA_DIR: "${APP_DATA_DIR}"
|
||||||
|
RUNTIPI_APP_EXPOSED: "${APP_EXPOSED:-}"
|
||||||
|
RUNTIPI_APP_DOMAIN: "${APP_DOMAIN}"
|
||||||
|
RUNTIPI_APP_HOST: "${APP_HOST}"
|
||||||
|
RUNTIPI_LOCAL_DOMAIN: "${LOCAL_DOMAIN}"
|
||||||
|
RUNTIPI_DOMAIN: "${DOMAIN}"
|
||||||
|
RUNTIPI_ROOT_DOMAIN: "${ROOT_DOMAIN}"
|
||||||
|
volumes_from:
|
||||||
|
- "container:vols-all"
|
||||||
|
volumes:
|
||||||
|
- "/mnt/szmedia/sync.root:/mnt/szmedia/sync.root"
|
||||||
|
labels:
|
||||||
|
# Websecure
|
||||||
|
traefik.http.routers.syncthing.middlewares: authentik_sysmgr@file
|
||||||
|
traefik.http.routers.syncthing.rule: Host(`sync.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
|
@ -0,0 +1,20 @@
|
||||||
|
services:
|
||||||
|
tautulli:
|
||||||
|
hostname: tautulli.docker
|
||||||
|
environment:
|
||||||
|
PUID: "${SZ_USER_UID}"
|
||||||
|
PGID: "${SZ_USER_GID}"
|
||||||
|
# RUNTIPI Environment
|
||||||
|
RUNTIPI_APP_PORT: "${APP_PORT}"
|
||||||
|
RUNTIPI_APP_ID: "${APP_ID}"
|
||||||
|
RUNTIPI_APP_DATA_DIR: "${APP_DATA_DIR}"
|
||||||
|
RUNTIPI_APP_EXPOSED: "${APP_EXPOSED:-}"
|
||||||
|
RUNTIPI_APP_DOMAIN: "${APP_DOMAIN}"
|
||||||
|
RUNTIPI_APP_HOST: "${APP_HOST}"
|
||||||
|
RUNTIPI_LOCAL_DOMAIN: "${LOCAL_DOMAIN}"
|
||||||
|
RUNTIPI_DOMAIN: "${DOMAIN}"
|
||||||
|
RUNTIPI_ROOT_DOMAIN: "${ROOT_DOMAIN}"
|
||||||
|
labels:
|
||||||
|
# Websecure
|
||||||
|
traefik.http.routers.tautulli.middlewares: authentik_sysmgr@file
|
||||||
|
# traefik.http.routers.tautulli-more.rule: Host(`tautulli.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
|
@ -17,11 +17,7 @@ services:
|
||||||
- /srv/vaultwarden/data:/data
|
- /srv/vaultwarden/data:/data
|
||||||
labels:
|
labels:
|
||||||
# Websecure
|
# Websecure
|
||||||
traefik.http.routers.vaultwarden.rule: Host(`www.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
traefik.http.routers.vaultwarden.rule: Host(`vault.${ROOT_DOMAIN}`)${APP_ROUTE_OPTIONAL:-}
|
||||||
# traefik.http.routers.vaultwarden-more.entrypoints: websecure
|
|
||||||
# traefik.http.routers.vaultwarden-more.service: vaultwarden
|
|
||||||
# traefik.http.routers.vaultwarden-more.tls: true
|
|
||||||
# traefik.http.routers.vaultwarden-more.tls.certresolver: myresolver
|
|
||||||
networks:
|
networks:
|
||||||
vaultwarden_pg_dockge:
|
vaultwarden_pg_dockge:
|
||||||
external: true
|
external: true
|
||||||
|
|
Loading…
Reference in New Issue