]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - shared/models/server/server-config.model.ts
Add ability to redirect users on external auth
[github/Chocobozzz/PeerTube.git] / shared / models / server / server-config.model.ts
1 import { ClientScript } from '../plugins/plugin-package-json.model'
2 import { NSFWPolicyType } from '../videos/nsfw-policy.type'
3 import { BroadcastMessageLevel } from './broadcast-message-level.type'
4
5 export interface ServerConfigPlugin {
6 name: string
7 version: string
8 description: string
9 clientScripts: { [name: string]: ClientScript }
10 }
11
12 export interface ServerConfigTheme extends ServerConfigPlugin {
13 css: string[]
14 }
15
16 export interface RegisteredExternalAuthConfig {
17 npmName: string
18 name: string
19 version: string
20 authName: string
21 authDisplayName: string
22 }
23
24 export interface RegisteredIdAndPassAuthConfig {
25 npmName: string
26 name: string
27 version: string
28 authName: string
29 weight: number
30 }
31
32 export interface ServerConfig {
33 serverVersion: string
34 serverCommit?: string
35
36 client: {
37 videos: {
38 miniature: {
39 preferAuthorDisplayName: boolean
40 }
41 }
42
43 menu: {
44 login: {
45 redirectOnSingleExternalAuth: boolean
46 }
47 }
48 }
49
50 webadmin: {
51 configuration: {
52 edition: {
53 allowed: boolean
54 }
55 }
56 }
57
58 instance: {
59 name: string
60 shortDescription: string
61 isNSFW: boolean
62 defaultNSFWPolicy: NSFWPolicyType
63 defaultClientRoute: string
64 customizations: {
65 javascript: string
66 css: string
67 }
68 }
69
70 search: {
71 remoteUri: {
72 users: boolean
73 anonymous: boolean
74 }
75
76 searchIndex: {
77 enabled: boolean
78 url: string
79 disableLocalSearch: boolean
80 isDefaultSearch: boolean
81 }
82 }
83
84 plugin: {
85 registered: ServerConfigPlugin[]
86
87 registeredExternalAuths: RegisteredExternalAuthConfig[]
88
89 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
90 }
91
92 theme: {
93 registered: ServerConfigTheme[]
94 default: string
95 }
96
97 email: {
98 enabled: boolean
99 }
100
101 contactForm: {
102 enabled: boolean
103 }
104
105 signup: {
106 allowed: boolean
107 allowedForCurrentIP: boolean
108 requiresEmailVerification: boolean
109 minimumAge: number
110 }
111
112 transcoding: {
113 hls: {
114 enabled: boolean
115 }
116
117 webtorrent: {
118 enabled: boolean
119 }
120
121 enabledResolutions: number[]
122
123 profile: string
124 availableProfiles: string[]
125 }
126
127 live: {
128 enabled: boolean
129
130 maxDuration: number
131 maxInstanceLives: number
132 maxUserLives: number
133 allowReplay: boolean
134
135 transcoding: {
136 enabled: boolean
137
138 enabledResolutions: number[]
139
140 profile: string
141 availableProfiles: string[]
142 }
143
144 rtmp: {
145 port: number
146 }
147 }
148
149 import: {
150 videos: {
151 http: {
152 enabled: boolean
153 }
154 torrent: {
155 enabled: boolean
156 }
157 }
158 }
159
160 autoBlacklist: {
161 videos: {
162 ofUsers: {
163 enabled: boolean
164 }
165 }
166 }
167
168 avatar: {
169 file: {
170 size: {
171 max: number
172 }
173 extensions: string[]
174 }
175 }
176
177 banner: {
178 file: {
179 size: {
180 max: number
181 }
182 extensions: string[]
183 }
184 }
185
186 video: {
187 image: {
188 size: {
189 max: number
190 }
191 extensions: string[]
192 }
193 file: {
194 extensions: string[]
195 }
196 }
197
198 videoCaption: {
199 file: {
200 size: {
201 max: number
202 }
203 extensions: string[]
204 }
205 }
206
207 user: {
208 videoQuota: number
209 videoQuotaDaily: number
210 }
211
212 videoChannels: {
213 maxPerUser: number
214 }
215
216 trending: {
217 videos: {
218 intervalDays: number
219 algorithms: {
220 enabled: string[]
221 default: string
222 }
223 }
224 }
225
226 tracker: {
227 enabled: boolean
228 }
229
230 followings: {
231 instance: {
232 autoFollowIndex: {
233 indexUrl: string
234 }
235 }
236 }
237
238 broadcastMessage: {
239 enabled: boolean
240 message: string
241 level: BroadcastMessageLevel
242 dismissable: boolean
243 }
244
245 homepage: {
246 enabled: boolean
247 }
248 }
249
250 export type HTMLServerConfig = Omit<ServerConfig, 'signup'>