summaryrefslogtreecommitdiff
path: root/f3s/jellyfin/README.md
blob: ba08965563876aee55d8c888d7d0d7f10ec39b18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Jellyfin Kubernetes Deployment

This directory contains the Kubernetes configuration for deploying [Jellyfin](https://jellyfin.org/) - a free software media system that puts you in control of your media and data.

## Architecture

Jellyfin is a single-component deployment consisting of:
- **Server**: Main media server with web interface and API

## Prerequisites

1. **Create storage directory on the NFS server**:
   ```bash
   for host in f0 f1 f2; do
     ssh paul@$host "doas mkdir -p /data/nfs/k3svolumes/jellyfin"
     ssh paul@$host "doas chown -R 911:911 /data/nfs/k3svolumes/jellyfin/"
   done
   ```

## Deployment

1. **Install the custom resources** (PVs, PVCs, ingress):
   ```bash
   just install-resources
   ```

2. **Install Jellyfin using Helm** (or ArgoCD):
   ```bash
   just sync
   ```

3. **Check deployment status**:
   ```bash
   just status
   ```

   Wait for all pods to be in `Running` state (may take a few minutes for image pulls).

## Access

Once deployed, Jellyfin will be available at: **https://jellyfin.f3s.buetow.org**

Default setup instructions:
1. Navigate to the URL above
2. Complete the setup wizard on first access
3. Configure libraries and preferences

## Storage

Persistent storage is configured with:
- **Data**: Main configuration and metadata at `/data/nfs/k3svolumes/jellyfin`
- **Media**: Mount your media directories from other NFS sources as needed

## Maintenance

### Restart Jellyfin
```bash
just restart
```

### View logs
```bash
just logs
```

### Port forward for local access
```bash
just port-forward
```

### Uninstall (keeps data)
```bash
kubectl delete application jellyfin -n cicd
```

## Troubleshooting

### Check pod logs
```bash
kubectl logs -n services -l app=jellyfin-server --tail=100
```

### Verify persistent volumes
```bash
kubectl get pv,pvc -n services | grep jellyfin
```