Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
368df86bca | ||
|
|
03260a1892 | ||
|
|
24b6e7d3e2 | ||
|
|
a576348dd4 | ||
|
|
6e761b7501 | ||
|
|
107dfafaf8 | ||
|
|
f9597d1f1a | ||
|
|
8bfde99c81 | ||
|
|
20722b26eb | ||
|
|
4984e0f581 | ||
|
|
c9cb072e94 | ||
|
|
b4e2ea8acd | ||
|
|
dd0731fc97 |
@@ -0,0 +1,99 @@
|
|||||||
|
# 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"
|
||||||
+110
-126
@@ -1,133 +1,117 @@
|
|||||||
version: "3.8"
|
|
||||||
services:
|
services:
|
||||||
beszel:
|
navidrome:
|
||||||
image: henrygd/beszel:latest
|
image: deluan/navidrome:latest
|
||||||
container_name: beszel
|
container_name: navidrome
|
||||||
restart: unless-stopped
|
environment:
|
||||||
extra_hosts:
|
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"
|
||||||
- host.docker.internal:host-gateway
|
ports:
|
||||||
# ports:
|
- 4533:4533
|
||||||
# - 8090:8090
|
volumes:
|
||||||
networks:
|
- /home/shrek/docker/data/navidrome:/data
|
||||||
- bragi-local
|
- /mnt/hdd/Media/Music:/music:ro
|
||||||
volumes:
|
networks:
|
||||||
- /opt/beszel-container/beszel_data:/beszel_data
|
- bragi-local
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
glance:
|
jellyfin:
|
||||||
image: glanceapp/glance
|
image: jellyfin/jellyfin
|
||||||
container_name: glance
|
container_name: jellyfin
|
||||||
restart: unless-stopped
|
ports:
|
||||||
networks:
|
- 8096:8096/tcp
|
||||||
- bragi-local
|
- 7359:7359/udp
|
||||||
volumes:
|
networks:
|
||||||
- /opt/dashboard/config:/app/config
|
- bragi-local
|
||||||
- /opt/dashboard/assets:/app/assets
|
volumes:
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /home/shrek/docker/data/jellyfin/config:/config
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /home/shrek/docker/data/jellyfin/cache:/cache
|
||||||
# ports:
|
- type: bind
|
||||||
# - 8080:8080
|
source: /mnt/big/Downloads/done
|
||||||
# env_file: .env
|
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:
|
||||||
|
image: luigi311/jellyplex-watched:latest
|
||||||
|
container_name: jellyplex-watched
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- bragi-local
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
env_file: "./.env"
|
||||||
|
|
||||||
|
droppedneedle:
|
||||||
|
image: ghcr.io/habirabbu/droppedneedle:latest
|
||||||
|
container_name: droppedneedle
|
||||||
|
networks:
|
||||||
|
- bragi-local
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
# - PORT=8688
|
||||||
|
- TZ=Europe/Berlin
|
||||||
|
- /mnt/hdd/Media/Music=/slskd-downloads
|
||||||
|
#ports:
|
||||||
|
#- "8688:8688"
|
||||||
|
volumes:
|
||||||
|
- /opt/03_media_player/droppedneedle/config:/app/config
|
||||||
|
- /opt/03_media_player/droppedneedle/cache:/app/cache
|
||||||
|
- /mnt/hdd/Media/Music:/music:rw
|
||||||
|
- /mnt/hdd/Media/Downloads/Music/downloads:/slskd-downloads:rw
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
termix:
|
|
||||||
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:
|
|
||||||
- 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:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Berlin
|
|
||||||
- PASSWORD=${PASSWORD_CODE}
|
|
||||||
- DEFAULT_WORKSPACE=/home/share/Repositories/Automation
|
|
||||||
volumes:
|
|
||||||
- /opt/01_admin/code/config:/config
|
|
||||||
- /home/share/Repositories/Automation:/home/share/Repositories/Automation
|
|
||||||
networks:
|
|
||||||
- bragi-local
|
|
||||||
# ports:
|
|
||||||
# - 8443:8443
|
|
||||||
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
@@ -1,94 +0,0 @@
|
|||||||
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
|
|
||||||
Reference in New Issue
Block a user