1 import { VideoPrivacy } from '../videos/video-privacy.enum'
2 import { ClientScript } 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 {
10 clientScripts: { [name: string]: ClientScript }
13 export interface ServerConfigTheme extends ServerConfigPlugin {
17 export interface RegisteredExternalAuthConfig {
22 authDisplayName: string
25 export interface RegisteredIdAndPassAuthConfig {
33 export interface ServerConfig {
40 preferAuthorDisplayName: boolean
46 redirectOnSingleExternalAuth: boolean
53 downloadEnabled: boolean
54 commentsEnabled: boolean
74 shortDescription: string
76 defaultNSFWPolicy: NSFWPolicyType
77 defaultClientRoute: string
93 disableLocalSearch: boolean
94 isDefaultSearch: boolean
99 registered: ServerConfigPlugin[]
101 registeredExternalAuths: RegisteredExternalAuthConfig[]
103 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
107 registered: ServerConfigTheme[]
121 allowedForCurrentIP: boolean
122 requiresEmailVerification: boolean
135 enabledResolutions: number[]
138 availableProfiles: string[]
145 maxInstanceLives: number
152 enabledResolutions: number[]
155 availableProfiles: string[]
223 videoQuotaDaily: number
255 level: BroadcastMessageLevel
264 export type HTMLServerConfig = Omit<ServerConfig, 'signup'>