全能知识管理软件。它整合了笔记/日记、知识库、Markdown 编辑器、任务待办、日历、看板/项目管理等功能于一身,可以完美替代多款工具。

Tomer Ben-Rachel 28ec2b361a Enhance Readme To Explain How To Contribute Translations (#4918) 1 month ago
.github c4454cac52 Update ubuntu version to use latest LTS (#4771) 5 months ago
.vscode 2b3ed75b3b Add readme for Mac and Win apps (#2757) 1 year ago
docker a8bafb35c9 [GH-124] Added Docker Arm64 Capability (#1700) 1 year ago
docker-testing 2a5c033fa5 Idempotent schema and data migrations (#4253) 11 months ago
docs 277ea9facc Transitioning Mattermost Boards > Focalboards plugin docs (#4862) 2 months ago
experiments de576ec5ff update webapp dependencies (#3317) 1 year ago
import 42ddbbdd69 Update URL to docs page for migrating and reference `.boardarchive` (#4043) 1 year ago
linux 9901557d99 update minimum dependencies (#4811) 4 months ago
mac e1c747d08b Update Boards version to 7.3 (#3382) 1 year ago
mattermost-plugin dd3be3e3ed MM-41813 Fix path to fonts loaded by plugin 3 months ago
noticegen 111d741ad7 [feat] Notice.txt generation configuration 1 year ago
server 134422df4d MM-54366 Check guest access to other members (#4871) 2 months ago
webapp e6b67af8b1 update version v7.12.0 (#4814) 4 months ago
website 7226ed2cbb MM-54013- Removing some mattermost references (#4865) 2 months ago
win-wpf 073ef8af75 update to version 7.2.0 1 year ago
.dockerignore a8bafb35c9 [GH-124] Added Docker Arm64 Capability (#1700) 1 year ago
.editorconfig cb306f27db Adding initial coding style checking 3 years ago
.gitattributes 04223a3f76 Git attributes for ignoring website and swagger docs in linguist added. (#3172) 1 year ago
.gitignore e4630d1a84 Remove product references (#4744) 6 months ago
.gitlab-ci.yml d6207dde6c MM-49703: Bump to Go 1.19 (#4489) (#4502) 10 months ago
.gitpod.yml f2a0cffce1 Create .gitpod.yml (#3010) 1 year ago
CHANGELOG.md 07aed80867 Update CHANGELOG.md for v0.15 1 year ago
CONTRIBUTING.md 5baa0e63ec Minor fixes to Focalboard docs (#2665) 1 year ago
Dockerfile.build 41fbd5fecc Enable cross-compilation of Linux webapp via Docker (#4528) 8 months ago
LICENSE.txt 3c58869de3 License product name 2 years ago
Makefile e4630d1a84 Remove product references (#4744) 6 months ago
NOTICE.txt 8425f53b2a @mention support (#1147) 2 years ago
README.md 28ec2b361a Enhance Readme To Explain How To Contribute Translations (#4918) 1 month ago
SECURITY.md b17e555a54 Add SECURITY.md (#2349) 1 year ago
app-config.json a10beb52a2 Fix indentation 2 years ago
config.json 539aee6a46 Fix configuration for prometheus address (#2763) 1 year ago
modd-servertest.conf b582e5920c Add sqlite3 tag to modd files and linux app build (#4218) 1 year ago
modd-watchplugin.conf 81284ed057 Remove indir directive as it's causing problems in OSX systems (#1328) 2 years ago
modd.conf b582e5920c Add sqlite3 tag to modd files and linux app build (#4218) 1 year ago
pull_request_template.md d8ffd30fff Update pull_request_template.md (#3487) 1 year ago
responsible_disclosure_policy.md 9cb200a831 Update responsibile_disclosure_policy.md (#1383) 2 years ago
server-config.json 539aee6a46 Fix configuration for prometheus address (#2763) 1 year ago

README.md

:warning: Announcements

Effective September 15th, 2023, the Focalboard plugin will no longer be bundled with Mattermost and will transition to being fully community supported.

Self-hosted Mattermost instances may continue to use the Focalboard plugin without interruption; however, Mattermost developers will not be adding any new enhancements or bug fixes beyond September 15th, 2023. This Focalboard repository will remain open indefinitely for contributions from the open source community.

The reason behind these changes is to focus Mattermost developer resources on improving the platform’s performance and core features to ensure Mattermost continues being resilient, stable, and best-in-breed for critical operations.

You can learn more about these changes in our forum.

Focalboard

CI Status CodeQL Dev Release Prod Release Translation status

Like what you see? :eyes: Give us a GitHub Star! :star:

Focalboard

Focalboard is an open source, multilingual, self-hosted project management tool that's an alternative to Trello, Notion, and Asana.

It helps define, organize, track and manage work across individuals and teams. Focalboard comes in three editions:

  • Focalboard plugin: The Focalboard plugin integrates into an exsting Mattermost instance to combine project management tools with messaging and collaboration for teams of all sizes.

  • Personal Desktop: A standalone, single-user macOS, Windows, or Linux desktop app for your own todos and personal projects.

  • Personal Server: A standalone, multi-user server for development and personal use.

Try Focalboard

Mattermost Plugin

After downloading and installing the plugin in the System Console, select the menu in the top left corner and select Boards. Access the latest releases of the focalboard plugin by downloading the mattermost-plugin-focalboard.tar.gz file from the releases in this repository: https://github.com/mattermost/focalboard/releases

Personal Desktop (Windows, Mac or Linux Desktop)

Personal Server

Ubuntu: You can download and run the compiled Focalboard Personal Server on Ubuntu by following our latest install guide.

API Docs

Boards API docs can be found over at https://htmlpreview.github.io/?https://github.com/mattermost/focalboard/blob/main/server/swagger/docs/html/index.html

Contribute to Focalboard

For anyone interested in being an official maintainer of the Focalboard repository, please reach out to us on our Focalboard Community Channel. If there are no maintainers, and you’re still interested in adding your own improvements to the Focalboard Personal Editions, we encourage you to fork and maintain the repository.

Getting started

Our developer guide has detailed instructions on how to set up your development environment for the Personal Server. It also provides more information about contributing to our open source community.

Clone mattermost-server into sibling directory.

Create an .env file in the focalboard directory that contains:

EXCLUDE_ENTERPRISE="1"

To build the server:

make prebuild
make

To run the server:

 ./bin/focalboard-server

Then navigate your browser to http://localhost:8000 to access your Focalboard server. The port is configured in config.json.

Once the server is running, you can rebuild just the web app via make webapp in a separate terminal window. Reload your browser to see the changes.

Building and running standalone desktop apps

You can build standalone apps that package the server to run locally against SQLite:

  • Windows:
    • Requires Windows 10, Windows 10 SDK 10.0.19041.0, and .NET 4.8 developer pack
    • Open a git-bash prompt.
    • Run make prebuild
    • The above prebuild step needs to be run only when you make changes to or want to install your npm dependencies, etc.
    • Once the prebuild is completed, you can keep repeating the below steps to build the app & see the changes.
    • Run make win-wpf-app
    • Run cd win-wpf/msix && focalboard.exe
  • Mac:
    • Requires macOS 11.3+ and Xcode 13.2.1+
    • Run make prebuild
    • The above prebuild step needs to be run only when you make changes to or want to install your npm dependencies, etc.
    • Once the prebuild is completed, you can keep repeating the below steps to build the app & see the changes.
    • Run make mac-app
    • Run open mac/dist/Focalboard.app
  • Linux:
    • Tested on Ubuntu 18.04
    • Install webgtk dependencies
      • Run sudo apt-get install libgtk-3-dev
      • Run sudo apt-get install libwebkit2gtk-4.0-dev
    • Run make prebuild
    • The above prebuild step needs to be run only when you make changes to or want to install your npm dependencies, etc.
    • Once the prebuild is completed, you can keep repeating the below steps to build the app & see the changes.
    • Run make linux-app
    • Uncompress linux/dist/focalboard-linux.tar.gz to a directory of your choice
    • Run focalboard-app from the directory you have chosen
  • Docker:
    • To run it locally from offical image:
      • docker run -it -p 80:8000 mattermost/focalboard
    • To build it for your current architecture:
      • docker build -f docker/Dockerfile .
    • To build it for a custom architecture (experimental):
      • docker build -f docker/Dockerfile --platform linux/arm64 .

Cross-compilation currently isn't fully supported, so please build on the appropriate platform. Refer to the GitHub Actions workflows (build-mac.yml, build-win.yml, build-ubuntu.yml) for the detailed list of steps on each platform.

Unit testing

Before checking in commits, run make ci, which is similar to the .gitlab-ci.yml workflow and includes:

  • Server unit tests: make server-test
  • Web app ESLint: cd webapp; npm run check
  • Web app unit tests: cd webapp; npm run test
  • Web app UI tests: cd webapp; npm run cypress:ci

Translating

Help translate Focalboard! The plugin is already translated into several languages. We welcome corrections and new language translations submitted against the appropriate language JSON file in this repository. To add a new language, follow the steps below:

  • Create a new file with the language code (I.E. en.json) inside webapp/i18n directory
  • Copy the contents of the en.json file into your newly created file
  • Leave the keys in this file as they are and replace all the values with the translated strings
  • Go to webapp/src/constants.ts and add an entry for the language you are translating into under the languages array
  • This array needs to consist of three keys: the language code, the name of the language and the display name of the language
  • Go to webapp/src/i18n.tsx:
    • import the json of the language translation you have just added
    • Add the language code to the supportedLanguages array
    • Add another case to the switch case matching the language you added inside getMessages
  • Once you are done, you need to update the snapshot by using this command npm run updatesnapshot

Staying informed