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
51 redirectOnSingleExternalAuth: boolean
58 downloadEnabled: boolean
59 commentsEnabled: boolean
85 shortDescription: string
87 defaultNSFWPolicy: NSFWPolicyType
88 defaultClientRoute: string
104 disableLocalSearch: boolean
105 isDefaultSearch: boolean
110 registered: ServerConfigPlugin[]
112 registeredExternalAuths: RegisteredExternalAuthConfig[]
114 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
118 registered: ServerConfigTheme[]
132 allowedForCurrentIP: boolean
133 requiresEmailVerification: boolean
146 enabledResolutions: number[]
149 availableProfiles: string[]
161 maxInstanceLives: number
167 enabledResolutions: number[]
170 availableProfiles: string[]
242 videoQuotaDaily: number
274 level: BroadcastMessageLevel
283 export type HTMLServerConfig = Omit<ServerConfig, 'signup'>