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
70 shortDescription: string
72 defaultNSFWPolicy: NSFWPolicyType
73 defaultClientRoute: string
89 disableLocalSearch: boolean
90 isDefaultSearch: boolean
95 registered: ServerConfigPlugin[]
97 registeredExternalAuths: RegisteredExternalAuthConfig[]
99 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
103 registered: ServerConfigTheme[]
117 allowedForCurrentIP: boolean
118 requiresEmailVerification: boolean
131 enabledResolutions: number[]
134 availableProfiles: string[]
141 maxInstanceLives: number
148 enabledResolutions: number[]
151 availableProfiles: string[]
219 videoQuotaDaily: number
251 level: BroadcastMessageLevel
260 export type HTMLServerConfig = Omit<ServerConfig, 'signup'>