jellyfin etc.

This commit is contained in:
2025-02-28 23:22:29 +00:00
parent 20fcec5c6e
commit 433e78a534
19 changed files with 602 additions and 47 deletions

View File

@@ -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>

View File

@@ -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" ]
}
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>&amp;</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>

View File

@@ -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'