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 preferAuthorDisplayName: boolean
47 redirectOnSingleExternalAuth: boolean
54 downloadEnabled: boolean
55 commentsEnabled: boolean
81 shortDescription: string
83 defaultNSFWPolicy: NSFWPolicyType
84 defaultClientRoute: string
100 disableLocalSearch: boolean
101 isDefaultSearch: boolean
106 registered: ServerConfigPlugin[]
108 registeredExternalAuths: RegisteredExternalAuthConfig[]
110 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
114 registered: ServerConfigTheme[]
128 allowedForCurrentIP: boolean
129 requiresEmailVerification: boolean
142 enabledResolutions: number[]
145 availableProfiles: string[]
152 maxInstanceLives: number
159 enabledResolutions: number[]
162 availableProfiles: string[]
230 videoQuotaDaily: number
262 level: BroadcastMessageLevel
271 export type HTMLServerConfig = Omit<ServerConfig, 'signup'>