0200d88ca7fc2806e60a3c322bb95e3fdf30838e
[oweals/peertube.git] / shared / models / server / server-config.model.ts
1 import { NSFWPolicyType } from '../videos/nsfw-policy.type'
2
3 export interface ServerConfig {
4   serverVersion: string
5   serverCommit?: string
6
7   instance: {
8     name: string
9     shortDescription: string
10     defaultClientRoute: string
11     isNSFW: boolean
12     defaultNSFWPolicy: NSFWPolicyType
13     customizations: {
14       javascript: string
15       css: string
16     }
17   }
18
19   email: {
20     enabled: boolean
21   }
22
23   contactForm: {
24     enabled: boolean
25   }
26
27   signup: {
28     allowed: boolean,
29     allowedForCurrentIP: boolean
30     requiresEmailVerification: boolean
31   }
32
33   transcoding: {
34     hls: {
35       enabled: boolean
36     }
37
38     enabledResolutions: number[]
39   }
40
41   import: {
42     videos: {
43       http: {
44         enabled: boolean
45       }
46       torrent: {
47         enabled: boolean
48       }
49     }
50   }
51
52   avatar: {
53     file: {
54       size: {
55         max: number
56       }
57       extensions: string[]
58     }
59   }
60
61   video: {
62     image: {
63       size: {
64         max: number
65       }
66       extensions: string[]
67     },
68     file: {
69       extensions: string[]
70     }
71   }
72
73   videoCaption: {
74     file: {
75       size: {
76         max: number
77       },
78       extensions: string[]
79     }
80   }
81
82   user: {
83     videoQuota: number
84     videoQuotaDaily: number
85   }
86
87   trending: {
88     videos: {
89       intervalDays: number
90     }
91   }
92 }