]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - shared/models/server/server-config.model.ts
Translated using Weblate (Kabyle)
[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 instance: {
37 name: string
38 shortDescription: string
39 defaultClientRoute: string
40 isNSFW: boolean
41 defaultNSFWPolicy: NSFWPolicyType
42 customizations: {
43 javascript: string
44 css: string
45 }
46 }
47
48 search: {
49 remoteUri: {
50 users: boolean
51 anonymous: boolean
52 }
53 }
54
55 plugin: {
56 registered: ServerConfigPlugin[]
57
58 registeredExternalAuths: RegisteredExternalAuthConfig[]
59
60 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
61 }
62
63 theme: {
64 registered: ServerConfigTheme[]
65 default: string
66 }
67
68 email: {
69 enabled: boolean
70 }
71
72 contactForm: {
73 enabled: boolean
74 }
75
76 signup: {
77 allowed: boolean
78 allowedForCurrentIP: boolean
79 requiresEmailVerification: boolean
80 }
81
82 transcoding: {
83 hls: {
84 enabled: boolean
85 }
86
87 webtorrent: {
88 enabled: boolean
89 }
90
91 enabledResolutions: number[]
92 }
93
94 import: {
95 videos: {
96 http: {
97 enabled: boolean
98 }
99 torrent: {
100 enabled: boolean
101 }
102 }
103 }
104
105 autoBlacklist: {
106 videos: {
107 ofUsers: {
108 enabled: boolean
109 }
110 }
111 }
112
113 avatar: {
114 file: {
115 size: {
116 max: number
117 }
118 extensions: string[]
119 }
120 }
121
122 video: {
123 image: {
124 size: {
125 max: number
126 }
127 extensions: string[]
128 }
129 file: {
130 extensions: string[]
131 }
132 }
133
134 videoCaption: {
135 file: {
136 size: {
137 max: number
138 }
139 extensions: string[]
140 }
141 }
142
143 user: {
144 videoQuota: number
145 videoQuotaDaily: number
146 }
147
148 trending: {
149 videos: {
150 intervalDays: number
151 }
152 }
153
154 tracker: {
155 enabled: boolean
156 }
157
158 followings: {
159 instance: {
160 autoFollowIndex: {
161 indexUrl: string
162 }
163 }
164 }
165
166 broadcastMessage: {
167 enabled: boolean
168 message: string
169 level: BroadcastMessageLevel
170 dismissable: boolean
171 }
172 }