initial commit

This commit is contained in:
hiperman
2026-01-30 15:07:31 -05:00
commit 7844cc4416
83 changed files with 3802 additions and 0 deletions
+50
View File
@@ -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
```
+22
View File
@@ -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: []
+16
View File
@@ -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 }}"
+33
View File
@@ -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 %}