allow limiting video-comments rss feeds to an account or video channel
[oweals/peertube.git] / shared / models / server / custom-config.model.ts
1 import { NSFWPolicyType } from '../videos/nsfw-policy.type'
2 import { BroadcastMessageLevel } from './broadcast-message-level.type'
3
4 export interface CustomConfig {
5   instance: {
6     name: string
7     shortDescription: string
8     description: string
9     terms: string
10     codeOfConduct: string
11
12     creationReason: string
13     moderationInformation: string
14     administrator: string
15     maintenanceLifetime: string
16     businessModel: string
17     hardwareInformation: string
18
19     languages: string[]
20     categories: number[]
21
22     isNSFW: boolean
23     defaultClientRoute: string
24     defaultNSFWPolicy: NSFWPolicyType
25     customizations: {
26       javascript?: string
27       css?: string
28     }
29   }
30
31   theme: {
32     default: string
33   }
34
35   services: {
36     twitter: {
37       username: string
38       whitelisted: boolean
39     }
40   }
41
42   cache: {
43     previews: {
44       size: number
45     }
46
47     captions: {
48       size: number
49     }
50   }
51
52   signup: {
53     enabled: boolean
54     limit: number
55     requiresEmailVerification: boolean
56   }
57
58   admin: {
59     email: string
60   }
61
62   contactForm: {
63     enabled: boolean
64   }
65
66   user: {
67     videoQuota: number
68     videoQuotaDaily: number
69   }
70
71   transcoding: {
72     enabled: boolean
73
74     allowAdditionalExtensions: boolean
75     allowAudioFiles: boolean
76
77     threads: number
78     resolutions: {
79       '0p': boolean
80       '240p': boolean
81       '360p': boolean
82       '480p': boolean
83       '720p': boolean
84       '1080p': boolean
85       '2160p': boolean
86     }
87
88     webtorrent: {
89       enabled: boolean
90     }
91
92     hls: {
93       enabled: boolean
94     }
95   }
96
97   import: {
98     videos: {
99       http: {
100         enabled: boolean
101       }
102       torrent: {
103         enabled: boolean
104       }
105     }
106   }
107
108   autoBlacklist: {
109     videos: {
110       ofUsers: {
111         enabled: boolean
112       }
113     }
114   }
115
116   followers: {
117     instance: {
118       enabled: boolean
119       manualApproval: boolean
120     }
121   }
122
123   followings: {
124     instance: {
125       autoFollowBack: {
126         enabled: boolean
127       }
128
129       autoFollowIndex: {
130         enabled: boolean
131         indexUrl: string
132       }
133     }
134   }
135
136   broadcastMessage: {
137     enabled: boolean
138     message: string
139     level: BroadcastMessageLevel
140     dismissable: boolean
141   }
142
143   search: {
144     remoteUri: {
145       users: boolean
146       anonymous: boolean
147     }
148
149     searchIndex: {
150       enabled: boolean
151       url: string
152       disableLocalSearch: boolean
153       isDefaultSearch: boolean
154     }
155   }
156 }