67 lines
3.1 KiB
Markdown
67 lines
3.1 KiB
Markdown
|
# Mattermost Boards Developer's Guide
|
||
|
|
||
|
[Mattermost Boards](https://mattermost.com/boards/) is the Focalboard (aka Boards) plugin running in Mattermost. It is pre-packaed, and runs out of the box with Mattermost 6.0 and later.
|
||
|
|
||
|
To build your own version of it:
|
||
|
1. Build [mattermost-plugin](https://github.com/mattermost/focalboard/tree/main/mattermost-plugin) in the [Focalboard repo](https://github.com/mattermost/focalboard)
|
||
|
2. Upload it as a [custom plugin to your Mattermost server](https://developers.mattermost.com/integrate/admin-guide/admin-plugins-beta/#custom-plugins)
|
||
|
|
||
|
Here are the steps in more detail:
|
||
|
|
||
|
### Building the Boards plugin
|
||
|
|
||
|
Fork the [Focalboard repo](https://github.com/mattermost/focalboard), clone it locally, and follow the steps in the readme to set up your dev environment.
|
||
|
|
||
|
Install dependencies:
|
||
|
```
|
||
|
# First-time setup dependencies
|
||
|
cd mattermost-plugin/webapp
|
||
|
npm install --no-optional
|
||
|
cd ../..
|
||
|
make prebuild
|
||
|
```
|
||
|
|
||
|
Build the plugin:
|
||
|
```
|
||
|
# Build webapp
|
||
|
make webapp
|
||
|
|
||
|
# Build plugin
|
||
|
cd mattermost-plugin
|
||
|
make dist
|
||
|
```
|
||
|
|
||
|
Refer to the [dev-release.yml](https://github.com/mattermost/focalboard/blob/main/.github/workflows/dev-release.yml#L168) workflow for the up-to-date commands that are run as part of CI.
|
||
|
|
||
|
### Uploading the plugin to your server
|
||
|
|
||
|
You can manually upload the plugin to your Mattermost Server:
|
||
|
1. Enable [custom plugins](https://developers.mattermost.com/integrate/admin-guide/admin-plugins-beta/#custom-plugins) by setting `PluginSettings > EnableUploads` to `true` in the Mattermost `config.json` file
|
||
|
2. Navigate to **System Console > Plugins > Management** and upload the generated `.tar.gz` package in your `mattermost-plugin/dist` directory
|
||
|
3. Enable it (if needed)
|
||
|
|
||
|
Alternatively, you can install Mattermost locally and use `make deploy` to auto-deploy it for you:
|
||
|
|
||
|
First, build and run Mattermost locally:
|
||
|
1. Follow the [Mattermost Developers Guide](https://developers.mattermost.com/contribute/server/developer-setup/) to set up your environment
|
||
|
* In particuler, make sure Docker is set up and running
|
||
|
2. Fork [mattermost-webapp](https://github.com/mattermost/mattermost-webapp), clone it locally, and `make build`
|
||
|
3. Fork [mattermost-server](https://github.com/mattermost/mattermost-server) and clone it locally
|
||
|
3. Run `make config-reset` to generate the `config/config.json` file
|
||
|
4. Edit `config/config.json`:
|
||
|
* Set `ServiceSettings > SiteURL` to `http://localhost:8065` ([docs](https://docs.mattermost.com/configure/configuration-settings.html#site-url))
|
||
|
* Set `ServiceSettings > EnableLocalMode` to `true` ([docs](https://docs.mattermost.com/configure/configuration-settings.html#enable-local-mode))
|
||
|
* Set `PluginSettings > EnableUploads` to `true` ([docs](https://developers.mattermost.com/integrate/admin-guide/admin-plugins-beta/#custom-plugins))
|
||
|
5. Add an ENV var `MM_SERVICESETTINGS_SITEURL` with the same site URL used in the config
|
||
|
6. Run `make run-server` in Mattermost
|
||
|
|
||
|
Now, to build and deploy the Boards plugin:
|
||
|
1. Clone / fork [mattermost/focalboard](https://github.com/mattermost/focalboard)
|
||
|
2. Install the dependencies (see above)
|
||
|
3. Run:
|
||
|
```
|
||
|
make webapp
|
||
|
cd mattermost-plugin
|
||
|
make deploy
|
||
|
```
|