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
80 shortDescription: string
82 defaultNSFWPolicy: NSFWPolicyType
83 defaultClientRoute: string
99 disableLocalSearch: boolean
100 isDefaultSearch: boolean
105 registered: ServerConfigPlugin[]
107 registeredExternalAuths: RegisteredExternalAuthConfig[]
109 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
113 registered: ServerConfigTheme[]
127 allowedForCurrentIP: boolean
128 requiresEmailVerification: boolean
141 enabledResolutions: number[]
144 availableProfiles: string[]
151 maxInstanceLives: number
158 enabledResolutions: number[]
161 availableProfiles: string[]
229 videoQuotaDaily: number
261 level: BroadcastMessageLevel
270 export type HTMLServerConfig = Omit<ServerConfig, 'signup'>