-import { NSFWPolicyType } from '../videos/nsfw-policy.type'
import { ClientScript } from '../plugins/plugin-package-json.model'
+import { NSFWPolicyType } from '../videos/nsfw-policy.type'
+import { BroadcastMessageLevel } from './broadcast-message-level.type'
export interface ServerConfigPlugin {
name: string
css: string[]
}
+export interface RegisteredExternalAuthConfig {
+ npmName: string
+ name: string
+ version: string
+ authName: string
+ authDisplayName: string
+}
+
+export interface RegisteredIdAndPassAuthConfig {
+ npmName: string
+ name: string
+ version: string
+ authName: string
+ weight: number
+}
+
export interface ServerConfig {
serverVersion: string
serverCommit?: string
}
}
+ search: {
+ remoteUri: {
+ users: boolean
+ anonymous: boolean
+ }
+
+ searchIndex: {
+ enabled: boolean
+ url: string
+ disableLocalSearch: boolean
+ isDefaultSearch: boolean
+ }
+ }
+
plugin: {
registered: ServerConfigPlugin[]
+
+ registeredExternalAuths: RegisteredExternalAuthConfig[]
+
+ registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
}
theme: {
}
signup: {
- allowed: boolean,
+ allowed: boolean
allowedForCurrentIP: boolean
requiresEmailVerification: boolean
}
enabledResolutions: number[]
}
+ live: {
+ enabled: boolean
+
+ maxDuration: number
+ maxInstanceLives: number
+ maxUserLives: number
+ allowReplay: boolean
+
+ transcoding: {
+ enabled: boolean
+
+ enabledResolutions: number[]
+ }
+
+ rtmp: {
+ port: number
+ }
+ }
+
import: {
videos: {
http: {
max: number
}
extensions: string[]
- },
+ }
file: {
extensions: string[]
}
file: {
size: {
max: number
- },
+ }
extensions: string[]
}
}
}
}
}
+
+ broadcastMessage: {
+ enabled: boolean
+ message: string
+ level: BroadcastMessageLevel
+ dismissable: boolean
+ }
}