diff options
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' | |||
8 | import { | 8 | import { |
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 | ||
10 | export 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 | |||
10 | export const CACHE_PREVIEWS_SIZE = { | 17 | export 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 | ||
73 | instance: | 73 | instance: |
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 | ||
86 | instance: | 86 | instance: |
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 @@ | |||
1 | export interface About { | 1 | export 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 @@ | |||
1 | export interface CustomConfig { | 1 | export 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 @@ | |||
1 | export 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 | ||
155 | Now 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) |