jellyfin etc.
This commit is contained in:
parent
20fcec5c6e
commit
433e78a534
|
|
@ -5,3 +5,5 @@ This is the docker based home server setup for a ubuntu server machine running o
|
|||
|
||||
The traefik proxy does not run on this machine but it's own LXC container on proxmox, there is a small script to sync it from there to here so I can have it all on one git repo.
|
||||
|
||||
Stop home assistant first if jellyfin isn't starting.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
services:
|
||||
openwebui:
|
||||
image: ghcr.io/open-webui/open-webui:0.5.11
|
||||
image: ghcr.io/open-webui/open-webui:0.5.18
|
||||
container_name: open-webui
|
||||
restart: always
|
||||
environment:
|
||||
|
|
|
|||
|
|
@ -82,3 +82,18 @@ services:
|
|||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
|
||||
|
||||
# authentik_ldap:
|
||||
# image: ghcr.io/goauthentik/ldap
|
||||
# Optionally specify which networks the container should be
|
||||
# might be needed to reach the core authentik server
|
||||
# networks:
|
||||
# - foo
|
||||
# ports:
|
||||
# - 389:3389
|
||||
# - 636:6636
|
||||
# environment:
|
||||
# AUTHENTIK_HOST: https://auth.home.thoster.net
|
||||
# AUTHENTIK_INSECURE: "false"
|
||||
# AUTHENTIK_TOKEN: 4mv8U8docRMUtcrMWBPvcl9lclcOvQ58OavwU6Kek5AMoDwdHgHS3ida2Reu
|
||||
|
|
|
|||
|
|
@ -59,6 +59,6 @@ services:
|
|||
- /run/udev:/run/udev:ro
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
image: koenkk/zigbee2mqtt:2.0.0
|
||||
image: koenkk/zigbee2mqtt:2.1.1
|
||||
links:
|
||||
- "mqtt:mqtt"
|
||||
|
|
|
|||
|
|
@ -72,14 +72,14 @@
|
|||
- id: '1723274410344'
|
||||
alias: Fernbedienung
|
||||
description: ''
|
||||
trigger:
|
||||
- platform: device
|
||||
domain: mqtt
|
||||
triggers:
|
||||
- domain: mqtt
|
||||
device_id: 7ee7af674fef326af8b7d7f20d1d00d6
|
||||
type: action
|
||||
subtype: 'on'
|
||||
condition: []
|
||||
action:
|
||||
trigger: device
|
||||
conditions: []
|
||||
actions:
|
||||
- action: light.turn_on
|
||||
target:
|
||||
entity_id:
|
||||
|
|
@ -99,14 +99,14 @@
|
|||
- id: '1723274776341'
|
||||
alias: Fernbedienung aus
|
||||
description: ''
|
||||
trigger:
|
||||
- platform: device
|
||||
domain: mqtt
|
||||
triggers:
|
||||
- domain: mqtt
|
||||
device_id: 7ee7af674fef326af8b7d7f20d1d00d6
|
||||
type: action
|
||||
subtype: 'off'
|
||||
condition: []
|
||||
action:
|
||||
trigger: device
|
||||
conditions: []
|
||||
actions:
|
||||
- action: light.turn_off
|
||||
metadata: {}
|
||||
data: {}
|
||||
|
|
@ -152,16 +152,16 @@
|
|||
- da8053e3c99c43fa802f32627d9ec42e
|
||||
mode: single
|
||||
- id: '1732045729333'
|
||||
alias: Wasser Spüle
|
||||
alias: Wasser Spüle!
|
||||
description: ''
|
||||
trigger:
|
||||
triggers:
|
||||
- type: moist
|
||||
platform: device
|
||||
device_id: ed19b3502ef3dad70cca3de834a993bc
|
||||
entity_id: af627c5df02c10ebfdc7e677b2934f12
|
||||
domain: binary_sensor
|
||||
condition: []
|
||||
action:
|
||||
trigger: device
|
||||
conditions: []
|
||||
actions:
|
||||
- action: notify.mobile_app_sm_a536b
|
||||
metadata: {}
|
||||
data:
|
||||
|
|
@ -241,12 +241,12 @@
|
|||
entity_id: 2a315e13dac7a4d0e3a5331216e79a5b
|
||||
domain: switch
|
||||
- type: toggle
|
||||
device_id: aa992894922dfd99d4de351691fddbeb
|
||||
entity_id: c9e060ed610aaa859483ed162741f6b8
|
||||
device_id: 0477c12763b17a6f8e00e457e2241c65
|
||||
entity_id: 47503c95c474e4f8bfba5f00c725a1d4
|
||||
domain: light
|
||||
mode: single
|
||||
- id: '1733523672915'
|
||||
alias: Nur Küchentisch Doppelklick
|
||||
alias: Nur Küchentisch Doppelklick!
|
||||
description: ''
|
||||
triggers:
|
||||
- device_id: f9bd33dde8040b0c80b8ef35f0eff174
|
||||
|
|
@ -357,7 +357,7 @@
|
|||
domain: switch
|
||||
mode: single
|
||||
- id: '1733861633781'
|
||||
alias: Fernbedienung wieder hell
|
||||
alias: Fernbedienung wieder hell!
|
||||
description: ''
|
||||
triggers:
|
||||
- domain: mqtt
|
||||
|
|
@ -378,7 +378,7 @@
|
|||
- scene.maximales_licht
|
||||
mode: single
|
||||
- id: '1733861763897'
|
||||
alias: Fernbedienung abdunkeln
|
||||
alias: Fernbedienung abdunkeln!
|
||||
description: ''
|
||||
triggers:
|
||||
- domain: mqtt
|
||||
|
|
@ -400,7 +400,7 @@
|
|||
entity_id: scene.hanna_schlafmodus
|
||||
mode: single
|
||||
- id: '1733862634974'
|
||||
alias: Küche Wohnzimmer an
|
||||
alias: Küche Wohnzimmer an!
|
||||
description: ''
|
||||
triggers:
|
||||
- domain: mqtt
|
||||
|
|
@ -428,7 +428,7 @@
|
|||
domain: switch
|
||||
mode: single
|
||||
- id: '1733862691860'
|
||||
alias: Küche Wohnzimmer aus
|
||||
alias: Küche Wohnzimmer aus!
|
||||
description: ''
|
||||
triggers:
|
||||
- domain: mqtt
|
||||
|
|
@ -465,7 +465,7 @@
|
|||
domain: switch
|
||||
trigger: device
|
||||
for:
|
||||
hours: 0
|
||||
hours: 1
|
||||
minutes: 30
|
||||
seconds: 0
|
||||
conditions:
|
||||
|
|
@ -474,10 +474,6 @@
|
|||
device_id: ef6d5a43ae7c971e4b7b740dbc0f378e
|
||||
entity_id: d212bffda3c532f2e43ea9d08b1fd008
|
||||
domain: switch
|
||||
for:
|
||||
hours: 0
|
||||
minutes: 59
|
||||
seconds: 0
|
||||
actions:
|
||||
- type: turn_off
|
||||
device_id: ef6d5a43ae7c971e4b7b740dbc0f378e
|
||||
|
|
|
|||
|
|
@ -19,11 +19,13 @@ switch:
|
|||
turn_off:
|
||||
service: shell_command.turn_off_remote_pc
|
||||
- platform: template
|
||||
name: "comfyui"
|
||||
switches:
|
||||
comfyui:
|
||||
friendly_name: "comfyui"
|
||||
turn_on:
|
||||
service: shell_command.start_comfy_ui
|
||||
turn_off:
|
||||
service: shell_command.turn_off_remote_pc
|
||||
service: shell_command.stop_comfy_ui
|
||||
|
||||
#MQTT Broker for milight hub:
|
||||
mqtt:
|
||||
|
|
|
|||
|
|
@ -1,2 +1,3 @@
|
|||
turn_off_remote_pc: "ssh -i /config/ssh_keys/id_rsa_homeassistant -o 'StrictHostKeyChecking=no' homeassistant@192.168.178.87 sudo shutdown -h now"
|
||||
start_comfy_ui: "ssh -i /config/ssh_keys/id_rsa_homeassistant -o 'StrictHostKeyChecking=no' homeassistant@192.168.178.87 bash -c 'cd /home/oster/git/ComfyUI;./start.sh; read x'"
|
||||
stop_comfy_ui: "echo 0"
|
||||
|
|
|
|||
|
|
@ -19,7 +19,8 @@ services:
|
|||
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
|
||||
- ${UPLOAD_LOCATION}:/usr/src/app/upload
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /mnt/usb_ssd/Pictures:/Pictures
|
||||
- ./data/pictures:/Pictures
|
||||
- ./data/mobile-pictures:/mobile-pictures
|
||||
- /mnt/test:/test
|
||||
env_file:
|
||||
- .env
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<EncodingOptions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<EncodingThreadCount>-1</EncodingThreadCount>
|
||||
<EnableFallbackFont>false</EnableFallbackFont>
|
||||
<EnableAudioVbr>false</EnableAudioVbr>
|
||||
<DownMixAudioBoost>2</DownMixAudioBoost>
|
||||
<DownMixStereoAlgorithm>None</DownMixStereoAlgorithm>
|
||||
<MaxMuxingQueueSize>2048</MaxMuxingQueueSize>
|
||||
<EnableThrottling>false</EnableThrottling>
|
||||
<ThrottleDelaySeconds>180</ThrottleDelaySeconds>
|
||||
<EnableSegmentDeletion>false</EnableSegmentDeletion>
|
||||
<SegmentKeepSeconds>720</SegmentKeepSeconds>
|
||||
<HardwareAccelerationType>none</HardwareAccelerationType>
|
||||
<EncoderAppPathDisplay>/usr/lib/jellyfin-ffmpeg/ffmpeg</EncoderAppPathDisplay>
|
||||
<VaapiDevice>/dev/dri/renderD128</VaapiDevice>
|
||||
<QsvDevice />
|
||||
<EnableTonemapping>false</EnableTonemapping>
|
||||
<EnableVppTonemapping>false</EnableVppTonemapping>
|
||||
<EnableVideoToolboxTonemapping>false</EnableVideoToolboxTonemapping>
|
||||
<TonemappingAlgorithm>bt2390</TonemappingAlgorithm>
|
||||
<TonemappingMode>auto</TonemappingMode>
|
||||
<TonemappingRange>auto</TonemappingRange>
|
||||
<TonemappingDesat>0</TonemappingDesat>
|
||||
<TonemappingPeak>100</TonemappingPeak>
|
||||
<TonemappingParam>0</TonemappingParam>
|
||||
<VppTonemappingBrightness>16</VppTonemappingBrightness>
|
||||
<VppTonemappingContrast>1</VppTonemappingContrast>
|
||||
<H264Crf>23</H264Crf>
|
||||
<H265Crf>28</H265Crf>
|
||||
<EncoderPreset xsi:nil="true" />
|
||||
<DeinterlaceDoubleRate>false</DeinterlaceDoubleRate>
|
||||
<DeinterlaceMethod>yadif</DeinterlaceMethod>
|
||||
<EnableDecodingColorDepth10Hevc>true</EnableDecodingColorDepth10Hevc>
|
||||
<EnableDecodingColorDepth10Vp9>true</EnableDecodingColorDepth10Vp9>
|
||||
<EnableDecodingColorDepth10HevcRext>false</EnableDecodingColorDepth10HevcRext>
|
||||
<EnableDecodingColorDepth12HevcRext>false</EnableDecodingColorDepth12HevcRext>
|
||||
<EnableEnhancedNvdecDecoder>true</EnableEnhancedNvdecDecoder>
|
||||
<PreferSystemNativeHwDecoder>true</PreferSystemNativeHwDecoder>
|
||||
<EnableIntelLowPowerH264HwEncoder>false</EnableIntelLowPowerH264HwEncoder>
|
||||
<EnableIntelLowPowerHevcHwEncoder>false</EnableIntelLowPowerHevcHwEncoder>
|
||||
<EnableHardwareEncoding>true</EnableHardwareEncoding>
|
||||
<AllowHevcEncoding>false</AllowHevcEncoding>
|
||||
<AllowAv1Encoding>false</AllowAv1Encoding>
|
||||
<EnableSubtitleExtraction>true</EnableSubtitleExtraction>
|
||||
<HardwareDecodingCodecs>
|
||||
<string>h264</string>
|
||||
<string>vc1</string>
|
||||
</HardwareDecodingCodecs>
|
||||
<AllowOnDemandMetadataBasedKeyframeExtractionForExtensions>
|
||||
<string>mkv</string>
|
||||
</AllowOnDemandMetadataBasedKeyframeExtractionForExtensions>
|
||||
</EncodingOptions>
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"Serilog": {
|
||||
"MinimumLevel": {
|
||||
"Default": "Information",
|
||||
"Override": {
|
||||
"Microsoft": "Warning",
|
||||
"System": "Warning"
|
||||
}
|
||||
},
|
||||
"WriteTo": [
|
||||
{
|
||||
"Name": "Console",
|
||||
"Args": {
|
||||
"outputTemplate": "[{Timestamp:HH:mm:ss}] [{Level:u3}] [{ThreadId}] {SourceContext}: {Message:lj}{NewLine}{Exception}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "Async",
|
||||
"Args": {
|
||||
"configure": [
|
||||
{
|
||||
"Name": "File",
|
||||
"Args": {
|
||||
"path": "%JELLYFIN_LOG_DIR%//log_.log",
|
||||
"rollingInterval": "Day",
|
||||
"retainedFileCountLimit": 3,
|
||||
"rollOnFileSizeLimit": true,
|
||||
"fileSizeLimitBytes": 100000000,
|
||||
"outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}] [{Level:u3}] [{ThreadId}] {SourceContext}: {Message}{NewLine}{Exception}"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"Enrich": [ "FromLogContext", "WithThreadId" ]
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,153 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<MigrationOptions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<Applied>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>9b354818-94d5-4b68-ac49-e35cb85f9d84</Item1>
|
||||
<Item2>CreateNetworkConfiguration</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>a6dcacf4-c057-4ef9-80d3-61cef9ddb4f0</Item1>
|
||||
<Item2>MigrateMusicBrainzTimeout</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>4fb5c950-1991-11ee-9b4b-0800200c9a66</Item1>
|
||||
<Item2>MigrateNetworkConfiguration</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>a8e61960-7726-4450-8f3d-82c12daabbcb</Item1>
|
||||
<Item2>MigrateEncodingOptions</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>4124c2cd-e939-4ffb-9be9-9b311c413638</Item1>
|
||||
<Item2>DisableTranscodingThrottling</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>ef103419-8451-40d8-9f34-d1a8e93a1679</Item1>
|
||||
<Item2>CreateLoggingConfigHeirarchy</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>3793eb59-bc8c-456c-8b9f-bd5a62a42978</Item1>
|
||||
<Item2>MigrateActivityLogDatabase</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>acbe17b7-8435-4a83-8b64-6fcf162cb9bd</Item1>
|
||||
<Item2>RemoveDuplicateExtras</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>5c4b82a2-f053-4009-bd05-b6fcad82f14c</Item1>
|
||||
<Item2>MigrateUserDatabase</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>06387815-c3cc-421f-a888-fb5f9992bea8</Item1>
|
||||
<Item2>MigrateDisplayPreferencesDatabase</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>a81f75e0-8f43-416f-a5e8-516ccab4d8cc</Item1>
|
||||
<Item2>RemoveDownloadImagesInAdvance</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>5bd72f41-e6f3-4f60-90aa-09869abe0e22</Item1>
|
||||
<Item2>MigrateAuthenticationDatabase</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>615dfa9e-2497-4dbb-a472-61938b752c5b</Item1>
|
||||
<Item2>FixPlaylistOwner</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>d34bfc33-5d2e-4790-8085-069ef6eecb4e</Item1>
|
||||
<Item2>MigrateRatingLevels</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>cf6fabc2-9fbe-4933-84a5-ffe52ef22a58</Item1>
|
||||
<Item2>FixAudioData</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>96c156a2-7a13-4b3b-a8b8-fb80c94d20c0</Item1>
|
||||
<Item2>RemoveDuplicatePlaylistChildren</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>eb58ebee-9514-4b9b-8225-12e1a40020df</Item1>
|
||||
<Item2>AddDefaultPluginRepository</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>5f86e7f6-d966-4c77-849d-7a7b40b68c4e</Item1>
|
||||
<Item2>ReaddDefaultPluginRepository</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>34a1a1c4-5572-418e-a2f8-32cdfe2668e8</Item1>
|
||||
<Item2>AddDefaultCastReceivers</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>852816e0-2712-49a9-9240-c6fc5fcad1a8</Item1>
|
||||
<Item2>UpdateDefaultPluginRepository10.9</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>4ef123d5-8eff-4b0b-869d-3aed07a60e1b</Item1>
|
||||
<Item2>MoveTrickplayFiles</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>9b354818-94d5-4b68-ac49-e35cb85f9d84</Item1>
|
||||
<Item2>CreateNetworkConfiguration</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>a6dcacf4-c057-4ef9-80d3-61cef9ddb4f0</Item1>
|
||||
<Item2>MigrateMusicBrainzTimeout</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>4fb5c950-1991-11ee-9b4b-0800200c9a66</Item1>
|
||||
<Item2>MigrateNetworkConfiguration</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>a8e61960-7726-4450-8f3d-82c12daabbcb</Item1>
|
||||
<Item2>MigrateEncodingOptions</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>4124c2cd-e939-4ffb-9be9-9b311c413638</Item1>
|
||||
<Item2>DisableTranscodingThrottling</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>ef103419-8451-40d8-9f34-d1a8e93a1679</Item1>
|
||||
<Item2>CreateLoggingConfigHeirarchy</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>3793eb59-bc8c-456c-8b9f-bd5a62a42978</Item1>
|
||||
<Item2>MigrateActivityLogDatabase</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>acbe17b7-8435-4a83-8b64-6fcf162cb9bd</Item1>
|
||||
<Item2>RemoveDuplicateExtras</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>5c4b82a2-f053-4009-bd05-b6fcad82f14c</Item1>
|
||||
<Item2>MigrateUserDatabase</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>06387815-c3cc-421f-a888-fb5f9992bea8</Item1>
|
||||
<Item2>MigrateDisplayPreferencesDatabase</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>a81f75e0-8f43-416f-a5e8-516ccab4d8cc</Item1>
|
||||
<Item2>RemoveDownloadImagesInAdvance</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>5bd72f41-e6f3-4f60-90aa-09869abe0e22</Item1>
|
||||
<Item2>MigrateAuthenticationDatabase</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>615dfa9e-2497-4dbb-a472-61938b752c5b</Item1>
|
||||
<Item2>FixPlaylistOwner</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>d34bfc33-5d2e-4790-8085-069ef6eecb4e</Item1>
|
||||
<Item2>MigrateRatingLevels</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>cf6fabc2-9fbe-4933-84a5-ffe52ef22a58</Item1>
|
||||
<Item2>FixAudioData</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
<ValueTupleOfGuidString>
|
||||
<Item1>96c156a2-7a13-4b3b-a8b8-fb80c94d20c0</Item1>
|
||||
<Item2>RemoveDuplicatePlaylistChildren</Item2>
|
||||
</ValueTupleOfGuidString>
|
||||
</Applied>
|
||||
</MigrationOptions>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<NetworkConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<BaseUrl />
|
||||
<EnableHttps>false</EnableHttps>
|
||||
<RequireHttps>false</RequireHttps>
|
||||
<CertificatePath />
|
||||
<CertificatePassword />
|
||||
<InternalHttpPort>8096</InternalHttpPort>
|
||||
<InternalHttpsPort>8920</InternalHttpsPort>
|
||||
<PublicHttpPort>8096</PublicHttpPort>
|
||||
<PublicHttpsPort>8920</PublicHttpsPort>
|
||||
<AutoDiscovery>true</AutoDiscovery>
|
||||
<EnableUPnP>false</EnableUPnP>
|
||||
<EnableIPv4>true</EnableIPv4>
|
||||
<EnableIPv6>false</EnableIPv6>
|
||||
<EnableRemoteAccess>true</EnableRemoteAccess>
|
||||
<LocalNetworkSubnets />
|
||||
<LocalNetworkAddresses />
|
||||
<KnownProxies />
|
||||
<IgnoreVirtualInterfaces>true</IgnoreVirtualInterfaces>
|
||||
<VirtualInterfaceNames>
|
||||
<string>veth</string>
|
||||
</VirtualInterfaceNames>
|
||||
<EnablePublishedServerUriByRequest>false</EnablePublishedServerUriByRequest>
|
||||
<PublishedServerUriBySubnet />
|
||||
<RemoteIPFilter />
|
||||
<IsRemoteIPFilterBlacklist>false</IsRemoteIPFilterBlacklist>
|
||||
</NetworkConfiguration>
|
||||
|
|
@ -0,0 +1,191 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ServerConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<LogFileRetentionDays>3</LogFileRetentionDays>
|
||||
<IsStartupWizardCompleted>true</IsStartupWizardCompleted>
|
||||
<EnableMetrics>false</EnableMetrics>
|
||||
<EnableNormalizedItemByNameIds>true</EnableNormalizedItemByNameIds>
|
||||
<IsPortAuthorized>true</IsPortAuthorized>
|
||||
<QuickConnectAvailable>true</QuickConnectAvailable>
|
||||
<EnableCaseSensitiveItemIds>true</EnableCaseSensitiveItemIds>
|
||||
<DisableLiveTvChannelUserDataName>true</DisableLiveTvChannelUserDataName>
|
||||
<MetadataPath />
|
||||
<PreferredMetadataLanguage>en</PreferredMetadataLanguage>
|
||||
<MetadataCountryCode>US</MetadataCountryCode>
|
||||
<SortReplaceCharacters>
|
||||
<string>.</string>
|
||||
<string>+</string>
|
||||
<string>%</string>
|
||||
</SortReplaceCharacters>
|
||||
<SortRemoveCharacters>
|
||||
<string>,</string>
|
||||
<string>&</string>
|
||||
<string>-</string>
|
||||
<string>{</string>
|
||||
<string>}</string>
|
||||
<string>'</string>
|
||||
</SortRemoveCharacters>
|
||||
<SortRemoveWords>
|
||||
<string>the</string>
|
||||
<string>a</string>
|
||||
<string>an</string>
|
||||
</SortRemoveWords>
|
||||
<MinResumePct>5</MinResumePct>
|
||||
<MaxResumePct>90</MaxResumePct>
|
||||
<MinResumeDurationSeconds>300</MinResumeDurationSeconds>
|
||||
<MinAudiobookResume>5</MinAudiobookResume>
|
||||
<MaxAudiobookResume>5</MaxAudiobookResume>
|
||||
<InactiveSessionThreshold>0</InactiveSessionThreshold>
|
||||
<LibraryMonitorDelay>60</LibraryMonitorDelay>
|
||||
<LibraryUpdateDuration>30</LibraryUpdateDuration>
|
||||
<ImageSavingConvention>Legacy</ImageSavingConvention>
|
||||
<MetadataOptions>
|
||||
<MetadataOptions>
|
||||
<ItemType>Book</ItemType>
|
||||
<DisabledMetadataSavers />
|
||||
<LocalMetadataReaderOrder />
|
||||
<DisabledMetadataFetchers />
|
||||
<MetadataFetcherOrder />
|
||||
<DisabledImageFetchers />
|
||||
<ImageFetcherOrder />
|
||||
</MetadataOptions>
|
||||
<MetadataOptions>
|
||||
<ItemType>Movie</ItemType>
|
||||
<DisabledMetadataSavers />
|
||||
<LocalMetadataReaderOrder />
|
||||
<DisabledMetadataFetchers />
|
||||
<MetadataFetcherOrder />
|
||||
<DisabledImageFetchers />
|
||||
<ImageFetcherOrder />
|
||||
</MetadataOptions>
|
||||
<MetadataOptions>
|
||||
<ItemType>MusicVideo</ItemType>
|
||||
<DisabledMetadataSavers />
|
||||
<LocalMetadataReaderOrder />
|
||||
<DisabledMetadataFetchers>
|
||||
<string>The Open Movie Database</string>
|
||||
</DisabledMetadataFetchers>
|
||||
<MetadataFetcherOrder />
|
||||
<DisabledImageFetchers>
|
||||
<string>The Open Movie Database</string>
|
||||
</DisabledImageFetchers>
|
||||
<ImageFetcherOrder />
|
||||
</MetadataOptions>
|
||||
<MetadataOptions>
|
||||
<ItemType>Series</ItemType>
|
||||
<DisabledMetadataSavers />
|
||||
<LocalMetadataReaderOrder />
|
||||
<DisabledMetadataFetchers />
|
||||
<MetadataFetcherOrder />
|
||||
<DisabledImageFetchers />
|
||||
<ImageFetcherOrder />
|
||||
</MetadataOptions>
|
||||
<MetadataOptions>
|
||||
<ItemType>MusicAlbum</ItemType>
|
||||
<DisabledMetadataSavers />
|
||||
<LocalMetadataReaderOrder />
|
||||
<DisabledMetadataFetchers>
|
||||
<string>TheAudioDB</string>
|
||||
</DisabledMetadataFetchers>
|
||||
<MetadataFetcherOrder />
|
||||
<DisabledImageFetchers />
|
||||
<ImageFetcherOrder />
|
||||
</MetadataOptions>
|
||||
<MetadataOptions>
|
||||
<ItemType>MusicArtist</ItemType>
|
||||
<DisabledMetadataSavers />
|
||||
<LocalMetadataReaderOrder />
|
||||
<DisabledMetadataFetchers>
|
||||
<string>TheAudioDB</string>
|
||||
</DisabledMetadataFetchers>
|
||||
<MetadataFetcherOrder />
|
||||
<DisabledImageFetchers />
|
||||
<ImageFetcherOrder />
|
||||
</MetadataOptions>
|
||||
<MetadataOptions>
|
||||
<ItemType>BoxSet</ItemType>
|
||||
<DisabledMetadataSavers />
|
||||
<LocalMetadataReaderOrder />
|
||||
<DisabledMetadataFetchers />
|
||||
<MetadataFetcherOrder />
|
||||
<DisabledImageFetchers />
|
||||
<ImageFetcherOrder />
|
||||
</MetadataOptions>
|
||||
<MetadataOptions>
|
||||
<ItemType>Season</ItemType>
|
||||
<DisabledMetadataSavers />
|
||||
<LocalMetadataReaderOrder />
|
||||
<DisabledMetadataFetchers />
|
||||
<MetadataFetcherOrder />
|
||||
<DisabledImageFetchers />
|
||||
<ImageFetcherOrder />
|
||||
</MetadataOptions>
|
||||
<MetadataOptions>
|
||||
<ItemType>Episode</ItemType>
|
||||
<DisabledMetadataSavers />
|
||||
<LocalMetadataReaderOrder />
|
||||
<DisabledMetadataFetchers />
|
||||
<MetadataFetcherOrder />
|
||||
<DisabledImageFetchers />
|
||||
<ImageFetcherOrder />
|
||||
</MetadataOptions>
|
||||
</MetadataOptions>
|
||||
<SkipDeserializationForBasicTypes>true</SkipDeserializationForBasicTypes>
|
||||
<ServerName />
|
||||
<UICulture>de</UICulture>
|
||||
<SaveMetadataHidden>false</SaveMetadataHidden>
|
||||
<ContentTypes />
|
||||
<RemoteClientBitrateLimit>0</RemoteClientBitrateLimit>
|
||||
<EnableFolderView>false</EnableFolderView>
|
||||
<EnableGroupingIntoCollections>false</EnableGroupingIntoCollections>
|
||||
<DisplaySpecialsWithinSeasons>true</DisplaySpecialsWithinSeasons>
|
||||
<CodecsUsed />
|
||||
<PluginRepositories>
|
||||
<RepositoryInfo>
|
||||
<Name>Jellyfin Stable</Name>
|
||||
<Url>https://repo.jellyfin.org/files/plugin/manifest.json</Url>
|
||||
<Enabled>true</Enabled>
|
||||
</RepositoryInfo>
|
||||
</PluginRepositories>
|
||||
<EnableExternalContentInSuggestions>true</EnableExternalContentInSuggestions>
|
||||
<ImageExtractionTimeoutMs>0</ImageExtractionTimeoutMs>
|
||||
<PathSubstitutions />
|
||||
<EnableSlowResponseWarning>true</EnableSlowResponseWarning>
|
||||
<SlowResponseThresholdMs>500</SlowResponseThresholdMs>
|
||||
<CorsHosts>
|
||||
<string>*</string>
|
||||
</CorsHosts>
|
||||
<ActivityLogRetentionDays>30</ActivityLogRetentionDays>
|
||||
<LibraryScanFanoutConcurrency>0</LibraryScanFanoutConcurrency>
|
||||
<LibraryMetadataRefreshConcurrency>0</LibraryMetadataRefreshConcurrency>
|
||||
<RemoveOldPlugins>true</RemoveOldPlugins>
|
||||
<AllowClientLogUpload>true</AllowClientLogUpload>
|
||||
<DummyChapterDuration>0</DummyChapterDuration>
|
||||
<ChapterImageResolution>MatchSource</ChapterImageResolution>
|
||||
<ParallelImageEncodingLimit>0</ParallelImageEncodingLimit>
|
||||
<CastReceiverApplications>
|
||||
<CastReceiverApplication>
|
||||
<Id>F007D354</Id>
|
||||
<Name>Stable</Name>
|
||||
</CastReceiverApplication>
|
||||
<CastReceiverApplication>
|
||||
<Id>6F511C87</Id>
|
||||
<Name>Unstable</Name>
|
||||
</CastReceiverApplication>
|
||||
</CastReceiverApplications>
|
||||
<TrickplayOptions>
|
||||
<EnableHwAcceleration>false</EnableHwAcceleration>
|
||||
<EnableHwEncoding>false</EnableHwEncoding>
|
||||
<EnableKeyFrameOnlyExtraction>false</EnableKeyFrameOnlyExtraction>
|
||||
<ScanBehavior>NonBlocking</ScanBehavior>
|
||||
<ProcessPriority>BelowNormal</ProcessPriority>
|
||||
<Interval>10000</Interval>
|
||||
<WidthResolutions>
|
||||
<int>320</int>
|
||||
</WidthResolutions>
|
||||
<TileWidth>10</TileWidth>
|
||||
<TileHeight>10</TileHeight>
|
||||
<Qscale>4</Qscale>
|
||||
<JpegQuality>90</JpegQuality>
|
||||
<ProcessThreads>1</ProcessThreads>
|
||||
</TrickplayOptions>
|
||||
</ServerConfiguration>
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
services:
|
||||
jellyfin:
|
||||
image: jellyfin/jellyfin
|
||||
container_name: jellyfin
|
||||
user: 1000:1000
|
||||
# network_mode: 'host'
|
||||
ports:
|
||||
- 8096:8096
|
||||
- 8920:8920 #optional
|
||||
- 7359:7359/udp #optional
|
||||
- 1900:1900/udp #optional
|
||||
volumes:
|
||||
- ./config:/config
|
||||
- ./cache:/cache
|
||||
- type: bind
|
||||
source: /media/extension/music
|
||||
target: /music
|
||||
- type: bind
|
||||
source: /media/extension/video
|
||||
target: /video
|
||||
# read_only: true
|
||||
# Optional - extra fonts to be used during transcoding with subtitle burn-in
|
||||
# - type: bind
|
||||
# source: /path/to/fonts
|
||||
# target: /usr/local/share/fonts/custom
|
||||
# read_only: true
|
||||
restart: 'unless-stopped'
|
||||
# Optional - alternative address used for autodiscovery
|
||||
environment:
|
||||
- JELLYFIN_PublishedServerUrl=http://example.com
|
||||
# Optional - may be necessary for docker healthcheck to pass if running in host network mode
|
||||
extra_hosts:
|
||||
- 'host.docker.internal:host-gateway'
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# Samba in a docker container
|
||||
|
||||
TODO: Ldap. Note: smb.conf from config is not used, only during docker image build! ldap can not be configured in the compose file.
|
||||
|
|
@ -4,7 +4,16 @@
|
|||
dns proxy = no
|
||||
|
||||
# password stuff
|
||||
passdb backend = smbpasswd
|
||||
# passdb backend = smbpasswd
|
||||
|
||||
# LDAP Configuration
|
||||
passdb backend = ldapsam:ldap://ubuntu:389
|
||||
ldap admin dn = cn=samba,ou=users,dc=home,dc=thoster,dc=net
|
||||
ldap suffix = dc=home,dc=thoster,dc=net
|
||||
ldap user suffix = ou=users
|
||||
ldap group suffix = ou=groups
|
||||
# rest via docker compose
|
||||
|
||||
|
||||
obey pam restrictions = yes
|
||||
security = user
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ services:
|
|||
|
||||
SAMBA_CONF_LOG_LEVEL: 3
|
||||
|
||||
|
||||
# uncomment to disable optional services
|
||||
#WSDD2_DISABLE: 1
|
||||
#AVAHI_DISABLE: 1
|
||||
|
|
@ -34,19 +33,22 @@ services:
|
|||
|
||||
#ACCOUNT_oster: "oster:1000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:86C156FC198B358CCCF6278D8BD49B6A:[U ]:LCT-61B0859A:"
|
||||
ACCOUNT_oster: "oster:1000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:079B8E33CB77467761A3B505A15D8163:[U ]:LCT-67A885B6:"
|
||||
ACCOUNT_karin: "karin:1001:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:580F67E12940BCE800781B09EA453D4D:[U ]:LCT-67BF7AE3:"
|
||||
# example for password hashes in the list format:
|
||||
# - "ACCOUNT_foo=foo:1000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:8846F7EAEE8FB117AD06BDD830B7586C:[U ]:LCT-5FE1F7DF:"
|
||||
UID_oster: 1000
|
||||
UID_karin: 1001
|
||||
GROUPS_oster: family
|
||||
GROUPS_karin: family
|
||||
|
||||
#SAMBA_VOLUME_CONFIG_shared_home: "[Home]; path=/home/%U; valid users = oster; guest ok = no; read only = no; browseable = yes"
|
||||
SAMBA_VOLUME_CONFIG_home: "[oster]; path=/shares/oster; valid users = oster; guest ok = no; read only = no; browseable = yes"
|
||||
SAMBA_VOLUME_CONFIG_paperless: "[paperless]; path=/shares/paperless-consume; valid users = oster; guest ok = no; read only = no; browseable = yes"
|
||||
|
||||
SAMBA_VOLUME_CONFIG_public: "[Public]; path=/shares/public; valid users = oster; guest ok = no; read only = no; browseable = yes; force group = 1000"
|
||||
SAMBA_VOLUME_CONFIG_public_ro: "[Public ReadOnly]; path=/shares/public; guest ok = yes; read only = yes; browseable = yes; force group = 1000"
|
||||
|
||||
|
||||
SAMBA_VOLUME_CONFIG_oster: "[oster]; path=/shares/oster; valid users = oster; guest ok = no; read only = no; browseable = yes"
|
||||
SAMBA_VOLUME_CONFIG_karin: "[karin]; path=/shares/karin; valid users = karin; guest ok = no; read only = no; browseable = yes"
|
||||
SAMBA_VOLUME_CONFIG_paperless: "[paperless]; path=/shares/paperless-consume; valid users = oster, karin; guest ok = no; read only = no; browseable = yes"
|
||||
SAMBA_VOLUME_CONFIG_public: "[Public]; path=/shares/public; valid users = oster, karin; guest ok = no; read only = no; browseable = yes"
|
||||
SAMBA_VOLUME_CONFIG_public_ro: "[Public ReadOnly]; path=/shares/public; guest ok = yes; read only = yes; browseable = yes"
|
||||
SAMBA_VOLUME_CONFIG_video_ro: "[Video]; path=/shares/video; guest ok = no; read only = no; browseable = yes"
|
||||
SAMBA_VOLUME_CONFIG_music_ro: "[Music]; path=/shares/music; guest ok = no; read only = no; browseable = yes"
|
||||
SAMBA_VOLUME_CONFIG_karinstefan: "[karin stefan]; path=/shares/karin-stefan; valid users = oster, karin; guest ok = no; read only = no; browseable = yes"
|
||||
#SAMBA_VOLUME_CONFIG_guestmultilineexample: |
|
||||
# [Guest Share]
|
||||
# path = /shares/guest
|
||||
|
|
@ -57,6 +59,10 @@ services:
|
|||
- /etc/avahi/services/:/external/avahi
|
||||
|
||||
# avoid loops when mounting folders to /shares (I'd recommend explicit mapping for each share)
|
||||
- ./shares/public:/shares/public
|
||||
- ./shares/oster:/shares/oster
|
||||
- /media/ssd/public:/shares/public
|
||||
- /media/ssd/oster:/shares/oster
|
||||
- /media/ssd/karin:/shares/karin
|
||||
- /media/ssd/karin-stefan:/shares/karin-stefan
|
||||
- /media/extension/music:/shares/music
|
||||
- /media/extension/video:/shares/video
|
||||
- ./paperless-consume:/shares/paperless-consume
|
||||
|
|
|
|||
|
|
@ -36,6 +36,13 @@ http:
|
|||
service: paperless-service
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
jellyfin-router:
|
||||
entryPoints:
|
||||
- "websecure"
|
||||
rule: "Host(`media.home.thoster.net`) && PathPrefix(`/`)"
|
||||
service: jellyfin-service
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
hass-router-auth:
|
||||
entryPoints:
|
||||
- "websecure"
|
||||
|
|
@ -157,6 +164,10 @@ http:
|
|||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://ubuntu:8000"
|
||||
jellyfin-service:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://ubuntu:8096"
|
||||
dummy-service:
|
||||
loadBalancer:
|
||||
servers:
|
||||
|
|
|
|||
|
|
@ -8,15 +8,21 @@
|
|||
|
||||
[Paperless Dokumentenmanagement](https://pl.home.thoster.net)
|
||||
|
||||
[Jellyfin Medien](https://media.home.thoster.net)
|
||||
|
||||
[KI Server](https://ai.home.thoster.net) -> wenn der Rechner im Keller aus ist, gehen nur die öffentlichen Modelle!
|
||||
Der Rechner lässt sich über Homeassistant hochfahren!
|
||||
|
||||
#### Alte Dinge
|
||||
|
||||
[Photo App auf der NAS](https://home.thoster.net:446/photo/)
|
||||
|
||||
### Interne Dienste
|
||||
|
||||
[Proxmox](https://192.168.178.99:8006)
|
||||
|
||||
[Jellyfin Medienserver](http://ubuntu:8096/)
|
||||
|
||||
[Zigbee2mqtt](http://ubuntu:8080/#/)
|
||||
|
||||
[Portainer](http://ubuntu:9100)
|
||||
|
|
@ -29,7 +35,15 @@
|
|||
|
||||
[Paperless ai](http://ubuntu:3000/)
|
||||
|
||||
#### Netzlaufwerke
|
||||
|
||||
Unter Windows mit ```\\ubuntu```
|
||||
Hier gibt es die bekannten Netzlaufwerke für Backups, z.B. karin-stefan
|
||||
|
||||
https://www.reddit.com/r/homeassistant/comments/oje65v/home_assitant_with_grafana_and_influxdb_2x_basic/
|
||||
|
||||
### Probleme / TODOs
|
||||
|
||||
#### Homeassistant
|
||||
|
||||
* Nach dem Neustart des Servers funktioniert der zigbee stick nicht! In Proxmox entfernen und wieder hinzufügen.
|
||||
|
|
|
|||
Loading…
Reference in New Issue