Merge pull request #243 from barraudSamuel/feat/jellyfin

feat: add jellyfin template
This commit is contained in:
Mauricio Siu
2024-07-22 13:03:14 -06:00
committed by GitHub
4 changed files with 101 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- ***** BEGIN LICENSE BLOCK *****
- Part of the Jellyfin project (https://jellyfin.media)
-
- All copyright belongs to the Jellyfin contributors; a full list can
- be found in the file CONTRIBUTORS.md
-
- This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
- To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/.
- ***** END LICENSE BLOCK ***** -->
<svg id="banner-light" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1536 512">
<defs>
<linearGradient id="linear-gradient" x1="110.25" y1="213.3" x2="496.14" y2="436.09" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#aa5cc3"/>
<stop offset="1" stop-color="#00a4dc"/>
</linearGradient>
</defs>
<title>banner-light</title>
<g id="banner-light">
<g id="banner-light-icon">
<path id="inner-shape" d="M261.42,201.62c-20.44,0-86.24,119.29-76.2,139.43s142.48,19.92,152.4,0S281.86,201.63,261.42,201.62Z" fill="url(#linear-gradient)"/>
<path id="outer-shape" d="M261.42,23.3C199.83,23.3,1.57,382.73,31.8,443.43s429.34,60,459.24,0S323,23.3,261.42,23.3ZM411.9,390.76c-19.59,39.33-281.08,39.77-300.9,0S221.1,115.48,261.45,115.48,431.49,351.42,411.9,390.76Z" fill="url(#linear-gradient)"/>
</g>
<g id="jellyfin-dark-outlines" style="isolation:isolate" transform="translate(43.8)">
<path d="M556.64,347.78a67,67,0,0,1-22.87-27.47,8.91,8.91,0,0,1-1.49-4.75,7.42,7.42,0,0,1,2.83-5.94,9.28,9.28,0,0,1,6.09-2.38c3.16,0,5.94,1.69,8.31,5.05a48.09,48.09,0,0,0,16.34,20.34,40.59,40.59,0,0,0,24,7.58q20.51,0,33.27-12.62t12.77-33.12V156.07a8.44,8.44,0,0,1,2.67-6.39,9.56,9.56,0,0,1,6.83-2.52,9,9,0,0,1,6.68,2.52,8.7,8.7,0,0,1,2.53,6.39v138.4a64.7,64.7,0,0,1-8.32,32.67,59,59,0,0,1-23,22.72Q608.61,358,589.9,358A57.21,57.21,0,0,1,556.64,347.78Z"/>
<path d="M831.66,276.5a8.77,8.77,0,0,1-6.24,2.53H713.15q0,17.82,7.28,31.92a54.91,54.91,0,0,0,20.79,22.28q13.51,8.17,31.93,8.17a54,54,0,0,0,25.54-5.94,52.7,52.7,0,0,0,18.12-15.15,10,10,0,0,1,6.24-2.67,8.14,8.14,0,0,1,7.72,7.72,8.85,8.85,0,0,1-3,6.24,74.7,74.7,0,0,1-23.91,19A65.56,65.56,0,0,1,773.45,358q-22.87,0-40.4-9.8a69.44,69.44,0,0,1-27.32-27.48q-9.79-17.65-9.8-40.83,0-24.36,9.65-42.62t25.69-27.92a65.2,65.2,0,0,1,34.16-9.65A70,70,0,0,1,798.84,208a65.78,65.78,0,0,1,25.39,24.36q9.81,16,10.1,38A8.07,8.07,0,0,1,831.66,276.5ZM733.5,228.83Q718.8,240.72,714.64,263H815.92v-2.38A47,47,0,0,0,807,237.3a48.47,48.47,0,0,0-18.56-15.15,54,54,0,0,0-23-5.2Q748.2,217,733.5,228.83Z"/>
<path d="M888.24,352.53a8.92,8.92,0,0,1-15.3-6.38v-202a8.91,8.91,0,1,1,17.82,0v202A8.65,8.65,0,0,1,888.24,352.53Z"/>
<path d="M956.55,352.53a8.92,8.92,0,0,1-15.3-6.38v-202a8.91,8.91,0,1,1,17.82,0v202A8.65,8.65,0,0,1,956.55,352.53Z"/>
<path d="M1122.86,203.14a8.7,8.7,0,0,1,2.53,6.39v131q0,23.44-9.21,40.09a61.58,61.58,0,0,1-25.54,25.25q-16.34,8.61-36.83,8.61a97.24,97.24,0,0,1-23.31-2.67,62,62,0,0,1-18-7.13q-6.24-3.87-6.24-8.62a17.94,17.94,0,0,1,.6-3,8.06,8.06,0,0,1,3-4.45,7.49,7.49,0,0,1,4.45-1.49,7.8,7.8,0,0,1,3.56.9q19,10.38,36.24,10.39,24.65,0,39.05-15.44t14.41-42.18V330.41a54.37,54.37,0,0,1-21.38,20,62.55,62.55,0,0,1-30.3,7.58q-25.85,0-39.2-15.45t-13.37-41.87V209.53a8.91,8.91,0,1,1,17.82,0V298q0,21.39,9.36,32.38t29.25,11a48,48,0,0,0,23.32-6.09,49.88,49.88,0,0,0,17.82-16,37.44,37.44,0,0,0,6.68-21.24v-88.5a9,9,0,0,1,15.29-6.39Z"/>
<path d="M1210.18,158.44q-5.21,6.24-5.2,17.23v30.59h33.27a8.25,8.25,0,0,1,5.79,2.38,8.26,8.26,0,0,1,0,11.88,8.24,8.24,0,0,1-5.79,2.37H1205V346.15a8.91,8.91,0,1,1-17.82,0V222.89h-21.68a7.83,7.83,0,0,1-5.94-2.52,8.21,8.21,0,0,1-2.37-5.79,8,8,0,0,1,2.37-6.09,8.33,8.33,0,0,1,5.94-2.23h21.68V175.67q0-18.71,10.84-29t29-10.24A46,46,0,0,1,1242.4,139q7.14,2.53,7.13,8.17a8.07,8.07,0,0,1-2.37,5.94,7.37,7.37,0,0,1-5.35,2.37,18.81,18.81,0,0,1-6.53-1.48,42,42,0,0,0-10.4-1.78Q1215.37,152.21,1210.18,158.44ZM1276,177.9c-2.19-1.88-3.27-4.61-3.27-8.17v-3q0-5.34,3.41-8.17t9.36-2.82q11.88,0,11.88,11v3c0,3.56-1,6.29-3.12,8.17s-5.1,2.82-9.06,2.82S1278.14,179.78,1276,177.9Zm15.59,174.63a8.92,8.92,0,0,1-15.3-6.38V209.53a8.91,8.91,0,1,1,17.82,0V346.15A8.65,8.65,0,0,1,1291.56,352.53Z"/>
<path d="M1452.53,215.91q12.92,16.2,12.92,42.92v87.32a8.4,8.4,0,0,1-2.67,6.38,8.8,8.8,0,0,1-6.24,2.53,8.64,8.64,0,0,1-8.91-8.91V259.72q0-19.31-9.65-31.33t-29.85-12a53.28,53.28,0,0,0-42.77,21.83,36.26,36.26,0,0,0-7.13,21.53v86.43a8.91,8.91,0,1,1-17.82,0V213.09a8.91,8.91,0,1,1,17.82,0v16.34q8-12.77,23-21.24a61.81,61.81,0,0,1,30.74-8.46Q1439.61,199.73,1452.53,215.91Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -0,0 +1,30 @@
version: '3.8'
services:
jellyfin:
image: jellyfin/jellyfin:10
networks:
- dokploy-network
ports:
- ${JELLYFIN_PORT}
labels:
- "traefik.enable=true"
- "traefik.http.routers.${HASH}.rule=Host(`${JELLYFIN_HOST}`)"
- "traefik.http.services.${HASH}.loadbalancer.server.port=${JELLYFIN_PORT}"
volumes:
- config:/config
- cache:/cache
- media:/media
restart: 'unless-stopped'
# Optional - alternative address used for autodiscovery
environment:
- JELLYFIN_PublishedServerUrl=http://${JELLYFIN_HOST}
# Optional - may be necessary for docker healthcheck to pass if running in host network mode
extra_hosts:
- 'host.docker.internal:host-gateway'
volumes:
config:
cache:
media:
networks:
dokploy-network:
external: true

View File

@@ -0,0 +1,22 @@
// EXAMPLE
import {
type Schema,
type Template,
generateHash,
generateRandomDomain,
} from "../utils";
export function generate(schema: Schema): Template {
const mainServiceHash = generateHash(schema.projectName);
const randomDomain = generateRandomDomain(schema);
const port = 8096;
const envs = [
`JELLYFIN_HOST=${randomDomain}`,
`HASH=${mainServiceHash}`,
`JELLYFIN_PORT=${port}`,
];
return {
envs,
};
}

View File

@@ -378,4 +378,19 @@ export const templates: TemplateData[] = [
tags: ["analytics"],
load: () => import("./umami/index").then((m) => m.generate),
},
{
id: "jellyfin",
name: "jellyfin",
version: "v10.9.7",
description:
"Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. ",
logo: "jellyfin.svg",
links: {
github: "https://github.com/jellyfin/jellyfin",
website: "https://jellyfin.org/",
docs: "https://jellyfin.org/docs/",
},
tags: ["media system"],
load: () => import("./jellyfin/index").then((m) => m.generate),
},
];