1 import { VideoPrivacy } from '../videos/video-privacy.enum'
2 import { ClientScriptJSON } from '../plugins/plugin-package-json.model'
3 import { NSFWPolicyType } from '../videos/nsfw-policy.type'
4 import { BroadcastMessageLevel } from './broadcast-message-level.type'
6 export interface ServerConfigPlugin {
11 clientScripts: { [name: string]: ClientScriptJSON }
14 export interface ServerConfigTheme extends ServerConfigPlugin {
18 export interface RegisteredExternalAuthConfig {
23 authDisplayName: string
26 export interface RegisteredIdAndPassAuthConfig {
34 export interface ServerConfig {
41 displayAuthorAvatar: boolean
42 preferAuthorDisplayName: boolean
48 redirectOnSingleExternalAuth: boolean
55 downloadEnabled: boolean
56 commentsEnabled: boolean
82 shortDescription: string
84 defaultNSFWPolicy: NSFWPolicyType
85 defaultClientRoute: string
101 disableLocalSearch: boolean
102 isDefaultSearch: boolean
107 registered: ServerConfigPlugin[]
109 registeredExternalAuths: RegisteredExternalAuthConfig[]
111 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
115 registered: ServerConfigTheme[]
129 allowedForCurrentIP: boolean
130 requiresEmailVerification: boolean
143 enabledResolutions: number[]
146 availableProfiles: string[]
153 maxInstanceLives: number
160 enabledResolutions: number[]
163 availableProfiles: string[]
235 videoQuotaDaily: number
267 level: BroadcastMessageLevel
276 export type HTMLServerConfig = Omit<ServerConfig, 'signup'>