initial commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# Jellyfin
|
||||
|
||||
Deploy Jellyfin media server using Docker Compose.
|
||||
|
||||
## Description
|
||||
|
||||
Jellyfin is a free and open-source media server for organizing, managing, and streaming media files with optional GPU hardware acceleration.
|
||||
|
||||
## Variables
|
||||
|
||||
### Optional
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `jellyfin_http_port` | `8096` | Web interface port |
|
||||
| `jellyfin_discovery_port` | `7359` | Auto-discovery port |
|
||||
| `jellyfin_config_path` | `{{ app_dir }}/config` | Configuration storage |
|
||||
| `jellyfin_cache_path` | `{{ app_dir }}/cache` | Cache storage |
|
||||
| `jellyfin_container_version` | `latest` | Jellyfin Docker image tag |
|
||||
| `jellyfin_container_name` | `{{ app_name }}` | Container name |
|
||||
| `jellyfin_restart_policy` | `{{ app_restart_policy }}` | Container restart policy |
|
||||
| `jellyfin_uid` | `{{ app_uid }}` | User ID for file permissions |
|
||||
| `jellyfin_gid` | `{{ app_gid }}` | Group ID for file permissions |
|
||||
| `jellyfin_gpu_passthrough` | `false` | Enable NVIDIA GPU support |
|
||||
| `jellyfin_server_url` | See defaults | Custom domain for server |
|
||||
| `jellyfin_libraries` | `[]` | List of media library mappings with `host_path` and `container_path` |
|
||||
|
||||
#### Example Media Libraries Configuration
|
||||
|
||||
```yaml
|
||||
jellyfin_libraries:
|
||||
- host_path: "/storage/movies"
|
||||
container_path: /movies
|
||||
- host_path: "/storage/tv_shows"
|
||||
container_path: /tv_shows
|
||||
- host_path: "/storage/anime"
|
||||
container_path: /anime
|
||||
```
|
||||
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
- role: patrickj.docker_apps.jellyfin
|
||||
vars:
|
||||
shared_media_path: /storage/media
|
||||
jellyfin_gpu_passthrough: true
|
||||
jellyfin_libraries:
|
||||
- host_path: /storage/media/movies
|
||||
container_path: /movies
|
||||
```
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
app_name: jellyfin
|
||||
|
||||
# Container configuration
|
||||
jellyfin_container_name: "{{ app_name | default('jellyfin') }}"
|
||||
jellyfin_container_version: latest
|
||||
jellyfin_restart_policy: "{{ app_restart_policy }}"
|
||||
jellyfin_uid: "{{ app_uid }}"
|
||||
jellyfin_gid: "{{ app_gid }}"
|
||||
|
||||
# Network configuration
|
||||
jellyfin_http_port: 8096
|
||||
jellyfin_discovery_port: 7359
|
||||
|
||||
# Volume paths
|
||||
jellyfin_config_path: "{{ app_dir }}/config"
|
||||
jellyfin_cache_path: "{{ app_dir }}/cache"
|
||||
|
||||
# App-specific configuration
|
||||
jellyfin_gpu_passthrough: false
|
||||
jellyfin_libraries: []
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: Patrick Jaroszewski
|
||||
description: Deploy Jellyfin with Docker Compose
|
||||
license: MIT
|
||||
|
||||
dependencies:
|
||||
- role: patrickj.docker_apps.docker_compose_app
|
||||
vars:
|
||||
app_role_name: jellyfin
|
||||
app_subdirectories:
|
||||
- "{{ jellyfin_config_path }}"
|
||||
- "{{ jellyfin_cache_path }}"
|
||||
app_backup_subdirectories:
|
||||
- "{{ jellyfin_config_path }}"
|
||||
- "{{ jellyfin_cache_path }}"
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
services:
|
||||
jellyfin:
|
||||
image: "jellyfin/jellyfin:{{ jellyfin_container_version }}"
|
||||
container_name: "{{ jellyfin_container_name }}"
|
||||
user: {{ jellyfin_uid }}:{{ jellyfin_gid }}
|
||||
restart: {{ jellyfin_restart_policy }}
|
||||
ports:
|
||||
- {{ jellyfin_http_port }}:8096/tcp
|
||||
- {{ jellyfin_discovery_port }}:7359/udp
|
||||
volumes:
|
||||
- "{{ jellyfin_config_path }}:/config"
|
||||
- "{{ jellyfin_cache_path }}:/cache"
|
||||
{% for item in jellyfin_libraries %}
|
||||
- "{{ item.host_path }}:{{ item.container_path }}:ro"
|
||||
{% endfor %}
|
||||
|
||||
{% if jellyfin_server_url %}
|
||||
# Optional - alternative address used for autodiscovery
|
||||
environment:
|
||||
- JELLYFIN_PublishedServerUrl={{ jellyfin_server_url }}
|
||||
{% endif %}
|
||||
|
||||
{% if jellyfin_gpu_passthrough %}
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [gpu]
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user