add plex
This commit is contained in:
124
README.md
124
README.md
@ -2,6 +2,7 @@
|
||||
|
||||
This repository contains a collection of Helm charts for deploying a complete media server stack on Kubernetes. The stack includes:
|
||||
|
||||
- **Plex**: Media server for streaming your media collection
|
||||
- **Jackett**: Index manager/proxy for torrent trackers
|
||||
- **qBittorrent**: Torrent client for downloading
|
||||
- **Sonarr**: TV shows management and automation
|
||||
@ -56,6 +57,7 @@ Each chart supports the following common configurations through their respective
|
||||
- `resources`: CPU/Memory limits and requests
|
||||
|
||||
#### Service-Specific Ports
|
||||
- Plex: 32400 (main), 32469 (DLNA), 1900 (DLNA/UDP), 32410-32414 (GDM)
|
||||
- Jackett: 9117
|
||||
- qBittorrent: 8080 (WebUI), 6881 (BitTorrent)
|
||||
- Sonarr: 8989
|
||||
@ -88,45 +90,119 @@ persistence:
|
||||
|
||||
#### Setting Up Ingress
|
||||
|
||||
Example ingress configuration for each service:
|
||||
Each service can be exposed using Kubernetes ingress. Here's a detailed example:
|
||||
|
||||
```yaml
|
||||
ingress:
|
||||
enabled: true
|
||||
className: nginx
|
||||
className: "nginx" # Specify your ingress controller
|
||||
annotations:
|
||||
# For automatic HTTPS with cert-manager
|
||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||
# If you're using nginx-ingress
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
# Add this if you're having issues with paths
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
hosts:
|
||||
- host: service-name.example.com
|
||||
- host: jackett.example.com # Replace with your domain
|
||||
paths:
|
||||
- path: /
|
||||
pathType: ImplementExact
|
||||
pathType: Prefix # Use Prefix for most cases
|
||||
tls:
|
||||
- secretName: service-name-tls
|
||||
- secretName: jackett-tls
|
||||
hosts:
|
||||
- service-name.example.com
|
||||
- jackett.example.com
|
||||
```
|
||||
|
||||
Common ingress configurations for different controllers:
|
||||
|
||||
1. **nginx-ingress**:
|
||||
```yaml
|
||||
ingress:
|
||||
className: "nginx"
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
```
|
||||
|
||||
2. **traefik**:
|
||||
```yaml
|
||||
ingress:
|
||||
className: "traefik"
|
||||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||
```
|
||||
|
||||
3. **contour**:
|
||||
```yaml
|
||||
ingress:
|
||||
className: "contour"
|
||||
annotations:
|
||||
projectcontour.io/websocket-routes: "/"
|
||||
```
|
||||
|
||||
### Ingress Troubleshooting
|
||||
|
||||
If you encounter issues with ingress:
|
||||
|
||||
1. **Check ingress controller**:
|
||||
```bash
|
||||
# Verify ingress controller is running
|
||||
kubectl get pods -n ingress-nginx
|
||||
|
||||
# Check ingress resource
|
||||
kubectl get ingress
|
||||
kubectl describe ingress jackett
|
||||
```
|
||||
|
||||
2. **Common issues and solutions**:
|
||||
- If paths aren't working, try changing `pathType` to `Prefix`
|
||||
- For 404 errors, check if the `rewrite-target` annotation is needed
|
||||
- For SSL/TLS issues, verify cert-manager setup and TLS secret creation
|
||||
|
||||
3. **Verify service connectivity**:
|
||||
```bash
|
||||
# Test service directly
|
||||
kubectl port-forward svc/jackett 9117:9117
|
||||
```
|
||||
|
||||
## Initial Setup
|
||||
|
||||
After installing all services, follow these steps:
|
||||
|
||||
1. **Jackett**:
|
||||
1. **Plex**:
|
||||
- Get your claim token from https://plex.tv/claim
|
||||
- Set the claim token in values.yaml:
|
||||
```yaml
|
||||
env:
|
||||
PLEX_CLAIM: "your-claim-token"
|
||||
```
|
||||
- For hardware transcoding, enable it in values.yaml:
|
||||
```yaml
|
||||
transcoding:
|
||||
hardware:
|
||||
enabled: true
|
||||
intel: true # For Intel GPU
|
||||
# or
|
||||
nvidia: true # For Nvidia GPU
|
||||
```
|
||||
- Configure your media libraries in the Plex web interface
|
||||
|
||||
2. **Jackett**:
|
||||
- Access the Jackett UI and add your preferred indexers
|
||||
- Note down the API key and indexer URLs for Sonarr/Radarr
|
||||
|
||||
2. **qBittorrent**:
|
||||
3. **qBittorrent**:
|
||||
- Access the WebUI (default credentials: admin/adminadmin)
|
||||
- Configure download paths and settings
|
||||
- Note down the username/password for Sonarr/Radarr
|
||||
|
||||
3. **Sonarr/Radarr**:
|
||||
4. **Sonarr/Radarr**:
|
||||
- Add Jackett indexers
|
||||
- Configure qBittorrent as download client
|
||||
- Set up media library paths
|
||||
- Get API keys for Overseerr
|
||||
|
||||
4. **Overseerr**:
|
||||
5. **Overseerr**:
|
||||
- Configure Sonarr/Radarr connections using their API keys
|
||||
- Set up user authentication
|
||||
|
||||
@ -167,4 +243,30 @@ Common issues and solutions:
|
||||
|
||||
## Contributing
|
||||
|
||||
Feel free to submit issues and pull requests for improvements.
|
||||
Feel free to submit issues and pull requests for improvements.
|
||||
|
||||
## Hardware Transcoding
|
||||
|
||||
Plex supports hardware transcoding with compatible GPUs:
|
||||
|
||||
### Intel GPU
|
||||
```yaml
|
||||
transcoding:
|
||||
hardware:
|
||||
enabled: true
|
||||
intel: true
|
||||
```
|
||||
|
||||
### Nvidia GPU
|
||||
```yaml
|
||||
transcoding:
|
||||
hardware:
|
||||
enabled: true
|
||||
nvidia: true
|
||||
```
|
||||
|
||||
Note: Hardware transcoding requires:
|
||||
- Compatible GPU hardware on your Kubernetes nodes
|
||||
- Proper drivers installed on the host
|
||||
- Appropriate permissions/security contexts
|
||||
- Plex Pass subscription
|
Reference in New Issue
Block a user