fix first batch of _dev stacks: authentik, directus, duplicati, filebrowser, firefly, headscale, homepage, invoiceninja, jellyfin, lubelogger

This commit is contained in:
openhands
2026-07-16 04:56:21 +00:00
parent 1b77ca5844
commit 6eedbf4a0d
20 changed files with 327 additions and 266 deletions
+47 -58
View File
@@ -1,69 +1,58 @@
services:
postgresql:
env_file:
- .env
environment:
POSTGRES_DB: ${PG_DB:-authentik}
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
POSTGRES_USER: ${PG_USER:-authentik}
healthcheck:
interval: 30s
retries: 5
start_period: 20s
test:
- CMD-SHELL
- pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}
timeout: 5s
image: docker.io/library/postgres:16-alpine
restart: unless-stopped
image: ${AUTHENTIK_POSTGRES_IMAGE:-postgres:16-alpine}
restart: ${AUTHENTIK_RESTART:-unless-stopped}
volumes:
- database:/var/lib/postgresql/data
- ${VOL_PATH:-/data}/authentik/db:/var/lib/postgresql/data
environment:
- POSTGRES_DB=${PG_DB:-authentik}
- POSTGRES_PASSWORD=${PG_PASS:?database password required}
- POSTGRES_USER=${PG_USER:-authentik}
networks:
- internal
server:
command: server
depends_on:
postgresql:
condition: service_healthy
env_file:
- .env
environment:
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.10.1}
ports:
- ${COMPOSE_PORT_HTTP:-9000}:9000
- ${COMPOSE_PORT_HTTPS:-9443}:9443
restart: unless-stopped
restart: ${AUTHENTIK_RESTART:-unless-stopped}
volumes:
- ./media:/media
- ./custom-templates:/templates
- ${VOL_PATH:-/data}/authentik/media:/media
- ${VOL_PATH:-/data}/authentik/custom-templates:/templates
environment:
- AUTHENTIK_POSTGRESQL__HOST=postgresql
- AUTHENTIK_POSTGRESQL__NAME=${PG_DB:-authentik}
- AUTHENTIK_POSTGRESQL__PASSWORD=${PG_PASS}
- AUTHENTIK_POSTGRESQL__USER=${PG_USER:-authentik}
- AUTHENTIK_SECRET_KEY=${AUTHENTIK_SECRET_KEY:?secret key required}
ports:
- "${AUTHENTIK_PORT_HTTP:-9000}:9000"
- "${AUTHENTIK_PORT_HTTPS:-9443}:9443"
networks:
- proxy
- internal
depends_on:
- postgresql
command: server
worker:
command: worker
depends_on:
postgresql:
condition: service_healthy
env_file:
- .env
environment:
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.10.1}
restart: unless-stopped
user: root
restart: ${AUTHENTIK_RESTART:-unless-stopped}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./media:/media
- ./certs:/certs
- ./custom-templates:/templates
volumes:
database:
driver: local
- ${VOL_PATH:-/data}/authentik/media:/media
- ${VOL_PATH:-/data}/authentik/certs:/certs
- ${VOL_PATH:-/data}/authentik/custom-templates:/templates
environment:
- AUTHENTIK_POSTGRESQL__HOST=postgresql
- AUTHENTIK_POSTGRESQL__NAME=${PG_DB:-authentik}
- AUTHENTIK_POSTGRESQL__PASSWORD=${PG_PASS}
- AUTHENTIK_POSTGRESQL__USER=${PG_USER:-authentik}
- AUTHENTIK_SECRET_KEY=${AUTHENTIK_SECRET_KEY:?secret key required}
networks:
- internal
depends_on:
- postgresql
command: worker
networks:
proxy:
external: true
internal:
+18 -5
View File
@@ -1,5 +1,18 @@
#echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
#echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env
#echo "AUTHENTIK_ERROR_REPORTING__ENABLED=true" >> .env
#COMPOSE_PORT_HTTP=80
#COMPOSE_PORT_HTTPS=443
# Compose
VOL_PATH=/data
AUTHENTIK_IMAGE=ghcr.io/goauthentik/server
AUTHENTIK_TAG=2025.10.1
AUTHENTIK_RESTART=unless-stopped
AUTHENTIK_PORT_HTTP=9000
AUTHENTIK_PORT_HTTPS=9443
AUTHENTIK_POSTGRES_IMAGE=postgres:16-alpine
# Database
PG_DB=authentik
PG_USER=authentik
# Generate: openssl rand -base64 36 | tr -d '\n'
PG_PASS=
# Authentik
# Generate: openssl rand -base64 60 | tr -d '\n'
AUTHENTIK_SECRET_KEY=
+50 -23
View File
@@ -1,28 +1,55 @@
services:
directus:
image: directus/directus:latest
restart: unless-stopped
ports:
- "8000:8055"
mariadb:
image: ${MARIADB_IMAGE:-mariadb:10.11}
restart: ${DIRECTUS_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/directus/db:/var/lib/mysql
environment:
SECRET: ${DIRECTUS_SECRET:-0123456789}
DB_CLIENT: mysql
DB_HOST: mariadb
DB_PORT: 3306
DB_DATABASE: ${MARIADB_DATABASE:-dbname}
DB_USER: ${MARIADB_USER:-db_username}
DB_PASSWORD: ${MARIADB_PASSWORD:-db_password}
ADMIN_EMAIL: ${DIRECTUS_ADMIN_EMAIL:-noreply@example.com}
ADMIN_PASSWORD: ${DIRECTUS_ADMIN_PASSWORD:-change_me_to_admin_pass}
CACHE_ENABLED: "true"
CACHE_AUTO_PURGE: "true"
CACHE_STORE: "redis"
REDIS: "redis://cache:6379"
PUBLIC_URL: ${DIRECTUS_PUBLIC_URL:-http://localhost:8055}
- MARIADB_DATABASE=${MARIADB_DATABASE:-directus}
- MARIADB_USER=${MARIADB_USER:-directus}
- MARIADB_PASSWORD=${MARIADB_PASSWORD:-ChangeThisPassword}
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD:-ChangeThisRootPassword}
networks:
- internal
redis:
image: ${REDIS_IMAGE:-redis:7-alpine}
restart: ${DIRECTUS_RESTART:-unless-stopped}
networks:
- internal
directus:
image: ${DIRECTUS_IMAGE:-directus/directus:latest}
restart: ${DIRECTUS_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/directus/uploads:/directus/uploads
- ${VOL_PATH:-/data}/directus/extensions:/directus/extensions
- ${VOL_PATH:-/data}/directus/templates:/directus/templates
environment:
- SECRET=${DIRECTUS_SECRET:-0123456789}
- DB_CLIENT=mysql
- DB_HOST=mariadb
- DB_PORT=3306
- DB_DATABASE=${MARIADB_DATABASE:-directus}
- DB_USER=${MARIADB_USER:-directus}
- DB_PASSWORD=${MARIADB_PASSWORD:-ChangeThisPassword}
- ADMIN_EMAIL=${DIRECTUS_ADMIN_EMAIL:-noreply@example.com}
- ADMIN_PASSWORD=${DIRECTUS_ADMIN_PASSWORD:-ChangeThisPassword}
- CACHE_ENABLED=true
- CACHE_AUTO_PURGE=true
- CACHE_STORE=redis
- REDIS=redis://redis:6379
- PUBLIC_URL=${DIRECTUS_PUBLIC_URL:-http://localhost:8055}
ports:
- "${DIRECTUS_PORT:-8000}:8055"
networks:
- proxy
- internal
depends_on:
- mariadb
- redis
volumes:
- ${VOL_PATH:-./data}/directus/uploads:/directus/uploads
- ${VOL_PATH:-./data}/directus/extensions:/directus/extensions
- ${VOL_PATH:-./data}/directus/templates:/directus/templates
networks:
proxy:
external: true
internal:
+14 -6
View File
@@ -1,10 +1,18 @@
# Global
COMPOSE_PROJECT_NAME=directus
TZ=America/Vancouver
VOL_CONFIG_PATH=/docker/directus/config
VOL_PATH=/docker/directus/data
# Compose
VOL_PATH=/data
DIRECTUS_IMAGE=directus/directus:latest
DIRECTUS_RESTART=unless-stopped
DIRECTUS_PORT=8000
# MariaDB
MARIADB_IMAGE=mariadb:10.11
MARIADB_DATABASE=directus
MARIADB_USER=directus
MARIADB_PASSWORD=ChangeThisPassword
MARIADB_ROOT_PASSWORD=ChangeThisRootPassword
# Directus
DIRECTUS_SECRET=01234567890123456789012345678912
DIRECTUS_ADMIN_EMAIL=noreply@example.com
DIRECTUS_ADMIN_PASSWORD=enter_secure_password_here
DIRECTUS_ADMIN_PASSWORD=ChangeThisPassword
DIRECTUS_PUBLIC_URL=http://localhost:8055
+17 -10
View File
@@ -1,16 +1,23 @@
services:
duplicati:
image: ${DUPLICATI_IMAGE:-duplicati/duplicati:latest}
restart: ${DUPLICATI_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-./data}/duplicati/config:/data
- ${VOL_PATH:-./data}/duplicati/backups:/backups
- ${VOL_PATH:-./data}/duplicati/source:/source:ro
# Add More sorces, for example: - /NAS:/source_nas:ro
- ${VOL_PATH:-./data}/duplicati/restore:/restore
- ${VOL_PATH:-/data}/duplicati/config:/data
- ${VOL_PATH:-/data}/duplicati/backups:/backups
- ${VOL_PATH:-/data}/duplicati/source:/source:ro
- ${VOL_PATH:-/data}/duplicati/restore:/restore
environment:
TZ: ${TZ:-America/Vancouver}
SETTINGS_ENCRYPTION_KEY: "${DUPLICATI_KEY:-ThisNeedsToChange}"
DUPLICATI__WEBSERVICE_PASSWORD: "${DUPLICATI_PASS:-changeMe}"
restart: unless-stopped
- TZ=${TZ:-America/Vancouver}
- SETTINGS_ENCRYPTION_KEY=${DUPLICATI_KEY:-ThisNeedsToChange}
- DUPLICATI__WEBSERVICE_PASSWORD=${DUPLICATI_PASS:-changeMe}
ports:
- "8200:8200"
- "${DUPLICATI_PORT:-8200}:8200"
networks:
- proxy
- internal
networks:
proxy:
external: true
internal:
+6 -3
View File
@@ -1,7 +1,10 @@
TZ=America/Vancouver
VOL_PATH=./data
# Compose
VOL_PATH=/data
DUPLICATI_IMAGE=duplicati/duplicati:latest
DUPLICATI_RESTART=unless-stopped
DUPLICATI_PORT=8200
# Duplicati
DUPLICATI_IMAGE=duplicati/duplicati:latest #2.1.0.5
DUPLICATI_KEY=ThisNeedsToChange
DUPLICATI_PASS=changeMe
TZ=America/Vancouver
+16 -6
View File
@@ -1,12 +1,22 @@
services:
filebrowser:
image: ${FILEBROWSER_IMAGE:-gtstef/filebrowser:latest}
restart: ${FILEBROWSER_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-./data}/storage:/srv
- ${VOL_PATH:-./data}/filebrowser/root:/home/filebrowser/data
- ${VOL_CONFIG_PATH:-./config}/config.yaml:/home/filebrowser/config.yaml
- ${VOL_PATH:-/data}/storage:/srv
- ${VOL_PATH:-/data}/filebrowser/root:/home/filebrowser/data
- ${FILEBROWSER_CONFIG_PATH:-/data/filebrowser}/config.yaml:/home/filebrowser/config.yaml
environment:
FILEBROWSER_CONFIG: "${FILEBROWSER_CONFIG:-/home/filebrowser/config.yaml}"
FILEBROWSER_ADMIN_PASSWORD: ${FILEBROWSER_ADMIN_PASSWORD:-admin}
TZ: ${TZ:-America/Vancouver}
- FILEBROWSER_CONFIG=${FILEBROWSER_CONFIG:-/home/filebrowser/config.yaml}
- FILEBROWSER_ADMIN_PASSWORD=${FILEBROWSER_ADMIN_PASSWORD:-admin}
- TZ=${TZ:-America/Vancouver}
ports:
- "${FILEBROWSER_PORT:-8080}:80"
networks:
- proxy
- internal
networks:
proxy:
external: true
internal:
+9 -7
View File
@@ -1,9 +1,11 @@
# Filebrowser Quantum
# Compose
VOL_PATH=/data
FILEBROWSER_IMAGE=gtstef/filebrowser:latest
FILEBROWSER_RESTART=unless-stopped
FILEBROWSER_PORT=8080
FILEBROWSER_CONFIG_PATH=/data/filebrowser
VOL_CONFIG_PATH=./config
VOL_PATH=./data
TZ=America/Vancouver
FILEBROWSER_IMAGE=gtstef/filebrowser:latest #0.8.7-beta
FILEBROWSER_CONFIG="/home/filebrowser/config.yaml"
# Filebrowser
FILEBROWSER_CONFIG=/home/filebrowser/config.yaml
FILEBROWSER_ADMIN_PASSWORD=admin
TZ=America/Vancouver
+18 -5
View File
@@ -1,12 +1,25 @@
services:
firefly:
image: ${FIREFLY_IMAGE:-fireflyiii/core:latest}
restart: unless-stopped
restart: ${FIREFLY_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-./data}/firefly:/var/www/html/storage/upload
- ${VOL_PATH:-/data}/firefly:/var/www/html/storage/upload
ports:
- "${FIREFLY_PORT:-8080}:8080"
networks:
- proxy
- internal
firefly-importer:
image: ${FIREFLY_IMPORTER_IMAGE:-fireflyiii/data-importer:latest}
restart: unless-stopped
restart: ${FIREFLY_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-./data}/firefly:/var/www/html/storage/upload
- ${VOL_PATH:-/data}/firefly:/var/www/html/storage/upload
networks:
- proxy
- internal
networks:
proxy:
external: true
internal:
+4 -4
View File
@@ -1,6 +1,6 @@
VOL_PATH=/docker/vol/portainer-data #HELP: volpath
COOKBOOK=/git/docker-compose-cookbooks #HELP: cookbooks
# firefly
# Compose
VOL_PATH=/data
FIREFLY_IMAGE=fireflyiii/core:latest
FIREFLY_IMPORTER_IMAGE=fireflyiii/data-importer:latest
FIREFLY_RESTART=unless-stopped
FIREFLY_PORT=8080
+9 -26
View File
@@ -1,51 +1,34 @@
# Headscale Docker Compose Template
services:
headscale:
image: ${HEADSCALE_IMAGE:-headscale/headscale:latest}
restart: ${HEADSCALE_RESTART:-unless-stopped}
volumes:
- ${CONFIG_PATH:-./config}/headscale/config:/etc/headscale
- ${DATA_PATH:-./data}/headscale:/var/lib/headscale
- ${LOG_PATH:-./logs}/headscale:/var/log/headscale
- /etc/localtime:/etc/localtime:ro
- ${VOL_PATH:-/data}/headscale/config:/etc/headscale
- ${VOL_PATH:-/data}/headscale/data:/var/lib/headscale
- ${VOL_PATH:-/data}/headscale/logs:/var/log/headscale
environment:
- TZ=${TZ:-UTC}
- TZ=${TZ:-America/Vancouver}
- HEADSCALE_LOG_LEVEL=${HEADSCALE_LOG_LEVEL:-info}
expose:
- "8080"
networks:
- proxy
- internal
command:
- headscale
- serve
user: "1000:1000"
headscale-ui:
image: ${HEADSCALE_UI_IMAGE:-goodieshq/headscale-admin:latest}
restart: ${HEADSCALE_UI_RESTART:-unless-stopped}
environment:
- TZ=${TZ:-UTC}
- TZ=${TZ:-America/Vancouver}
- HEADSCALE_URL=http://headscale:8080
expose:
- "80"
networks:
- proxy
- internal
depends_on:
- headscale
networks:
- internal
networks:
proxy:
external: true
internal:
driver: bridge
+4 -22
View File
@@ -1,30 +1,12 @@
# =========================
# Headscale Configuration
# =========================
# Images
# Compose
VOL_PATH=/data
HEADSCALE_IMAGE=headscale/headscale:latest
HEADSCALE_UI_IMAGE=goodieshq/headscale-admin:0.26
# Restart policy
HEADSCALE_RESTART=unless-stopped
HEADSCALE_UI_RESTART=unless-stopped
# Paths
CONFIG_PATH=./config
DATA_PATH=./data
LOG_PATH=./logs
# Timezone
TZ=America/Vancouver
# Logging
# Headscale
HEADSCALE_LOG_LEVEL=info
# Domain (IMPORTANT)
HEADSCALE_DOMAIN=headscale.example.com
HEADSCALE_URL=https://headscale.example.com
# Ports (not exposed publicly, but useful for internal reference)
HEADSCALE_PORT=8080
HEADSCALE_UI_PORT=9090
TZ=America/Vancouver
+12 -7
View File
@@ -1,13 +1,18 @@
services:
homepage:
image: ${HOMEPAGE_IMAGE:-ghcr.io/gethomepage/homepage:latest}
restart: unless-stopped
restart: ${HOMEPAGE_RESTART:-unless-stopped}
volumes:
- homepage-config:/app/config
- /var/run/docker.sock:/var/run/docker.sock # Optional, for Docker integrations
- ${VOL_PATH:-/data}/homepage/config:/app/config
environment:
- TZ=${TZ:-America/Vancouver} # optional, if your app needs a timezone
- TZ=${TZ:-America/Vancouver}
ports:
- "${HOMEPAGE_PORT:-3000}:3000"
networks:
- proxy
- internal
volumes:
homepage-config:
name: homepage-config
networks:
proxy:
external: true
internal:
+5 -2
View File
@@ -1,3 +1,6 @@
# Homepage
# Compose
VOL_PATH=/data
HOMEPAGE_IMAGE=ghcr.io/gethomepage/homepage:latest
VOL_CONFIG_PATH=./config
HOMEPAGE_RESTART=unless-stopped
HOMEPAGE_PORT=3000
TZ=America/Vancouver
+45 -56
View File
@@ -1,62 +1,51 @@
services:
app:
build:
context: .
image: invoiceninja/invoiceninja-debian:${TAG:-latest}
restart: unless-stopped
env_file:
- ./sample.env
volumes:
# - ./php/php.ini:/usr/local/etc/php/conf.d/invoiceninja.ini:ro
# - ./php/php-fpm.conf:/usr/local/etc/php-fpm.d/invoiceninja.conf:ro
# - ./supervisor/supervisord.conf:/etc/supervisor/conf.d/supervisord.conf:ro
- ./data/public:/var/www/html/public
- ./data/storage:/var/www/html/storage
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
nginx:
image: nginx:alpine
restart: unless-stopped
ports:
- "8000:80"
volumes:
- ./nginx:/etc/nginx/conf.d:ro
- ./data/public:/var/www/html/public:ro
- ./data/storage:/var/www/html/storage:ro
depends_on:
app:
condition: service_healthy
mysql:
image: mysql:8
restart: unless-stopped
environment:
MYSQL_DATABASE: ${DB_DATABASE:-ninja}
MYSQL_USER: ${DB_USERNAME:-ninja}
MYSQL_PASSWORD: ${DB_PASSWORD:-ninja}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-ninjaAdm1nPassword}
image: ${MYSQL_IMAGE:-mysql:8}
restart: ${INVOICENINJA_RESTART:-unless-stopped}
volumes:
- ./data/mysql/:/var/lib/mysql
healthcheck:
test:
[
"CMD",
"mysqladmin",
"ping",
"-h",
"localhost",
"-u${MYSQL_USER}",
"-p${MYSQL_PASSWORD}",
]
- ${VOL_PATH:-/data}/invoiceninja/mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=${DB_DATABASE:-ninja}
- MYSQL_USER=${DB_USERNAME:-ninja}
- MYSQL_PASSWORD=${DB_PASSWORD:-ninja}
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD:-ninjaAdm1nPassword}
networks:
- internal
redis:
image: redis:alpine
restart: unless-stopped
image: ${REDIS_IMAGE:-redis:alpine}
restart: ${INVOICENINJA_RESTART:-unless-stopped}
networks:
- internal
app:
image: ${INVOICENINJA_IMAGE:-invoiceninja/invoiceninja-debian:latest}
restart: ${INVOICENINJA_RESTART:-unless-stopped}
volumes:
- ./data/redis:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
- ${VOL_PATH:-/data}/invoiceninja/public:/var/www/html/public
- ${VOL_PATH:-/data}/invoiceninja/storage:/var/www/html/storage
networks:
- internal
depends_on:
- mysql
- redis
nginx:
image: ${NGINX_IMAGE:-nginx:alpine}
restart: ${INVOICENINJA_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/invoiceninja/nginx:/etc/nginx/conf.d:ro
- ${VOL_PATH:-/data}/invoiceninja/public:/var/www/html/public:ro
- ${VOL_PATH:-/data}/invoiceninja/storage:/var/www/html/storage:ro
ports:
- "${INVOICENINJA_PORT:-8000}:80"
networks:
- proxy
- internal
depends_on:
- app
networks:
proxy:
external: true
internal:
+9
View File
@@ -1,3 +1,12 @@
# Compose
VOL_PATH=/data
INVOICENINJA_IMAGE=invoiceninja/invoiceninja-debian:latest
INVOICENINJA_RESTART=unless-stopped
INVOICENINJA_PORT=8000
MYSQL_IMAGE=mysql:8
NGINX_IMAGE=nginx:alpine
REDIS_IMAGE=redis:alpine
# IN application vars
APP_URL=http://localhost:8000
# echo -n "base64:$(openssl rand -base64 32)"
+20 -12
View File
@@ -1,16 +1,24 @@
services:
jellyfin:
image: ${JELLYFIN_IMAGE:-jellyfin/jellyfin:latest}
restart: unless-stopped
environment:
- JELLYFIN_PublishedServerUrl=${JELLYFIN_PublishedServerUrl:-http://localhost:8096}
restart: ${JELLYFIN_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-./data}/jellyfin-cache:/cache
- ${VOL_PATH:-./data}/jellyfin-config:/config
- ${VOL_PATH:-./data}/jellyfin-content/books:/books
- ${VOL_PATH:-./data}/jellyfin-content/media:/media
- ${VOL_PATH:-./data}/jellyfin-content/movies:/movies
- ${VOL_PATH:-./data}/jellyfin-content/music:/music
- ${VOL_PATH:-./data}/jellyfin-content/musicvideos:/musicvideos
- ${VOL_PATH:-./data}/jellyfin-content/photos:/photos
- ${VOL_PATH:-./data}/jellyfin-content/shows:/shows
- ${VOL_PATH:-/data}/jellyfin/cache:/cache
- ${VOL_PATH:-/data}/jellyfin/config:/config
- ${VOL_PATH:-/data}/jellyfin/media/books:/books
- ${VOL_PATH:-/data}/jellyfin/media/movies:/movies
- ${VOL_PATH:-/data}/jellyfin/media/music:/music
- ${VOL_PATH:-/data}/jellyfin/media/photos:/photos
- ${VOL_PATH:-/data}/jellyfin/media/shows:/shows
environment:
- JELLYFIN_PublishedServerUrl=${JELLYFIN_URL:-http://localhost:8096}
ports:
- "${JELLYFIN_PORT:-8096}:8096"
networks:
- proxy
- internal
networks:
proxy:
external: true
internal:
+6 -5
View File
@@ -1,7 +1,8 @@
# Global
VOL_PATH=./data
COOKBOOK=/git/docker-compose-cookbooks #HELP: cookbooks
# Compose
VOL_PATH=/data
JELLYFIN_IMAGE=jellyfin/jellyfin:latest
JELLYFIN_RESTART=unless-stopped
JELLYFIN_PORT=8096
# Jellyfin
JELLYFIN_IMAGE=jellyfin/jellyfin:latest
JELLYFIN_PublishedServerUrl=http://localhost:8096
JELLYFIN_URL=http://localhost:8096
+13 -5
View File
@@ -1,9 +1,17 @@
services:
lubelogger:
image: ${LUBELOGR_IMAGE_NAME:-ghcr.io/hargata/lubelogger:latest}
restart: ${LUBELOGR_RESTART:-unless-stopped}
image: ${LUBELOGGER_IMAGE:-ghcr.io/hargata/lubelogger:latest}
restart: ${LUBELOGGER_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-./data}/lubelogger/App:/App/data
- ${VOL_PATH:-./data}/lubelogger/keys:/root/.aspnet/DataProtection-Keys
- ${VOL_PATH:-/data}/lubelogger/data:/App/data
- ${VOL_PATH:-/data}/lubelogger/keys:/root/.aspnet/DataProtection-Keys
ports:
- "${LUBELOGR_PORT:-8080}:8080"
- "${LUBELOGGER_PORT:-8080}:8080"
networks:
- proxy
- internal
networks:
proxy:
external: true
internal:
+5 -4
View File
@@ -1,4 +1,5 @@
LUBELOGR_IMAGE_NAME=ghcr.io/hargata/lubelogger:latest
LUBELOGR_RESTART=unless-stopped
LUBELOGR_PORT=8080
# Compose
VOL_PATH=/data
LUBELOGGER_IMAGE=ghcr.io/hargata/lubelogger:latest
LUBELOGGER_RESTART=unless-stopped
LUBELOGGER_PORT=8080