aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html11
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.scss4
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts7
-rw-r--r--client/src/app/core/server/server.service.ts1
-rw-r--r--client/src/app/shared/forms/form-validators/custom-config.ts7
-rw-r--r--config/default.yaml1
-rw-r--r--config/production.yaml.example1
-rw-r--r--server/controllers/api/config.ts5
-rw-r--r--server/initializers/constants.ts1
-rw-r--r--server/lib/job-queue/handlers/activitypub-http-broadcast.ts2
-rw-r--r--server/lib/job-queue/handlers/activitypub-http-unicast.ts4
-rw-r--r--server/models/activitypub/actor-follow.ts2
-rw-r--r--server/tests/api/check-params/config.ts1
-rw-r--r--server/tests/api/server/config.ts12
-rw-r--r--shared/models/server/about.model.ts1
-rw-r--r--shared/models/server/custom-config.model.ts1
-rw-r--r--shared/models/server/customization.model.ts8
-rw-r--r--shared/models/server/server-config.model.ts1
-rw-r--r--support/doc/production.md2
19 files changed, 59 insertions, 13 deletions
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
index c7ddaaf01..6658a095d 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
@@ -16,6 +16,17 @@
16 </div> 16 </div>
17 17
18 <div class="form-group"> 18 <div class="form-group">
19 <label for="instanceShortDescription">Short description</label>
20 <textarea
21 id="instanceShortDescription" formControlName="instanceShortDescription"
22 [ngClass]="{ 'input-error': formErrors['instanceShortDescription'] }"
23 ></textarea>
24 <div *ngIf="formErrors.instanceShortDescription" class="form-error">
25 {{ formErrors.instanceShortDescription }}
26 </div>
27 </div>
28
29 <div class="form-group">
19 <label for="instanceDescription">Description</label><my-help helpType="markdownText"></my-help> 30 <label for="instanceDescription">Description</label><my-help helpType="markdownText"></my-help>
20 <my-markdown-textarea 31 <my-markdown-textarea
21 id="instanceDescription" formControlName="instanceDescription" textareaWidth="500px" [previewColumn]="true" 32 id="instanceDescription" formControlName="instanceDescription" textareaWidth="500px" [previewColumn]="true"
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.scss b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.scss
index e72f30c69..e81044554 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.scss
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.scss
@@ -34,4 +34,8 @@ textarea {
34 @include peertube-textarea(500px, 150px); 34 @include peertube-textarea(500px, 150px);
35 35
36 display: block; 36 display: block;
37
38 &#instanceShortDescription {
39 height: 100px;
40 }
37} 41}
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
index c38bc326a..9ab8b08d0 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
@@ -8,7 +8,7 @@ import { FormReactive, USER_VIDEO_QUOTA } from '@app/shared'
8import { 8import {
9 ADMIN_EMAIL, 9 ADMIN_EMAIL,
10 CACHE_PREVIEWS_SIZE, 10 CACHE_PREVIEWS_SIZE,
11 INSTANCE_NAME, 11 INSTANCE_NAME, INSTANCE_SHORT_DESCRIPTION,
12 SIGNUP_LIMIT, 12 SIGNUP_LIMIT,
13 TRANSCODING_THREADS 13 TRANSCODING_THREADS
14} from '@app/shared/forms/form-validators/custom-config' 14} from '@app/shared/forms/form-validators/custom-config'
@@ -44,6 +44,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
44 form: FormGroup 44 form: FormGroup
45 formErrors = { 45 formErrors = {
46 instanceName: '', 46 instanceName: '',
47 instanceShortDescription: '',
47 instanceDescription: '', 48 instanceDescription: '',
48 instanceTerms: '', 49 instanceTerms: '',
49 instanceDefaultClientRoute: '', 50 instanceDefaultClientRoute: '',
@@ -56,6 +57,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
56 customizationCSS: '' 57 customizationCSS: ''
57 } 58 }
58 validationMessages = { 59 validationMessages = {
60 instanceShortDescription: INSTANCE_SHORT_DESCRIPTION.MESSAGES,
59 instanceName: INSTANCE_NAME.MESSAGES, 61 instanceName: INSTANCE_NAME.MESSAGES,
60 cachePreviewsSize: CACHE_PREVIEWS_SIZE.MESSAGES, 62 cachePreviewsSize: CACHE_PREVIEWS_SIZE.MESSAGES,
61 signupLimit: SIGNUP_LIMIT.MESSAGES, 63 signupLimit: SIGNUP_LIMIT.MESSAGES,
@@ -84,6 +86,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
84 buildForm () { 86 buildForm () {
85 const formGroupData = { 87 const formGroupData = {
86 instanceName: [ '', INSTANCE_NAME.VALIDATORS ], 88 instanceName: [ '', INSTANCE_NAME.VALIDATORS ],
89 instanceShortDescription: [ '', INSTANCE_SHORT_DESCRIPTION.VALIDATORS ],
87 instanceDescription: [ '' ], 90 instanceDescription: [ '' ],
88 instanceTerms: [ '' ], 91 instanceTerms: [ '' ],
89 instanceDefaultClientRoute: [ '' ], 92 instanceDefaultClientRoute: [ '' ],
@@ -158,6 +161,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
158 const data: CustomConfig = { 161 const data: CustomConfig = {
159 instance: { 162 instance: {
160 name: this.form.value['instanceName'], 163 name: this.form.value['instanceName'],
164 shortDescription: this.form.value['instanceShortDescription'],
161 description: this.form.value['instanceDescription'], 165 description: this.form.value['instanceDescription'],
162 terms: this.form.value['instanceTerms'], 166 terms: this.form.value['instanceTerms'],
163 defaultClientRoute: this.form.value['instanceDefaultClientRoute'], 167 defaultClientRoute: this.form.value['instanceDefaultClientRoute'],
@@ -214,6 +218,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
214 private updateForm () { 218 private updateForm () {
215 const data = { 219 const data = {
216 instanceName: this.customConfig.instance.name, 220 instanceName: this.customConfig.instance.name,
221 instanceShortDescription: this.customConfig.instance.shortDescription,
217 instanceDescription: this.customConfig.instance.description, 222 instanceDescription: this.customConfig.instance.description,
218 instanceTerms: this.customConfig.instance.terms, 223 instanceTerms: this.customConfig.instance.terms,
219 instanceDefaultClientRoute: this.customConfig.instance.defaultClientRoute, 224 instanceDefaultClientRoute: this.customConfig.instance.defaultClientRoute,
diff --git a/client/src/app/core/server/server.service.ts b/client/src/app/core/server/server.service.ts
index 2135c3268..bd85d9f0f 100644
--- a/client/src/app/core/server/server.service.ts
+++ b/client/src/app/core/server/server.service.ts
@@ -21,6 +21,7 @@ export class ServerService {
21 private config: ServerConfig = { 21 private config: ServerConfig = {
22 instance: { 22 instance: {
23 name: 'PeerTube', 23 name: 'PeerTube',
24 shortDescription: '',
24 defaultClientRoute: '', 25 defaultClientRoute: '',
25 customizations: { 26 customizations: {
26 javascript: '', 27 javascript: '',
diff --git a/client/src/app/shared/forms/form-validators/custom-config.ts b/client/src/app/shared/forms/form-validators/custom-config.ts
index a0966a9a7..c9cef2e09 100644
--- a/client/src/app/shared/forms/form-validators/custom-config.ts
+++ b/client/src/app/shared/forms/form-validators/custom-config.ts
@@ -7,6 +7,13 @@ export const INSTANCE_NAME = {
7 } 7 }
8} 8}
9 9
10export const INSTANCE_SHORT_DESCRIPTION = {
11 VALIDATORS: [ Validators.max(250) ],
12 MESSAGES: {
13 'max': 'Short description should not be longer than 250 characters.'
14 }
15}
16
10export const CACHE_PREVIEWS_SIZE = { 17export const CACHE_PREVIEWS_SIZE = {
11 VALIDATORS: [ Validators.required, Validators.min(1), Validators.pattern('[0-9]+') ], 18 VALIDATORS: [ Validators.required, Validators.min(1), Validators.pattern('[0-9]+') ],
12 MESSAGES: { 19 MESSAGES: {
diff --git a/config/default.yaml b/config/default.yaml
index 5389f1164..48e5bd067 100644
--- a/config/default.yaml
+++ b/config/default.yaml
@@ -72,6 +72,7 @@ transcoding:
72 72
73instance: 73instance:
74 name: 'PeerTube' 74 name: 'PeerTube'
75 short_description: 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.'
75 description: 'Welcome to this PeerTube instance!' # Support markdown 76 description: 'Welcome to this PeerTube instance!' # Support markdown
76 terms: 'No terms for now.' # Support markdown 77 terms: 'No terms for now.' # Support markdown
77 default_client_route: '/videos/trending' 78 default_client_route: '/videos/trending'
diff --git a/config/production.yaml.example b/config/production.yaml.example
index 2f28501b3..45eeffec7 100644
--- a/config/production.yaml.example
+++ b/config/production.yaml.example
@@ -85,6 +85,7 @@ transcoding:
85 85
86instance: 86instance:
87 name: 'PeerTube' 87 name: 'PeerTube'
88 short_description: 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.'
88 description: '' # Support markdown 89 description: '' # Support markdown
89 terms: '' # Support markdown 90 terms: '' # Support markdown
90 default_client_route: '/videos/trending' 91 default_client_route: '/videos/trending'
diff --git a/server/controllers/api/config.ts b/server/controllers/api/config.ts
index a25d7a157..62a783982 100644
--- a/server/controllers/api/config.ts
+++ b/server/controllers/api/config.ts
@@ -44,6 +44,7 @@ async function getConfig (req: express.Request, res: express.Response, next: exp
44 const json: ServerConfig = { 44 const json: ServerConfig = {
45 instance: { 45 instance: {
46 name: CONFIG.INSTANCE.NAME, 46 name: CONFIG.INSTANCE.NAME,
47 shortDescription: CONFIG.INSTANCE.SHORT_DESCRIPTION,
47 defaultClientRoute: CONFIG.INSTANCE.DEFAULT_CLIENT_ROUTE, 48 defaultClientRoute: CONFIG.INSTANCE.DEFAULT_CLIENT_ROUTE,
48 customizations: { 49 customizations: {
49 javascript: CONFIG.INSTANCE.CUSTOMIZATIONS.JAVASCRIPT, 50 javascript: CONFIG.INSTANCE.CUSTOMIZATIONS.JAVASCRIPT,
@@ -85,6 +86,7 @@ function getAbout (req: express.Request, res: express.Response, next: express.Ne
85 const about: About = { 86 const about: About = {
86 instance: { 87 instance: {
87 name: CONFIG.INSTANCE.NAME, 88 name: CONFIG.INSTANCE.NAME,
89 shortDescription: CONFIG.INSTANCE.SHORT_DESCRIPTION,
88 description: CONFIG.INSTANCE.DESCRIPTION, 90 description: CONFIG.INSTANCE.DESCRIPTION,
89 terms: CONFIG.INSTANCE.TERMS 91 terms: CONFIG.INSTANCE.TERMS
90 } 92 }
@@ -116,8 +118,10 @@ async function updateCustomConfig (req: express.Request, res: express.Response,
116 const toUpdateJSON = omit(toUpdate, 'videoQuota') 118 const toUpdateJSON = omit(toUpdate, 'videoQuota')
117 toUpdateJSON.user['video_quota'] = toUpdate.user.videoQuota 119 toUpdateJSON.user['video_quota'] = toUpdate.user.videoQuota
118 toUpdateJSON.instance['default_client_route'] = toUpdate.instance.defaultClientRoute 120 toUpdateJSON.instance['default_client_route'] = toUpdate.instance.defaultClientRoute
121 toUpdateJSON.instance['short_description'] = toUpdate.instance.shortDescription
119 delete toUpdate.user.videoQuota 122 delete toUpdate.user.videoQuota
120 delete toUpdate.instance.defaultClientRoute 123 delete toUpdate.instance.defaultClientRoute
124 delete toUpdate.instance.shortDescription
121 125
122 await writeFilePromise(CONFIG.CUSTOM_FILE, JSON.stringify(toUpdateJSON, undefined, 2)) 126 await writeFilePromise(CONFIG.CUSTOM_FILE, JSON.stringify(toUpdateJSON, undefined, 2))
123 127
@@ -139,6 +143,7 @@ function customConfig (): CustomConfig {
139 return { 143 return {
140 instance: { 144 instance: {
141 name: CONFIG.INSTANCE.NAME, 145 name: CONFIG.INSTANCE.NAME,
146 shortDescription: CONFIG.INSTANCE.SHORT_DESCRIPTION,
142 description: CONFIG.INSTANCE.DESCRIPTION, 147 description: CONFIG.INSTANCE.DESCRIPTION,
143 terms: CONFIG.INSTANCE.TERMS, 148 terms: CONFIG.INSTANCE.TERMS,
144 defaultClientRoute: CONFIG.INSTANCE.DEFAULT_CLIENT_ROUTE, 149 defaultClientRoute: CONFIG.INSTANCE.DEFAULT_CLIENT_ROUTE,
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
index 5946bcd11..d12d96803 100644
--- a/server/initializers/constants.ts
+++ b/server/initializers/constants.ts
@@ -157,6 +157,7 @@ const CONFIG = {
157 }, 157 },
158 INSTANCE: { 158 INSTANCE: {
159 get NAME () { return config.get<string>('instance.name') }, 159 get NAME () { return config.get<string>('instance.name') },
160 get SHORT_DESCRIPTION () { return config.get<string>('instance.short_description') },
160 get DESCRIPTION () { return config.get<string>('instance.description') }, 161 get DESCRIPTION () { return config.get<string>('instance.description') },
161 get TERMS () { return config.get<string>('instance.terms') }, 162 get TERMS () { return config.get<string>('instance.terms') },
162 get DEFAULT_CLIENT_ROUTE () { return config.get<string>('instance.default_client_route') }, 163 get DEFAULT_CLIENT_ROUTE () { return config.get<string>('instance.default_client_route') },
diff --git a/server/lib/job-queue/handlers/activitypub-http-broadcast.ts b/server/lib/job-queue/handlers/activitypub-http-broadcast.ts
index 159856cda..78878fc01 100644
--- a/server/lib/job-queue/handlers/activitypub-http-broadcast.ts
+++ b/server/lib/job-queue/handlers/activitypub-http-broadcast.ts
@@ -39,7 +39,7 @@ async function processActivityPubHttpBroadcast (job: kue.Job) {
39 } 39 }
40 } 40 }
41 41
42 return ActorFollowModel.updateActorFollowsScoreAndRemoveBadOnes(goodUrls, badUrls, undefined) 42 return ActorFollowModel.updateActorFollowsScore(goodUrls, badUrls, undefined)
43} 43}
44 44
45// --------------------------------------------------------------------------- 45// ---------------------------------------------------------------------------
diff --git a/server/lib/job-queue/handlers/activitypub-http-unicast.ts b/server/lib/job-queue/handlers/activitypub-http-unicast.ts
index 9b4188c50..e1e1824e5 100644
--- a/server/lib/job-queue/handlers/activitypub-http-unicast.ts
+++ b/server/lib/job-queue/handlers/activitypub-http-unicast.ts
@@ -28,9 +28,9 @@ async function processActivityPubHttpUnicast (job: kue.Job) {
28 28
29 try { 29 try {
30 await doRequest(options) 30 await doRequest(options)
31 ActorFollowModel.updateActorFollowsScoreAndRemoveBadOnes([ uri ], [], undefined) 31 ActorFollowModel.updateActorFollowsScore([ uri ], [], undefined)
32 } catch (err) { 32 } catch (err) {
33 ActorFollowModel.updateActorFollowsScoreAndRemoveBadOnes([], [ uri ], undefined) 33 ActorFollowModel.updateActorFollowsScore([], [ uri ], undefined)
34 34
35 throw err 35 throw err
36 } 36 }
diff --git a/server/models/activitypub/actor-follow.ts b/server/models/activitypub/actor-follow.ts
index 3c11d1b67..d3c438626 100644
--- a/server/models/activitypub/actor-follow.ts
+++ b/server/models/activitypub/actor-follow.ts
@@ -111,7 +111,7 @@ export class ActorFollowModel extends Model<ActorFollowModel> {
111 if (numberOfActorFollowsRemoved) logger.info('Removed bad %d actor follows.', numberOfActorFollowsRemoved) 111 if (numberOfActorFollowsRemoved) logger.info('Removed bad %d actor follows.', numberOfActorFollowsRemoved)
112 } 112 }
113 113
114 static updateActorFollowsScoreAndRemoveBadOnes (goodInboxes: string[], badInboxes: string[], t: Sequelize.Transaction) { 114 static updateActorFollowsScore (goodInboxes: string[], badInboxes: string[], t: Sequelize.Transaction) {
115 if (goodInboxes.length === 0 && badInboxes.length === 0) return 115 if (goodInboxes.length === 0 && badInboxes.length === 0) return
116 116
117 logger.info('Updating %d good actor follows and %d bad actor follows scores.', goodInboxes.length, badInboxes.length) 117 logger.info('Updating %d good actor follows and %d bad actor follows scores.', goodInboxes.length, badInboxes.length)
diff --git a/server/tests/api/check-params/config.ts b/server/tests/api/check-params/config.ts
index ca8239270..3fe517fad 100644
--- a/server/tests/api/check-params/config.ts
+++ b/server/tests/api/check-params/config.ts
@@ -16,6 +16,7 @@ describe('Test config API validators', function () {
16 const updateParams: CustomConfig = { 16 const updateParams: CustomConfig = {
17 instance: { 17 instance: {
18 name: 'PeerTube updated', 18 name: 'PeerTube updated',
19 shortDescription: 'my short description',
19 description: 'my super description', 20 description: 'my super description',
20 terms: 'my super terms', 21 terms: 'my super terms',
21 defaultClientRoute: '/videos/recently-added', 22 defaultClientRoute: '/videos/recently-added',
diff --git a/server/tests/api/server/config.ts b/server/tests/api/server/config.ts
index 271a57275..e17588142 100644
--- a/server/tests/api/server/config.ts
+++ b/server/tests/api/server/config.ts
@@ -52,6 +52,10 @@ describe('Test config', function () {
52 const data = res.body as CustomConfig 52 const data = res.body as CustomConfig
53 53
54 expect(data.instance.name).to.equal('PeerTube') 54 expect(data.instance.name).to.equal('PeerTube')
55 expect(data.instance.shortDescription).to.equal(
56 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser ' +
57 'with WebTorrent and Angular.'
58 )
55 expect(data.instance.description).to.equal('Welcome to this PeerTube instance!') 59 expect(data.instance.description).to.equal('Welcome to this PeerTube instance!')
56 expect(data.instance.terms).to.equal('No terms for now.') 60 expect(data.instance.terms).to.equal('No terms for now.')
57 expect(data.instance.defaultClientRoute).to.equal('/videos/trending') 61 expect(data.instance.defaultClientRoute).to.equal('/videos/trending')
@@ -75,6 +79,7 @@ describe('Test config', function () {
75 const newCustomConfig = { 79 const newCustomConfig = {
76 instance: { 80 instance: {
77 name: 'PeerTube updated', 81 name: 'PeerTube updated',
82 shortDescription: 'my short description',
78 description: 'my super description', 83 description: 'my super description',
79 terms: 'my super terms', 84 terms: 'my super terms',
80 defaultClientRoute: '/videos/recently-added', 85 defaultClientRoute: '/videos/recently-added',
@@ -116,6 +121,7 @@ describe('Test config', function () {
116 const data = res.body 121 const data = res.body
117 122
118 expect(data.instance.name).to.equal('PeerTube updated') 123 expect(data.instance.name).to.equal('PeerTube updated')
124 expect(data.instance.shortDescription).to.equal('my short description')
119 expect(data.instance.description).to.equal('my super description') 125 expect(data.instance.description).to.equal('my super description')
120 expect(data.instance.terms).to.equal('my super terms') 126 expect(data.instance.terms).to.equal('my super terms')
121 expect(data.instance.defaultClientRoute).to.equal('/videos/recently-added') 127 expect(data.instance.defaultClientRoute).to.equal('/videos/recently-added')
@@ -146,6 +152,7 @@ describe('Test config', function () {
146 const data = res.body 152 const data = res.body
147 153
148 expect(data.instance.name).to.equal('PeerTube updated') 154 expect(data.instance.name).to.equal('PeerTube updated')
155 expect(data.instance.shortDescription).to.equal('my short description')
149 expect(data.instance.description).to.equal('my super description') 156 expect(data.instance.description).to.equal('my super description')
150 expect(data.instance.terms).to.equal('my super terms') 157 expect(data.instance.terms).to.equal('my super terms')
151 expect(data.instance.defaultClientRoute).to.equal('/videos/recently-added') 158 expect(data.instance.defaultClientRoute).to.equal('/videos/recently-added')
@@ -170,6 +177,7 @@ describe('Test config', function () {
170 const data: About = res.body 177 const data: About = res.body
171 178
172 expect(data.instance.name).to.equal('PeerTube updated') 179 expect(data.instance.name).to.equal('PeerTube updated')
180 expect(data.instance.shortDescription).to.equal('my short description')
173 expect(data.instance.description).to.equal('my super description') 181 expect(data.instance.description).to.equal('my super description')
174 expect(data.instance.terms).to.equal('my super terms') 182 expect(data.instance.terms).to.equal('my super terms')
175 }) 183 })
@@ -183,6 +191,10 @@ describe('Test config', function () {
183 const data = res.body 191 const data = res.body
184 192
185 expect(data.instance.name).to.equal('PeerTube') 193 expect(data.instance.name).to.equal('PeerTube')
194 expect(data.instance.shortDescription).to.equal(
195 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser ' +
196 'with WebTorrent and Angular.'
197 )
186 expect(data.instance.description).to.equal('Welcome to this PeerTube instance!') 198 expect(data.instance.description).to.equal('Welcome to this PeerTube instance!')
187 expect(data.instance.terms).to.equal('No terms for now.') 199 expect(data.instance.terms).to.equal('No terms for now.')
188 expect(data.instance.defaultClientRoute).to.equal('/videos/trending') 200 expect(data.instance.defaultClientRoute).to.equal('/videos/trending')
diff --git a/shared/models/server/about.model.ts b/shared/models/server/about.model.ts
index 7d11da850..10dff8b8f 100644
--- a/shared/models/server/about.model.ts
+++ b/shared/models/server/about.model.ts
@@ -1,6 +1,7 @@
1export interface About { 1export interface About {
2 instance: { 2 instance: {
3 name: string 3 name: string
4 shortDescription: string
4 description: string 5 description: string
5 terms: string 6 terms: string
6 } 7 }
diff --git a/shared/models/server/custom-config.model.ts b/shared/models/server/custom-config.model.ts
index 7f3e2df02..b4d24cfbe 100644
--- a/shared/models/server/custom-config.model.ts
+++ b/shared/models/server/custom-config.model.ts
@@ -1,6 +1,7 @@
1export interface CustomConfig { 1export interface CustomConfig {
2 instance: { 2 instance: {
3 name: string 3 name: string
4 shortDescription: string
4 description: string 5 description: string
5 terms: string 6 terms: string
6 defaultClientRoute: string 7 defaultClientRoute: string
diff --git a/shared/models/server/customization.model.ts b/shared/models/server/customization.model.ts
deleted file mode 100644
index 4e4d0d193..000000000
--- a/shared/models/server/customization.model.ts
+++ /dev/null
@@ -1,8 +0,0 @@
1export interface Customization {
2 instance: {
3 customization: {
4 javascript: string
5 css: string
6 }
7 }
8}
diff --git a/shared/models/server/server-config.model.ts b/shared/models/server/server-config.model.ts
index a30c24eb9..c6fa651a8 100644
--- a/shared/models/server/server-config.model.ts
+++ b/shared/models/server/server-config.model.ts
@@ -3,6 +3,7 @@ export interface ServerConfig {
3 3
4 instance: { 4 instance: {
5 name: string 5 name: string
6 shortDescription: string
6 defaultClientRoute: string 7 defaultClientRoute: string
7 customizations: { 8 customizations: {
8 javascript: string 9 javascript: string
diff --git a/support/doc/production.md b/support/doc/production.md
index 14042cddf..db0c8d99f 100644
--- a/support/doc/production.md
+++ b/support/doc/production.md
@@ -152,6 +152,8 @@ logs. You can set another password with:
152$ cd /var/www/peertube/peertube-latest && NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run reset-password -- -u root 152$ cd /var/www/peertube/peertube-latest && NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run reset-password -- -u root
153``` 153```
154 154
155Now you can subscribe to the mailing list for PeerTube administrators: https://framalistes.org/sympa/subscribe/peertube-admin
156
155## Upgrade 157## Upgrade
156 158
157#### Auto (minor versions only) 159#### Auto (minor versions only)