]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - shared/models/server/custom-config.model.ts
Improve advanced input filter
[github/Chocobozzz/PeerTube.git] / shared / models / server / custom-config.model.ts
... / ...
CommitLineData
1import { NSFWPolicyType } from '../videos/nsfw-policy.type'
2import { BroadcastMessageLevel } from './broadcast-message-level.type'
3
4export type ConfigResolutions = {
5 '240p': boolean
6 '360p': boolean
7 '480p': boolean
8 '720p': boolean
9 '1080p': boolean
10 '1440p': boolean
11 '2160p': boolean
12}
13
14export interface CustomConfig {
15 instance: {
16 name: string
17 shortDescription: string
18 description: string
19 terms: string
20 codeOfConduct: string
21
22 creationReason: string
23 moderationInformation: string
24 administrator: string
25 maintenanceLifetime: string
26 businessModel: string
27 hardwareInformation: string
28
29 languages: string[]
30 categories: number[]
31
32 isNSFW: boolean
33 defaultNSFWPolicy: NSFWPolicyType
34
35 defaultClientRoute: string
36
37 customizations: {
38 javascript?: string
39 css?: string
40 }
41 }
42
43 theme: {
44 default: string
45 }
46
47 services: {
48 twitter: {
49 username: string
50 whitelisted: boolean
51 }
52 }
53
54 cache: {
55 previews: {
56 size: number
57 }
58
59 captions: {
60 size: number
61 }
62
63 torrents: {
64 size: number
65 }
66 }
67
68 signup: {
69 enabled: boolean
70 limit: number
71 requiresEmailVerification: boolean
72 minimumAge: number
73 }
74
75 admin: {
76 email: string
77 }
78
79 contactForm: {
80 enabled: boolean
81 }
82
83 user: {
84 videoQuota: number
85 videoQuotaDaily: number
86 }
87
88 videoChannels: {
89 maxPerUser: number
90 }
91
92 transcoding: {
93 enabled: boolean
94
95 allowAdditionalExtensions: boolean
96 allowAudioFiles: boolean
97
98 threads: number
99 concurrency: number
100
101 profile: string
102
103 resolutions: ConfigResolutions & { '0p': boolean }
104
105 webtorrent: {
106 enabled: boolean
107 }
108
109 hls: {
110 enabled: boolean
111 }
112 }
113
114 live: {
115 enabled: boolean
116
117 allowReplay: boolean
118
119 maxDuration: number
120 maxInstanceLives: number
121 maxUserLives: number
122
123 transcoding: {
124 enabled: boolean
125 threads: number
126 profile: string
127 resolutions: ConfigResolutions
128 }
129 }
130
131 import: {
132 videos: {
133 concurrency: number
134
135 http: {
136 enabled: boolean
137 }
138 torrent: {
139 enabled: boolean
140 }
141 }
142 }
143
144 trending: {
145 videos: {
146 algorithms: {
147 enabled: string[]
148 default: string
149 }
150 }
151 }
152
153 autoBlacklist: {
154 videos: {
155 ofUsers: {
156 enabled: boolean
157 }
158 }
159 }
160
161 followers: {
162 instance: {
163 enabled: boolean
164 manualApproval: boolean
165 }
166 }
167
168 followings: {
169 instance: {
170 autoFollowBack: {
171 enabled: boolean
172 }
173
174 autoFollowIndex: {
175 enabled: boolean
176 indexUrl: string
177 }
178 }
179 }
180
181 broadcastMessage: {
182 enabled: boolean
183 message: string
184 level: BroadcastMessageLevel
185 dismissable: boolean
186 }
187
188 search: {
189 remoteUri: {
190 users: boolean
191 anonymous: boolean
192 }
193
194 searchIndex: {
195 enabled: boolean
196 url: string
197 disableLocalSearch: boolean
198 isDefaultSearch: boolean
199 }
200 }
201}