Author SHA1 Message Date
tobbbs b8021ec997 Update compose.yaml 2026-07-14 14:54:29 +02:00
tobbbs ffea91815e Update compose.yaml 2026-07-14 14:48:29 +02:00
tobbbs ae6d1a9840 Update compose.yaml 2026-07-01 10:55:43 +02:00
tobbbs 49172aebc0 Update compose.yaml 2026-07-01 10:50:02 +02:00
tobbbs 644a290503 Update compose.yaml 2026-07-01 10:49:31 +02:00
tobbbs b064642f0f Update compose.yaml 2026-07-01 09:52:55 +02:00
tobbbs 89256a1d73 Update compose.yaml 2026-06-25 14:33:54 +02:00
tobbbs dc93805a34 Update compose.yaml 2026-06-25 14:00:32 +02:00
tobbbs 794da85e8f Update compose.yaml 2026-06-25 13:58:15 +02:00
tobbbs c3d8a264ca Update compose.yaml 2026-06-15 14:18:18 +02:00
tobbbs 5fe8924bf0 Update compose.yaml 2026-06-15 11:37:49 +02:00
tobbbs e4031184b6 Add glance.yml 2026-05-26 16:33:40 +02:00
tobbbs b984d8774b Add compose.yaml 2026-05-26 16:33:18 +02:00
3 changed files with 220 additions and 209 deletions
-99
View File
@@ -1,99 +0,0 @@
# Global Settings
## Do not mark any shows/movies as played and instead just output to log if they would of been marked.
DRYRUN= "False"
## Debugging level, "info" is default, "debug" is more verbose
DEBUG_LEVEL= "INFO"
## If set to true then the script will only run once and then exit
RUN_ONLY_ONCE= "False"
## How often to run the script in seconds
SLEEP_DURATION= "3600"
## Log file where all output will be written to
LOG_FILE= "/home/shrek/docker/data/jellyfin/log.log"
## Mark file where all shows/movies that have been marked as played will be written to
MARK_FILE= "/home/shrek/docker/data/jellyfin/mark.log"
## Timeout for requests for jellyfin
REQUEST_TIMEOUT= 300
## Max threads for processing
MAX_THREADS= 1
## Generate guids/locations
## These are slow processes, so this is a way to speed things up
## If media servers are using the same files then you can enable only generate locations
## If media servers are using different files then you can enable only generate guids
## Default is to generate both
GENERATE_GUIDS= "True"
GENERATE_LOCATIONS= "True"
## Map usernames between servers in the event that they are different, order does not matter
## Comma separated for multiple options
USER_MAPPING= { "Tobi1814": "Tobias" }
## Map libraries between servers in the event that they are different, order does not matter
## Comma separated for multiple options
LIBRARY_MAPPING= { "Shows": "TV Shows", "Movie": "Movies" }
## Blacklisting/Whitelisting libraries, library types such as Movies/TV Shows, and users. Mappings apply so if the mapping for the user or library exist then both will be excluded.
## Comma separated for multiple options
#BLACKLIST_LIBRARY = ""
#WHITELIST_LIBRARY = ""
#BLACKLIST_LIBRARY_TYPE = ""
#WHITELIST_LIBRARY_TYPE = ""
#BLACKLIST_USERS = ""
#WHITELIST_USERS = ""
# Plex
## Recommended to use token as it is faster to connect as it is direct to the server instead of going through the plex servers
## URL of the plex server, use hostname or IP address if the hostname is not resolving correctly
## Comma separated list for multiple servers
PLEX_BASEURL= "http://192.168.178.70:32400"
## Plex token https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/
## Comma separated list for multiple servers
PLEX_TOKEN= "5WUY66oQ4A4jneDtJAVu"
## If not using plex token then use username and password of the server admin along with the servername
## Comma separated for multiple options
#PLEX_USERNAME = "PlexUser, PlexUser2"
#PLEX_PASSWORD = "SuperSecret, SuperSecret2"
#PLEX_SERVERNAME = "Plex Server1, Plex Server2"
## Skip hostname validation for ssl certificates.
## Set to True if running into ssl certificate errors
SSL_BYPASS= "False"
# Jellyfin
## Jellyfin server URL, use hostname or IP address if the hostname is not resolving correctly
## Comma separated list for multiple servers
JELLYFIN_BASEURL= "http://192.168.178.70:8096"
## Jellyfin api token, created manually by logging in to the jellyfin server admin dashboard and creating an api key
## Comma separated list for multiple servers
JELLYFIN_TOKEN= "fbe8243134424bf2a1a212f14921a7c6"
# Syncing Options
## control the direction of syncing. e.g. SYNC_FROM_PLEX_TO_JELLYFIN set to true will cause the updates from plex
## to be updated in jellyfin. SYNC_FROM_PLEX_TO_PLEX set to true will sync updates between multiple plex servers
SYNC_FROM_PLEX_TO_JELLYFIN= "True"
SYNC_FROM_PLEX_TO_PLEX= "false"
SYNC_FROM_PLEX_TO_EMBY= "false"
SYNC_FROM_JELLYFIN_TO_PLEX= "True"
SYNC_FROM_JELLYFIN_TO_JELLYFIN= "false"
SYNC_FROM_JELLYFIN_TO_EMBY= "false"
SYNC_FROM_EMBY_TO_PLEX= "false"
SYNC_FROM_EMBY_TO_JELLYFIN= "false"
SYNC_FROM_EMBY_TO_EMBY= "false"
+111 -95
View File
@@ -1,117 +1,133 @@
version: "3.8"
services: services:
navidrome: beszel:
image: deluan/navidrome:latest image: henrygd/beszel:latest
container_name: navidrome container_name: beszel
environment:
ND_UILOGINBACKGROUNDURL: "https://images.unsplash.com/photo-1675702656416-fbc847ec4226?q=80&w=1470&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
ports:
- 4533:4533
volumes:
- /home/shrek/docker/data/navidrome:/data
- /mnt/hdd/Media/Music:/music:ro
networks:
- bragi-local
restart: unless-stopped restart: unless-stopped
extra_hosts:
jellyfin: - host.docker.internal:host-gateway
image: jellyfin/jellyfin # ports:
container_name: jellyfin # - 8090:8090
ports:
- 8096:8096/tcp
- 7359:7359/udp
networks: networks:
- bragi-local - bragi-local
volumes: volumes:
- /home/shrek/docker/data/jellyfin/config:/config - /opt/beszel-container/beszel_data:/beszel_data
- /home/shrek/docker/data/jellyfin/cache:/cache
- type: bind
source: /mnt/big/Downloads/done
target: /films1
- type: bind
source: /mnt/immich/Media/Films
target: /films2
- type: bind
source: /mnt/big/Media/Films
target: /films3
- type: bind
source: /mnt/hdd/Media/Film
target: /films4
- type: bind
source: /mnt/big/data/torrents/movies
target: /films5
- type: bind
source: /mnt/big/data/downloads/movies
target: /films6
- type: bind
source: /mnt/big/Media/Film
target: /films7
- type: bind
source: /mnt/hdd/Media/Series
target: /series1
- type: bind
source: /mnt/big/data/downloads/tv/
target: /series2
- type: bind
source: /mnt/big/data/torrents/tv/
target: /series3
- type: bind
source: /mnt/big/Downloads/done/Series/
target: /series4
- type: bind
source: /mnt/big/Media/Series/
target: /series5
- type: bind
source: /mnt/big/Media/Film/Series/
target: /series6
- type: bind
source: /mnt/immich/Media/Series/
target: /series7
read_only: true
restart: 'unless-stopped'
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
environment:
- JELLYFIN_PublishedServerUrl=https://stream.doeringer.eu
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
jellyplex-watched: glance:
image: luigi311/jellyplex-watched:latest image: glanceapp/glance
container_name: jellyplex-watched container_name: glance
restart: unless-stopped restart: unless-stopped
networks: networks:
- bragi-local - bragi-local
environment: volumes:
- PUID=1000 - /opt/dashboard/config:/app/config
- PGID=1000 - /opt/dashboard/assets:/app/assets
env_file: "./.env" - /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
# ports:
# - 8080:8080
# env_file: .env
droppedneedle:
image: ghcr.io/habirabbu/droppedneedle:latest termix:
container_name: droppedneedle image: ghcr.io/lukegus/termix:release-2.2.1
container_name: termix
restart: unless-stopped
# ports:
# - '8080:8080'
volumes:
- /opt/01_admin/termix/:/app/data
# environment:
# PORT: '8080'
depends_on:
- guacd
networks: networks:
- bragi-local - bragi-local
termix-new:
image: ghcr.io/lukegus/termix:latest
container_name: termix-new
restart: unless-stopped
# ports:
# - '8080:8080'
volumes:
- /opt/01_admin/termix-new/:/app/data
# environment:
# PORT: '8080'
networks:
- bragi-local
guacd:
image: guacamole/guacd:1.6.0
container_name: guacd
restart: unless-stopped
# ports:
# - "4822:4822"
networks:
- bragi-local
ntfy:
image: binwiederhier/ntfy
container_name: ntfy
environment:
- NTFY_BASE_URL=https://ntfy.doeringer.eu
networks:
- bragi-local
command:
- serve
volumes:
- /opt/01_admin/ntfy:/var/cache/ntfy
- /etc/ntfy:/etc/ntfy
# ports:
# - 80:80
code-server:
image: lscr.io/linuxserver/code-server:latest
container_name: code-server
environment: environment:
- PUID=1000 - PUID=1000
- PGID=1000 - PGID=1000
# - PORT=8688
- TZ=Europe/Berlin - TZ=Europe/Berlin
- /mnt/hdd/Media/Music=/slskd-downloads - PASSWORD=${PASSWORD_CODE}
#ports: - DEFAULT_WORKSPACE=/home/share/Repositories/Automation
#- "8688:8688"
volumes: volumes:
- /opt/03_media_player/droppedneedle/config:/app/config - /opt/01_admin/code/config:/config
- /opt/03_media_player/droppedneedle/cache:/app/cache - /home/share/Repositories/Automation:/home/share/Repositories/Automation
- /mnt/hdd/Media/Music:/music:rw networks:
- /mnt/hdd/Media/Downloads/Music/downloads:/slskd-downloads:rw - bragi-local
# ports:
# - 8443:8443
restart: unless-stopped restart: unless-stopped
remotepower:
image: ghcr.io/tyxak/remotepower:latest # or `build: .` to build locally
container_name: remotepower
restart: unless-stopped
networks:
- bragi-local
# ports:
# - "443:8443" # HTTPS — self-signed by default
# - "80:8080" # HTTP — health, /ca.crt, redirects to HTTPS
# environment:
# HTTPS on first boot, no cert wrangling. Set RP_TLS_HOST to your address:
# RP_TLS_SELFSIGNED: "1"
# RP_TLS_HOST: "${RP_TLS_HOST:-localhost}"
volumes:
- /opt/01_admin/remotepower:/var/lib/remotepower
healthcheck:
test: ["CMD", "python3", "-c",
"import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://localhost:8080/api/health',timeout=4).status==200 else 1)"]
interval: 60s
timeout: 5s
start_period: 15s
retries: 3
volumes:
remotepower_data:
termix-data:
driver: local
networks: networks:
bragi-local: bragi-local:
+94
View File
@@ -0,0 +1,94 @@
pages:
- name: Home
theme:
background-color: 219 16 21
contrast-multiplier: 1.2
primary-color: 193 43 67
positive-color: 92 28 65
negative-color: 354 42 56
# Optionally, if you only have a single page you can hide the desktop navigation for a cleaner look
# hide-desktop-navigation: true
columns:
- size: small
widgets:
- type: calendar
first-day-of-week: monday
- type: rss
limit: 10
collapse-after: 3
cache: 12h
feeds:
- url: https://selfh.st/rss/
title: selfh.st
limit: 4
- url: https://www.heise.de/security/feed.xml
title: Heise Security
limit: 5
- size: full
widgets:
- type: search
seach-engine: startpage
new-tab: true
- type: lobsters
sort-by: hot
tags:
- security
- linux
- type: videos
channels:
- UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling
- UCsBjURrPoezykLs9EqgamOA # Fireship
- UCHnyfMqiRRG1u-2MsSQLbXA # Veritasium
- UCgdTVe88YVSrOZ9qKumhULQ # Hardware Haven
- UCywwEsnSmADUyhtSaq5dKNg # Zei
- UCqP87_tOqZczGdExeEz0prg # Eric Parker
- type: group
widgets:
- type: reddit
subreddit: selfhosted
show-thumbnails: true
- type: reddit
subreddit: technology
show-thumbnails: true
- type: reddit
subreddit: homelab
show-thumbnails: true
- size: small
widgets:
- type: weather
location: Eschenau, Germany
units: metric # alternatively "imperial"
hour-format: 24h # alternatively "24h"
# Optionally hide the location from being displayed in the widget
# hide-location: true
- type: custom-api
title: Random Fact
cache: 3h
url: https://uselessfacts.jsph.pl/api/v2/facts/random
template: |
<p class="size-h4 color-paragraph">{{ .JSON.String "text" }}</p>
# Add more pages here:
# - name: Your page name
# columns:
# - size: small
# widgets:
# # Add widgets here
# - size: full
# widgets:
# # Add widgets here
# - size: small
# widgets:
# # Add widgets here