]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/models/server/server-config.model.ts
Introduce generic video constant manager for plugins
[github/Chocobozzz/PeerTube.git] / shared / models / server / server-config.model.ts
index a8e5dfbff64bfd66384b6eb19983835b44d76a2e..585e99acaca85648e48ef3c59e8ec78db6e1a74c 100644 (file)
@@ -36,9 +36,9 @@ export interface ServerConfig {
   instance: {
     name: string
     shortDescription: string
-    defaultClientRoute: string
     isNSFW: boolean
     defaultNSFWPolicy: NSFWPolicyType
+    defaultClientRoute: string
     customizations: {
       javascript: string
       css: string
@@ -84,6 +84,7 @@ export interface ServerConfig {
     allowed: boolean
     allowedForCurrentIP: boolean
     requiresEmailVerification: boolean
+    minimumAge: number
   }
 
   transcoding: {
@@ -96,6 +97,31 @@ export interface ServerConfig {
     }
 
     enabledResolutions: number[]
+
+    profile: string
+    availableProfiles: string[]
+  }
+
+  live: {
+    enabled: boolean
+
+    maxDuration: number
+    maxInstanceLives: number
+    maxUserLives: number
+    allowReplay: boolean
+
+    transcoding: {
+      enabled: boolean
+
+      enabledResolutions: number[]
+
+      profile: string
+      availableProfiles: string[]
+    }
+
+    rtmp: {
+      port: number
+    }
   }
 
   import: {
@@ -126,6 +152,15 @@ export interface ServerConfig {
     }
   }
 
+  banner: {
+    file: {
+      size: {
+        max: number
+      }
+      extensions: string[]
+    }
+  }
+
   video: {
     image: {
       size: {
@@ -155,6 +190,10 @@ export interface ServerConfig {
   trending: {
     videos: {
       intervalDays: number
+      algorithms: {
+        enabled: string[]
+        default: string
+      }
     }
   }
 
@@ -176,4 +215,10 @@ export interface ServerConfig {
     level: BroadcastMessageLevel
     dismissable: boolean
   }
+
+  homepage: {
+    enabled: boolean
+  }
 }
+
+export type HTMLServerConfig = Omit<ServerConfig, 'signup'>