]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/models/server/server-config.model.ts
Add P2P enabled/disabled in player card
[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 }
a9bfa85d
C
58
59 p2p: {
60 enabled: boolean
61 }
3cf68b86
C
62 }
63
cf0c8ee5
C
64 webadmin: {
65 configuration: {
66 edition: {
67 allowed: boolean
68 }
69 }
f0ab2aed 70 }
cf0c8ee5 71
36f9424f 72 instance: {
901637bb 73 name: string
2e3a0215 74 shortDescription: string
f8802489 75 isNSFW: boolean
0883b324 76 defaultNSFWPolicy: NSFWPolicyType
3da68f0a 77 defaultClientRoute: string
00b5556c
C
78 customizations: {
79 javascript: string
80 css: string
81 }
36f9424f
C
82 }
83
9677fca7
RK
84 search: {
85 remoteUri: {
86 users: boolean
87 anonymous: boolean
88 }
5fb2e288
C
89
90 searchIndex: {
91 enabled: boolean
92 url: string
93 disableLocalSearch: boolean
94 isDefaultSearch: boolean
95 }
9677fca7
RK
96 }
97
7cd4d2ba
C
98 plugin: {
99 registered: ServerConfigPlugin[]
4a8d113b
C
100
101 registeredExternalAuths: RegisteredExternalAuthConfig[]
102
103 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
7cd4d2ba
C
104 }
105
106 theme: {
ffb321be 107 registered: ServerConfigTheme[]
7cd4d2ba
C
108 default: string
109 }
18a6f04c 110
3b3b1820
C
111 email: {
112 enabled: boolean
113 }
114
a4101923
C
115 contactForm: {
116 enabled: boolean
117 }
118
154898b0 119 signup: {
a1587156 120 allowed: boolean
09209296 121 allowedForCurrentIP: boolean
d9eaee39 122 requiresEmailVerification: boolean
1f256e7d 123 minimumAge: number
154898b0 124 }
36f9424f 125
6a84aafd 126 transcoding: {
09209296
C
127 hls: {
128 enabled: boolean
129 }
130
d7a25329
C
131 webtorrent: {
132 enabled: boolean
133 }
134
6a84aafd 135 enabledResolutions: number[]
1896bca0
C
136
137 profile: string
138 availableProfiles: string[]
6a84aafd 139 }
36f9424f 140
c6c0fa6c
C
141 live: {
142 enabled: boolean
143
fb719404 144 maxDuration: number
a056ca48
C
145 maxInstanceLives: number
146 maxUserLives: number
fb719404
C
147 allowReplay: boolean
148
c6c0fa6c
C
149 transcoding: {
150 enabled: boolean
151
152 enabledResolutions: number[]
1896bca0
C
153
154 profile: string
155 availableProfiles: string[]
c6c0fa6c 156 }
4f20856e
C
157
158 rtmp: {
159 port: number
160 }
c6c0fa6c
C
161 }
162
5d08a6a7 163 import: {
b2977eec 164 videos: {
5d08a6a7
C
165 http: {
166 enabled: boolean
167 }
a84b8fa5
C
168 torrent: {
169 enabled: boolean
170 }
5d08a6a7
C
171 }
172 }
173
7ccddd7b
JM
174 autoBlacklist: {
175 videos: {
176 ofUsers: {
177 enabled: boolean
178 }
179 }
180 }
181
01de67b9
C
182 avatar: {
183 file: {
184 size: {
185 max: number
09209296 186 }
01de67b9
C
187 extensions: string[]
188 }
189 }
36f9424f 190
cdeddff1
C
191 banner: {
192 file: {
193 size: {
194 max: number
195 }
196 extensions: string[]
197 }
198 }
199
01de67b9 200 video: {
6de36768
C
201 image: {
202 size: {
203 max: number
204 }
205 extensions: string[]
a1587156 206 }
01de67b9
C
207 file: {
208 extensions: string[]
209 }
210 }
1869c875 211
40e87e9e
C
212 videoCaption: {
213 file: {
214 size: {
215 max: number
a1587156 216 }
40e87e9e
C
217 extensions: string[]
218 }
219 }
220
1869c875
RK
221 user: {
222 videoQuota: number
bee0abff 223 videoQuotaDaily: number
1869c875 224 }
9b4b15f9 225
754b6f5f
FC
226 videoChannels: {
227 maxPerUser: number
228 }
229
9b4b15f9
AB
230 trending: {
231 videos: {
232 intervalDays: number
ba5d4a84
RK
233 algorithms: {
234 enabled: string[]
235 default: string
236 }
9b4b15f9
AB
237 }
238 }
31b6ddf8
C
239
240 tracker: {
241 enabled: boolean
242 }
000eb0e4
RK
243
244 followings: {
245 instance: {
246 autoFollowIndex: {
247 indexUrl: string
248 }
249 }
250 }
72c33e71
C
251
252 broadcastMessage: {
253 enabled: boolean
254 message: string
255 level: BroadcastMessageLevel
256 dismissable: boolean
257 }
2539932e
C
258
259 homepage: {
260 enabled: boolean
261 }
154898b0 262}
aea0b0e7
C
263
264export type HTMLServerConfig = Omit<ServerConfig, 'signup'>