1 import { ClientScriptJSON } from '../plugins/plugin-package-json.model'
2 import { NSFWPolicyType } from '../videos/nsfw-policy.type'
3 import { VideoPrivacy } from '../videos/video-privacy.enum'
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
134 requiresApproval: boolean
147 enabledResolutions: number[]
150 availableProfiles: string[]
166 maxInstanceLives: number
176 enabledResolutions: number[]
179 availableProfiles: string[]
204 videoChannelSynchronization: {
258 videoQuotaDaily: number
290 level: BroadcastMessageLevel
299 export type HTMLServerConfig = Omit<ServerConfig, 'signup'>