Added docker production setup, updated README

This commit is contained in:
Aleksi Lassila
2023-08-11 02:06:01 +03:00
parent 2566829e56
commit 053618e4d3
21 changed files with 152 additions and 94 deletions

View File

@@ -1,6 +1,6 @@
import createClient from 'openapi-fetch';
import type { components, paths } from '$lib/apis/jellyfin/jellyfin.generated';
import { PUBLIC_JELLYFIN_API_KEY, PUBLIC_JELLYFIN_URL } from '$env/static/public';
import { env } from '$env/dynamic/public';
import { request } from '$lib/utils';
import type { DeviceProfile } from '$lib/apis/jellyfin/playback-profiles';
import { settings } from '$lib/stores/settings.store';
@@ -11,9 +11,9 @@ export type JellyfinItem = components['schemas']['BaseItemDto'];
export const JELLYFIN_DEVICE_ID = 'Reiverr Client';
export const JellyfinApi = createClient<paths>({
baseUrl: PUBLIC_JELLYFIN_URL,
baseUrl: env.PUBLIC_JELLYFIN_URL,
headers: {
Authorization: `MediaBrowser DeviceId="${JELLYFIN_DEVICE_ID}", Token="${PUBLIC_JELLYFIN_API_KEY}"`
Authorization: `MediaBrowser DeviceId="${JELLYFIN_DEVICE_ID}", Token="${env.PUBLIC_JELLYFIN_API_KEY}"`
}
});

View File

@@ -3,7 +3,7 @@ import { log, request } from '$lib/utils';
import type { paths } from '$lib/apis/radarr/radarr.generated';
import type { components } from '$lib/apis/radarr/radarr.generated';
import { getTmdbMovie } from '$lib/apis/tmdb/tmdbApi';
import { PUBLIC_RADARR_API_KEY, PUBLIC_RADARR_BASE_URL } from '$env/static/public';
import { env } from '$env/dynamic/public';
import { settings } from '$lib/stores/settings.store';
import { get } from 'svelte/store';
@@ -27,9 +27,9 @@ export interface RadarrMovieOptions {
}
export const RadarrApi = createClient<paths>({
baseUrl: PUBLIC_RADARR_BASE_URL,
baseUrl: env.PUBLIC_RADARR_BASE_URL,
headers: {
'X-Api-Key': PUBLIC_RADARR_API_KEY
'X-Api-Key': env.PUBLIC_RADARR_API_KEY
}
});

View File

@@ -1,4 +1,4 @@
import { PUBLIC_SONARR_API_KEY, PUBLIC_SONARR_BASE_URL } from '$env/static/public';
import { env } from '$env/dynamic/public';
import type { components, paths } from '$lib/apis/sonarr/sonarr.generated';
import { log } from '$lib/utils';
import createClient from 'openapi-fetch';
@@ -40,9 +40,9 @@ export interface SonarrSeriesOptions {
}
export const SonarrApi = createClient<paths>({
baseUrl: PUBLIC_SONARR_BASE_URL,
baseUrl: env.PUBLIC_SONARR_BASE_URL,
headers: {
'X-Api-Key': PUBLIC_SONARR_API_KEY
'X-Api-Key': env.PUBLIC_SONARR_API_KEY
}
});

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { PUBLIC_RADARR_BASE_URL } from '$env/static/public';
import { env } from '$env/dynamic/public';
import { getDiskSpace } from '$lib/apis/radarr/radarrApi';
import { library } from '$lib/stores/library.store';
import { formatSize } from '$lib/utils.js';
@@ -44,7 +44,7 @@
{large}
title="Radarr"
subtitle="Movies Provider"
href={PUBLIC_RADARR_BASE_URL}
href={env.PUBLIC_RADARR_BASE_URL}
stats={[
{ title: 'Movies', value: String(moviesCount) },
{ title: 'Space Taken', value: formatSize(spaceOccupied) },

View File

@@ -4,7 +4,7 @@
import StatsPlaceholder from './StatsPlaceholder.svelte';
import StatsContainer from './StatsContainer.svelte';
import SonarrIcon from '../svgs/SonarrIcon.svelte';
import { PUBLIC_SONARR_BASE_URL } from '$env/static/public';
import { env } from '$env/dynamic/public';
import { getDiskSpace } from '$lib/apis/sonarr/sonarrApi';
import { library } from '$lib/stores/library.store';
@@ -46,7 +46,7 @@
{large}
title="Sonarr"
subtitle="Shows Provider"
href={PUBLIC_SONARR_BASE_URL}
href={env.PUBLIC_SONARR_BASE_URL}
stats={[
{ title: 'Episodes', value: String(episodesCount) },
{ title: 'Space Taken', value: formatSize(spaceOccupied) },

View File

@@ -10,6 +10,7 @@
import { onMount } from 'svelte';
import { fade, fly } from 'svelte/transition';
import type { TitleType } from '$lib/types';
import { openTitleModal } from '../Modal/Modal';
const TRAILER_TIMEOUT = 3000;
const TRAILER_LOAD_TIME = 1000;
@@ -110,25 +111,6 @@
</span>
{/each}
</div>
<!-- <div
class="flex gap-4"
in:fly|global={{ y: -5, delay: ANIMATION_DURATION, duration: ANIMATION_DURATION }}
out:fly|global={{ y: 5, duration: ANIMATION_DURATION }}
>
<Button type="primary" href={`/${type}/${tmdbId}`}>
<span>Details</span><ChevronRight size={20} />
</Button>
{#if trailerId}
<Button
type="secondary"
href={youtubeUrl}
on:mouseover={() => (focusTrailer = true)}
on:mouseleave={() => (focusTrailer = false)}
>
<span>Watch Trailer</span><ChevronRight size={20} />
</Button>
{/if}
</div> -->
</div>
{/if}
@@ -138,7 +120,7 @@
out:fade|global={{ duration: ANIMATION_DURATION }}
>
<div class="flex gap-4 items-center">
<Button size="lg" type="primary" href={`/${type}/${tmdbId}`}>
<Button size="lg" type="primary" on:click={() => openTitleModal(tmdbId, type)}>
<span>Details</span><ChevronRight size={20} />
</Button>
{#if trailerId}

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { PUBLIC_JELLYFIN_URL } from '$env/static/public';
import { env } from '$env/dynamic/public';
import {
getJellyfinItem,
getJellyfinPlaybackInfo,
@@ -48,10 +48,10 @@
const hls = new Hls();
hls.loadSource(PUBLIC_JELLYFIN_URL + playbackUri);
hls.loadSource(env.PUBLIC_JELLYFIN_URL + playbackUri);
hls.attachMedia(video);
} else {
video.src = PUBLIC_JELLYFIN_URL + playbackUri;
video.src = env.PUBLIC_JELLYFIN_URL + playbackUri;
}
if (item?.UserData?.PlaybackPositionTicks) {