]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/models/server/server-config.model.ts
Fix videos language tests
[github/Chocobozzz/PeerTube.git] / shared / models / server / server-config.model.ts
CommitLineData
3cf68b86 1import { VideoPrivacy } from '../videos/video-privacy.enum'
18a6f04c 2import { ClientScript } from '../plugins/plugin-package-json.model'
72c33e71
C
3import { NSFWPolicyType } from '../videos/nsfw-policy.type'
4import { BroadcastMessageLevel } from './broadcast-message-level.type'
18a6f04c 5
ffb321be 6export interface ServerConfigPlugin {
18a6f04c
C
7 name: string
8 version: string
9 description: string
e8f902c0 10 clientScripts: { [name: string]: ClientScript }
18a6f04c 11}
0883b324 12
ffb321be
C
13export interface ServerConfigTheme extends ServerConfigPlugin {
14 css: string[]
15}
16
4a8d113b
C
17export interface RegisteredExternalAuthConfig {
18 npmName: string
ebefc902
C
19 name: string
20 version: string
4a8d113b
C
21 authName: string
22 authDisplayName: string
23}
24
25export interface RegisteredIdAndPassAuthConfig {
26 npmName: string
ebefc902
C
27 name: string
28 version: string
4a8d113b
C
29 authName: string
30 weight: number
31}
32
154898b0 33export interface ServerConfig {
36f9424f 34 serverVersion: string
abb2c792 35 serverCommit?: string
36f9424f 36
7399a79f 37 client: {
38 videos: {
39 miniature: {
80dea8f4 40 preferAuthorDisplayName: boolean
7399a79f 41 }
42 }
0bc53e20
C
43
44 menu: {
45 login: {
46 redirectOnSingleExternalAuth: boolean
47 }
48 }
7399a79f 49 }
50
3cf68b86
C
51 defaults: {
52 publish: {
53 downloadEnabled: boolean
54 commentsEnabled: boolean
55 privacy: VideoPrivacy
56 licence: number
57 }
58 }
59
cf0c8ee5
C
60 webadmin: {
61 configuration: {
62 edition: {
63 allowed: boolean
64 }
65 }
f0ab2aed 66 }
cf0c8ee5 67
36f9424f 68 instance: {
901637bb 69 name: string
2e3a0215 70 shortDescription: string
f8802489 71 isNSFW: boolean
0883b324 72 defaultNSFWPolicy: NSFWPolicyType
3da68f0a 73 defaultClientRoute: string
00b5556c
C
74 customizations: {
75 javascript: string
76 css: string
77 }
36f9424f
C
78 }
79
9677fca7
RK
80 search: {
81 remoteUri: {
82 users: boolean
83 anonymous: boolean
84 }
5fb2e288
C
85
86 searchIndex: {
87 enabled: boolean
88 url: string
89 disableLocalSearch: boolean
90 isDefaultSearch: boolean
91 }
9677fca7
RK
92 }
93
7cd4d2ba
C
94 plugin: {
95 registered: ServerConfigPlugin[]
4a8d113b
C
96
97 registeredExternalAuths: RegisteredExternalAuthConfig[]
98
99 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
7cd4d2ba
C
100 }
101
102 theme: {
ffb321be 103 registered: ServerConfigTheme[]
7cd4d2ba
C
104 default: string
105 }
18a6f04c 106
3b3b1820
C
107 email: {
108 enabled: boolean
109 }
110
a4101923
C
111 contactForm: {
112 enabled: boolean
113 }
114
154898b0 115 signup: {
a1587156 116 allowed: boolean
09209296 117 allowedForCurrentIP: boolean
d9eaee39 118 requiresEmailVerification: boolean
1f256e7d 119 minimumAge: number
154898b0 120 }
36f9424f 121
6a84aafd 122 transcoding: {
09209296
C
123 hls: {
124 enabled: boolean
125 }
126
d7a25329
C
127 webtorrent: {
128 enabled: boolean
129 }
130
6a84aafd 131 enabledResolutions: number[]
1896bca0
C
132
133 profile: string
134 availableProfiles: string[]
6a84aafd 135 }
36f9424f 136
c6c0fa6c
C
137 live: {
138 enabled: boolean
139
fb719404 140 maxDuration: number
a056ca48
C
141 maxInstanceLives: number
142 maxUserLives: number
fb719404
C
143 allowReplay: boolean
144
c6c0fa6c
C
145 transcoding: {
146 enabled: boolean
147
148 enabledResolutions: number[]
1896bca0
C
149
150 profile: string
151 availableProfiles: string[]
c6c0fa6c 152 }
4f20856e
C
153
154 rtmp: {
155 port: number
156 }
c6c0fa6c
C
157 }
158
5d08a6a7 159 import: {
b2977eec 160 videos: {
5d08a6a7
C
161 http: {
162 enabled: boolean
163 }
a84b8fa5
C
164 torrent: {
165 enabled: boolean
166 }
5d08a6a7
C
167 }
168 }
169
7ccddd7b
JM
170 autoBlacklist: {
171 videos: {
172 ofUsers: {
173 enabled: boolean
174 }
175 }
176 }
177
01de67b9
C
178 avatar: {
179 file: {
180 size: {
181 max: number
09209296 182 }
01de67b9
C
183 extensions: string[]
184 }
185 }
36f9424f 186
cdeddff1
C
187 banner: {
188 file: {
189 size: {
190 max: number
191 }
192 extensions: string[]
193 }
194 }
195
01de67b9 196 video: {
6de36768
C
197 image: {
198 size: {
199 max: number
200 }
201 extensions: string[]
a1587156 202 }
01de67b9
C
203 file: {
204 extensions: string[]
205 }
206 }
1869c875 207
40e87e9e
C
208 videoCaption: {
209 file: {
210 size: {
211 max: number
a1587156 212 }
40e87e9e
C
213 extensions: string[]
214 }
215 }
216
1869c875
RK
217 user: {
218 videoQuota: number
bee0abff 219 videoQuotaDaily: number
1869c875 220 }
9b4b15f9 221
754b6f5f
FC
222 videoChannels: {
223 maxPerUser: number
224 }
225
9b4b15f9
AB
226 trending: {
227 videos: {
228 intervalDays: number
ba5d4a84
RK
229 algorithms: {
230 enabled: string[]
231 default: string
232 }
9b4b15f9
AB
233 }
234 }
31b6ddf8
C
235
236 tracker: {
237 enabled: boolean
238 }
000eb0e4
RK
239
240 followings: {
241 instance: {
242 autoFollowIndex: {
243 indexUrl: string
244 }
245 }
246 }
72c33e71
C
247
248 broadcastMessage: {
249 enabled: boolean
250 message: string
251 level: BroadcastMessageLevel
252 dismissable: boolean
253 }
2539932e
C
254
255 homepage: {
256 enabled: boolean
257 }
154898b0 258}
aea0b0e7
C
259
260export type HTMLServerConfig = Omit<ServerConfig, 'signup'>