A flexible and generic plugin for triggering publications on multiple instances and hosting
A quick description of nova-publisher
made by NovaGaïa.
View on Strapi Marketplace
This plugin does several things:
Copy the following code and run from your terminal
1
npm i nova-publisher
or
1
yarn add nova-publisher
The configuration is done in the environment variables and in the plugin configuration.
Here there are two instances configured, but you can add more or put only one.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// ./config/plugins.js
// if change, run `npm run build --clean`
module.exports = ({ env }) => ({
// ...
'nova-publisher': {
enabled: true,
config: {
dateConfiguration: {
dateLocaleString: 'fr-FR', // sample
options: {
// sample
timeZone: 'Europe/Paris',
timeZoneName: 'short',
hour12: false,
},
},
addPublishComponent: false,
instances: [
{
name: env('INSTANCE_0_NAME'),
icon: '🚀', // sample
enabled: env('INSTANCE_0_ENABLED'),
cron: env('INSTANCE_0_USE_CRON'),
url: env('INSTANCE_0_URL'),
method: 'post',
headers: {
// sample
Authorization: `Beaver ${env('INSTANCE_0_BEAVER')}`,
},
},
{
name: env('INSTANCE_1_NAME'),
icon: '👁️', // sample
enabled: env('INSTANCE_1_ENABLED'),
cron: env('INSTANCE_1_USE_CRON'),
url: env('INSTANCE_1_URL'),
method: 'post',
headers: {
// sample
Authorization: `Beaver ${env('INSTANCE_1_BEAVER')}`,
},
},
],
},
},
// ...
});
Variable | Description | Type | Default value |
---|---|---|---|
dateConfiguration | Configuration of the date format in the messages, see (1). | Object | (See below) |
dateConfiguration.dateLocaleString | Date local to use, see (1) | String | en-EN |
dateConfiguration.options | Date formatting options, see (1) | Object | { timeZone: 'Europe/London', timeZoneName: 'short', hour12: false } |
addPublishComponent | Adds the helper component to manage more finely the publications. | Boolean | false |
instances | Configuration of the instances where to launch the publication. | Object | (See below) |
instances.name * | Name of the intance. | String | Mandatory |
instances.icon * | Emoji. | String | Mandatory |
instances.enabled * | Enables or disables the display of the instance. | Boolean | Mandatory |
instances.url * | Target url. | String | Mandatory |
instances.method | POST ou GET . | String | POST |
instances.headers | Headers to send, see (2). | Object | - |
* Mandatory field
(1) Pour
dateConfiguration
, see Date.prototype.toLocaleString()(2) pour
instances.headers
, see HTTP headers
Enabled internal Strapi CRON
1
2
3
4
5
6
7
8
// ./config/server.js
module.exports = ({ env }) => ({
// ...
cron: {
enabled: true,
},
// ...
});
Warning Before any use, the `Publication Status' displays a generic message.
Note The
Publication Status' message is not stored in the database (in case it is copied to other instances), but in a file under
./public/status-${instancesid.name}.txt`.
If several instances are configured, the block is repeated.
Auto-publish enabledindicates whether CRON is enabled for this instance, see
instances.enabled`.
Click on Publish
to initiate the action.
Publish Status
displays Build started at <date>
.When the action returns, the Publish Status
will be updated with a success or error message and the time.
<date>
.<date>
.<date>
.In case of an error, a Toast
is displayed with the error message returned by the remote server, which you can find in the Strapi server logs.
npm install nova-publisher
Check out the available plugin resources that will help you to develop your plugin or provider and get it listed on the marketplace.