This commit is contained in:
2023-09-26 18:14:36 -06:00
commit fb5a0fc542
443 changed files with 21892 additions and 0 deletions

110
Jellyfin/.drone.yml Normal file
View File

@@ -0,0 +1,110 @@
---
kind: pipeline
type: docker
name: deploy
environment:
PACKAGE: Jellyfin
URL: jellyfin.alexlebens.net
steps:
- name: Tests
image: ps03fd.alexlebens.net:5000/droneimage:latest
commands:
- /scripts/tests.sh
- name: Nofification > Discord | Tests - Failure
image: appleboy/drone-discord
settings:
webhook_id:
from_secret: discord_webhook_id
webhook_token:
from_secret: discord_webhook_token
username: DroneCI - ps03fd
message: Docker compose validation for Jellyfin failed.
when:
status:
- failure
- name: Configuration
image: ps03fd.alexlebens.net:5000/droneimage:latest
commands:
- mkdir ~/.ssh/
- echo "$SSH_KEY" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- ssh-keyscan -H $HOST_IP >> ~/.ssh/known_hosts
- /scripts/configuration.sh
environment:
SSH_KEY:
from_secret: ssh_key_ps03fd_drone
DOCKER_HOST:
from_secret: docker_host_ps03fd
HOST_IP:
from_secret: host_ip_ps03fd
UPTIMEKUMA_NAME:
from_secret: uptimekuma_name
UPTIMEKUMA_PASSWORD:
from_secret: uptimekuma_password
UPTIMEKUMA_URL:
from_secret: uptimekuma_url
when:
branch:
- main
- name: Nofification > Discord | Configuration - Failure
image: appleboy/drone-discord
settings:
webhook_id:
from_secret: discord_webhook_id
webhook_token:
from_secret: discord_webhook_token
username: DroneCI - ps03fd
message: Configuration for Jellyfin failed.
when:
status:
- failure
- name: Deploy
image: ps03fd.alexlebens.net:5000/droneimage:latest
commands:
- mkdir ~/.ssh/
- echo "$SSH_KEY" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- ssh-keyscan -H $HOST_IP >> ~/.ssh/known_hosts
- /scripts/deploy.sh
environment:
SSH_KEY:
from_secret: ssh_key_ps03fd_drone
DOCKER_HOST:
from_secret: docker_host_ps03fd
HOST_IP:
from_secret: host_ip_ps03fd
when:
branch:
- main
- name: Nofification > Discord | Deploy - Success
image: appleboy/drone-discord
settings:
webhook_id:
from_secret: discord_webhook_id
webhook_token:
from_secret: discord_webhook_token
username: DroneCI - ps03fd
message: Docker compose deployment for Jellyfin succeeded
when:
status:
- sucess
- name: Nofification > Discord | Deploy - Failure
image: appleboy/drone-discord
settings:
webhook_id:
from_secret: discord_webhook_id
webhook_token:
from_secret: discord_webhook_token
username: DroneCI - ps03fd
message: Docker compose deployment for Jellyfin failed.
when:
status:
- failure

3
Jellyfin/README.md Normal file
View File

@@ -0,0 +1,3 @@
# Jellyfin
[![Build Status](https://drone.alexlebens.net/api/badges/alexlebens/Jellyfin/status.svg)](https://drone.alexlebens.net/alexlebens/Jellyfin)

View File

@@ -0,0 +1,17 @@
{
"type": "docker",
"name": "Jellyfin - Docker",
"interval": 60,
"retryInterval": 20,
"maxretries": 1,
"notificationIDList": [
3,
4
],
"url": "https://jellyfin.alexlebens.net",
"accepted_statuscodes": [
"200-299"
],
"docker_container": "jellyfin",
"docker_host": 1
}

View File

@@ -0,0 +1,17 @@
{
"type": "docker",
"name": "Jellyfin Vue - Docker",
"interval": 60,
"retryInterval": 20,
"maxretries": 1,
"notificationIDList": [
3,
4
],
"url": "https://jellyfinvue.alexlebens.net",
"accepted_statuscodes": [
"200-299"
],
"docker_container": "jellyfin_vue",
"docker_host": 1
}

View File

@@ -0,0 +1,15 @@
{
"type": "http",
"name": "Jellyfin - Web",
"interval": 60,
"retryInterval": 20,
"maxretries": 1,
"notificationIDList": [
3,
4
],
"url": "https://jellyfin.alexlebens.net",
"accepted_statuscodes": [
"200-299"
]
}

View File

@@ -0,0 +1,15 @@
{
"type": "http",
"name": "Jellyfin Vue - Web",
"interval": 60,
"retryInterval": 20,
"maxretries": 1,
"notificationIDList": [
3,
4
],
"url": "https://jellyvue.alexlebens.net",
"accepted_statuscodes": [
"200-299"
]
}

169
Jellyfin/docker-compose.yml Normal file
View File

@@ -0,0 +1,169 @@
services:
jellyfin:
container_name: jellyfin
devices:
- /dev/dri:/dev/dri
environment:
- PUID=1000
- PGID=1000
- TZ=America/Denver
- UMASK_SET=022
group_add:
- '105'
image: jellyfin/jellyfin
labels:
traefik.docker.network: traefik
traefik.enable: true
traefik.http.routers.jellyfin.entrypoints: websecure
traefik.http.routers.jellyfin.rule: Host(`jellyfin.alexlebens.net`)
traefik.http.routers.jellyfin.service: jellyfin
traefik.http.services.jellyfin.loadbalancer.server.port: 8096
logging:
driver: json-file
options:
max-size: 50m
max-file: "3"
networks:
traefik: null
privileged: true
ports:
- 7359:7359/udp
restart: unless-stopped
volumes:
- config:/config
- cache:/cache
- media:/media
- anime_nfs:/anime
- anime_movies_nfs:/anime_movies
- documentaries_nfs:/documentaries
- documentary_shows_nfs:/documentary_shows
- dvr_nfs:/dvr
- movies_nfs:/movies
- movies_classics_nfs:/movies_classics
- movies_foreign_nfs:/movies_foreign
- music_nfs:/music
- standup_nfs:/standup
- tvshows_nfs:/tvshows
vue:
container_name: jellyfin_vue
image: ghcr.io/jellyfin/jellyfin-vue:unstable
labels:
traefik.docker.network: traefik
traefik.enable: true
traefik.http.routers.jellyfin_vue.entrypoints: websecure
traefik.http.routers.jellyfin_vue.rule: Host(`jellyvue.alexlebens.net`)
traefik.http.routers.jellyfin_vue.service: jellyfin_vue
traefik.http.services.jellyfin_vue.loadbalancer.server.port: 80
logging:
driver: json-file
options:
max-size: 50m
max-file: "3"
networks:
traefik: null
restart: unless-stopped
networks:
traefik:
name: traefik
external: true
volumes:
config:
driver: local
driver_opts:
type: none
o: bind
device: /var/lib/docker/volumes/partition/jellyfin_config
media:
driver: local
driver_opts:
type: none
o: bind
device: /var/lib/docker/volumes/partition/jellyfin_media
cache:
driver: local
driver_opts:
type: none
o: bind
device: /var/lib/docker/volumes/partition/jellyfin_cache
anime_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.194,nfsvers=4
device: ":/volume2/Storage/Anime"
anime_movies_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.194,nfsvers=4
device: ":/volume2/Storage/Anime Movies"
documentaries_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.194,nfsvers=4
device: ":/volume2/Storage/Documentaries"
documentary_shows_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.194,nfsvers=4
device: ":/volume2/Storage/Documentary Shows"
dvr_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.194,nfsvers=4
device: ":/volume2/Storage/DVR"
movies_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.194,nfsvers=4
device: ":/volume2/Storage/Movies"
movies_classics_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.194,nfsvers=4
device: ":/volume2/Storage/Movies Classics"
movies_foreign_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.194,nfsvers=4
device: ":/volume2/Storage/Movies Foreign"
music_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.194,nfsvers=4
device: ":/volume2/Storage/Music"
standup_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.194,nfsvers=4
device: ":/volume2/Storage/Stand Up"
tvshows_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.194,nfsvers=4
device: ":/volume2/Storage/TV Shows"