Files
ProxMenux/oci/examples/jellyfin-official.oci-compose.json
MacRimi cc12c625a6 install from a hand-written oci-compose; Log2RAM journal fix
OCI manager Apps
- "Install an image that is not in the catalog" reads an oci-compose from a file of the host or from an address.
- A file written by hand states the image, its ports, variables and volumes, and what the installation asks; the rest is completed when it is read. A complete file, or the record of an installation, is installed as it is, and of a record only the template is used.
- Errors name the field they are in, also on a host without python3-jsonschema.
- oci/README.md describes the engine and the oci-compose block by block, with two examples in oci/examples/.
- The documentation page of the option covers it, in English and Spanish.

Log2RAM (reported by @f3rs3n)
- The sync removes the old active journal file from the disk copy, so a boot no longer restores it and journald deletes its oldest archives first. Log2RAM optimization 1.7; it takes effect from the next reboot.

Translations
- The bot keeps "oci-compose" as written.
- Spanish texts for the new option and for the Log2RAM notice.
2026-10-12 22:29:08 +02:00

235 lines
7.0 KiB
JSON

{
"kind": "proxmenux.oci-template",
"catalog_ui": {
"title": {
"en_US": "Jellyfin Official"
},
"tagline": {
"en_US": "Official Jellyfin image with optional VA-API or NVIDIA acceleration."
},
"description": {
"en_US": "Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media."
},
"category": "media",
"icon": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jellyfin-icon.png",
"website": "https://jellyfin.org/",
"documentation": "https://jellyfin.org/docs/general/installation/container/",
"repository": "https://github.com/jellyfin/jellyfin-packaging"
},
"container_contract": {
"service_name": "jellyfin",
"container_name": "jellyfin",
"image": {
"reference": "jellyfin/jellyfin:latest"
},
"ports": [
{
"container_port": 8096
},
{
"container_port": 7359,
"protocol": "udp",
"required": false
}
],
"environment": [
{
"name": "JELLYFIN_PublishedServerUrl",
"required": false,
"prompt": "Optional published URL for Jellyfin"
}
],
"volumes": [
{
"container_path": "/config"
},
{
"container_path": "/cache"
},
{
"container_path": "/media",
"default": "host-bind",
"managed_volume": {
"default_size_gb": 32
}
}
],
"restart": "unless-stopped"
},
"first_run": {
"endpoints": [
{
"label": "Jellyfin WebUI",
"scheme": "http",
"port": 8096,
"path": "/",
"source": "official-container-documentation"
}
]
},
"proxmox": {
"defaults": {
"memory_mb": 2048
},
"installer_profile": {
"hardware_acceleration": {
"prompt": "Hardware acceleration for Jellyfin",
"default": "none",
"profiles": [
{
"id": "none",
"label": "No acceleration (CPU)",
"device_requests": []
},
{
"id": "vaapi",
"label": "Intel/AMD (VA-API)",
"device_requests": [
{
"id": "vaapi-render",
"kind": "character-device",
"purpose": "vaapi",
"path_prompt": "GPU render device",
"host_path_default": "/dev/dri/renderD128",
"container_path_strategy": "same-as-host",
"mode": "0660",
"deny_write": false,
"gid_strategy": "host-device-gid",
"environment": [
{
"name": "LIBVA_DRIVER_NAME",
"prompt": "VA-API driver",
"choices": [
"auto",
"radeonsi",
"iHD",
"i965"
],
"default": "auto",
"omit_values": [
"auto"
]
}
]
}
],
"post_start_configurations": [
{
"id": "jellyfin-vaapi-hdr-tone-mapping",
"type": "jellyfin-encoding-xml",
"enable_prompt": "Enable VA-API transcoding and HDR10/Dolby Vision to SDR tone mapping",
"enabled_default": true,
"required": true,
"timeout_seconds": 120,
"candidate_paths": [
"/config/encoding.xml",
"/config/config/encoding.xml"
],
"settings": {
"HardwareAccelerationType": "vaapi",
"VaapiDevice": {
"device_path_from": "vaapi-render"
},
"EnableDecodingColorDepth10Hevc": "true",
"EnableHardwareEncoding": "true",
"EnableTonemapping": "true",
"EnableVppTonemapping": "false",
"TonemappingAlgorithm": "bt2390",
"TonemappingMode": "auto",
"TonemappingRange": "auto"
},
"lists": {
"HardwareDecodingCodecs": [
"h264",
"hevc",
"vc1"
]
}
}
]
},
{
"id": "nvidia",
"label": "NVIDIA (NVENC/NVDEC)",
"device_requests": [
{
"id": "nvidia-runtime",
"kind": "nvidia-runtime",
"purpose": "nvidia-cuda-nvenc-nvdec",
"device_selection": "all-requested-by-compose"
}
],
"environment": [
{
"name": "NVIDIA_VISIBLE_DEVICES",
"value": "all"
}
],
"post_start_configurations": [
{
"id": "jellyfin-nvidia-hdr-tone-mapping",
"type": "jellyfin-encoding-xml",
"enable_prompt": "Enable NVIDIA transcoding and HDR10/Dolby Vision to SDR tone mapping",
"enabled_default": true,
"required": true,
"timeout_seconds": 120,
"candidate_paths": [
"/config/encoding.xml",
"/config/config/encoding.xml"
],
"settings": {
"HardwareAccelerationType": "nvenc",
"EnableDecodingColorDepth10Hevc": "true",
"EnableEnhancedNvdecDecoder": "true",
"EnableHardwareEncoding": "true",
"EnableTonemapping": "true",
"EnableVppTonemapping": "false",
"TonemappingAlgorithm": "bt2390",
"TonemappingMode": "auto",
"TonemappingRange": "auto"
},
"lists": {
"HardwareDecodingCodecs": [
"h264",
"hevc",
"vc1"
]
}
}
]
}
]
},
"startup_healthcheck": {
"scheme": "http",
"port": 8096,
"path": "/System/Info/Public",
"timeout_seconds": 180,
"request_timeout_seconds": 10,
"stability_seconds": 4,
"verify_tls": false
},
"volume_preparations": [
{
"container_path": "/config",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
},
{
"container_path": "/cache",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
},
{
"container_path": "/media",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
}
]
}
}
}