Merge branch 'master' into develop
[oweals/peertube.git] / shared / models / server / custom-config.model.ts
1 import { NSFWPolicyType } from '../videos/nsfw-policy.type'
2
3 export interface CustomConfig {
4   instance: {
5     name: string
6     shortDescription: string
7     description: string
8     terms: string
9     isNSFW: boolean
10     defaultClientRoute: string
11     defaultNSFWPolicy: NSFWPolicyType
12     customizations: {
13       javascript?: string
14       css?: string
15     }
16   }
17
18   services: {
19     twitter: {
20       username: string
21       whitelisted: boolean
22     }
23   }
24
25   cache: {
26     previews: {
27       size: number
28     }
29
30     captions: {
31       size: number
32     }
33   }
34
35   signup: {
36     enabled: boolean
37     limit: number
38     requiresEmailVerification: boolean
39   }
40
41   admin: {
42     email: string
43   }
44
45   contactForm: {
46     enabled: boolean
47   }
48
49   user: {
50     videoQuota: number
51     videoQuotaDaily: number
52   }
53
54   transcoding: {
55     enabled: boolean
56     allowAdditionalExtensions: boolean
57     threads: number
58     resolutions: {
59       '240p': boolean
60       '360p': boolean
61       '480p': boolean
62       '720p': boolean
63       '1080p': boolean
64     }
65     hls: {
66       enabled: boolean
67     }
68   }
69
70   import: {
71     videos: {
72       http: {
73         enabled: boolean
74       },
75       torrent: {
76         enabled: boolean
77       }
78     }
79   }
80
81   autoBlacklist: {
82     videos: {
83       ofUsers: {
84         enabled: boolean
85       }
86     }
87   }
88
89   followers: {
90     instance: {
91       enabled: boolean,
92       manualApproval: boolean
93     }
94   }
95
96 }