X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=shared%2Fmodels%2Fserver%2Fserver-config.model.ts;h=d7fbed13c469b95f744002e1276ff5047fffa567;hb=f443a74649174b2f9347c158e30f8ac7aa3e958a;hp=0ff0792167d65076a22a112545de7ec0dafe9874;hpb=4a8d113b9b57d97ff13ad1608798eabca99643e4;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/server/server-config.model.ts b/shared/models/server/server-config.model.ts index 0ff079216..d7fbed13c 100644 --- a/shared/models/server/server-config.model.ts +++ b/shared/models/server/server-config.model.ts @@ -1,11 +1,14 @@ +import { VideoPrivacy } from '../videos/video-privacy.enum' +import { ClientScriptJSON } from '../plugins/plugin-package-json.model' import { NSFWPolicyType } from '../videos/nsfw-policy.type' -import { ClientScript } from '../plugins/plugin-package-json.model' +import { BroadcastMessageLevel } from './broadcast-message-level.type' export interface ServerConfigPlugin { name: string + npmName: string version: string description: string - clientScripts: { [name: string]: ClientScript } + clientScripts: { [name: string]: ClientScriptJSON } } export interface ServerConfigTheme extends ServerConfigPlugin { @@ -14,12 +17,16 @@ export interface ServerConfigTheme extends ServerConfigPlugin { export interface RegisteredExternalAuthConfig { npmName: string + name: string + version: string authName: string authDisplayName: string } export interface RegisteredIdAndPassAuthConfig { npmName: string + name: string + version: string authName: string weight: number } @@ -28,12 +35,54 @@ export interface ServerConfig { serverVersion: string serverCommit?: string + client: { + videos: { + miniature: { + displayAuthorAvatar: boolean + preferAuthorDisplayName: boolean + } + } + + menu: { + login: { + redirectOnSingleExternalAuth: boolean + } + } + } + + defaults: { + publish: { + downloadEnabled: boolean + commentsEnabled: boolean + privacy: VideoPrivacy + licence: number + } + + p2p: { + webapp: { + enabled: boolean + } + + embed: { + enabled: boolean + } + } + } + + webadmin: { + configuration: { + edition: { + allowed: boolean + } + } + } + instance: { name: string shortDescription: string - defaultClientRoute: string isNSFW: boolean defaultNSFWPolicy: NSFWPolicyType + defaultClientRoute: string customizations: { javascript: string css: string @@ -45,6 +94,13 @@ export interface ServerConfig { users: boolean anonymous: boolean } + + searchIndex: { + enabled: boolean + url: string + disableLocalSearch: boolean + isDefaultSearch: boolean + } } plugin: { @@ -72,6 +128,7 @@ export interface ServerConfig { allowed: boolean allowedForCurrentIP: boolean requiresEmailVerification: boolean + minimumAge: number } transcoding: { @@ -84,6 +141,39 @@ export interface ServerConfig { } enabledResolutions: number[] + + profile: string + availableProfiles: string[] + } + + live: { + enabled: boolean + + allowReplay: boolean + latencySetting: { + enabled: boolean + } + + maxDuration: number + maxInstanceLives: number + maxUserLives: number + + transcoding: { + enabled: boolean + + enabledResolutions: number[] + + profile: string + availableProfiles: string[] + } + + rtmp: { + port: number + } + } + + videoEditor: { + enabled: boolean } import: { @@ -114,6 +204,15 @@ export interface ServerConfig { } } + banner: { + file: { + size: { + max: number + } + extensions: string[] + } + } + video: { image: { size: { @@ -140,9 +239,17 @@ export interface ServerConfig { videoQuotaDaily: number } + videoChannels: { + maxPerUser: number + } + trending: { videos: { intervalDays: number + algorithms: { + enabled: string[] + default: string + } } } @@ -157,4 +264,17 @@ export interface ServerConfig { } } } + + broadcastMessage: { + enabled: boolean + message: string + level: BroadcastMessageLevel + dismissable: boolean + } + + homepage: { + enabled: boolean + } } + +export type HTMLServerConfig = Omit