Focalboard is an open source, self-hosted alternative to Trello, Notion, and Asana.

Focalboard

CI Status Mac Build Ubuntu Build Windows Build CodeQL Dev Release Plugin Release Prod Release

Like what you see? ๐Ÿ‘€ Give us a GitHub Star! โญ

Focalboard

Focalboard is an open source, self-hosted alternative to Trello, Notion, and Asana.

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

  • Focalboard Personal Desktop: A stand-alone desktop app for your todos and personal projects. This is a single-tenant locally run server running Focalboard for optimal speed and performance.

  • Focalboard Personal Server: A self-hosted server for your team to collaborate.

The same MIT-licensed binary powers both desktop and server editions.

Try out Focalboard

Focalboard Personal Desktop (Windows, Mac or Linux Desktop)

Try out Focalboard Personal Desktop by going to the Windows Store or the Apple AppStore, searching for Focalboard and installing to run the compiled version locally.

If you're running a Linux Desktop, download the latest focalboard-linux.tar.gz release, unpack the .tar.gz archive, and open focalboard-app from the focalboard-app folder.

Note: For Windows and Mac users, while we don't yet offer Focalboard Personal Desktop outside of Store-based installs, it is in consideration for the future (please upvote the ticket if you're interested in this addition).

Focalboard Personal Server (Ubuntu)

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

Download the latest server release from GitHub releases

Building the server

Please refer to the Developer's Tips & Tricks for more detailed steps. Here's a summary:

First, install basic dependencies:

  • Go 1.15+
  • Node 10+ and npm
  • Mingw64 on Windows
make prebuild
make

Running and testing the server

To start the server, run ./bin/focalboard-server

Server settings are in config.json.

Open a browser to http://localhost:8000 to start.

Building and running standalone desktop apps

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

  • Mac:
    • make mac-app
    • run mac/dist/Focalboard.app
    • Requires: macOS Catalina (10.15)+, Xcode 12+.
  • Linux:
    • Install webgtk dependencies
      • sudo apt-get install libgtk-3-dev
      • sudo apt-get install libwebkit2gtk-4.0-dev
    • make linux-app
    • run linux/dist/focalboard-app
    • Tested with: Ubuntu 18.04
  • Windows:
    • Open a git-bash prompt
    • make win-wpf-app
    • run cd win-wpf/msix && focalboard.exe
    • Requires: Windows 10

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 tests

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

  • Server unit tests: make server-test
  • Webapp eslint: cd webapp; npm run check
  • Webapp unit tests: cd webapp; npm run test
  • Webapp UI tests: cd webapp; npm run cypress:ci

Stay informed on progress

Share your feedback

File bugs, suggest features, join our forum, learn more here!

Contributing

Contribute code, bug reports, and ideas to the future of the Focalboard project. We welcome your input! Please see CONTRIBUTING.md for details on how to get involved.

Owner
Mattermost
All team communication in one place, searchable and accessible anywhere.
Mattermost
Comments
  • Bug: server url changes are not saving

    Bug: server url changes are not saving

    Steps to reproduce the behavior

    We changed our mattermost server's url, and whenever I try to change it on the desktop app, after attempting to log in, it reverts to the old url

    Expected behavior

    Server url should not be reverting to the previous url when saving server config

    Edition and Platform

    • Edition: Personal Desktop
    • Version: 5.2.2
    • Browser and OS: Chrome on Windows 10

    Additional context (optional)

    • I've tried reinstalling, same issue
    • Another machine's desktop app works fine, same machine's browser app works fine; other colleagues are not experiencing the same issue on their machines
    • I'm using tailscale vpn (not sure if this matters)
  • Bug: Problem with docker setup on Ubuntu 22.04

    Bug: Problem with docker setup on Ubuntu 22.04

    Steps to reproduce the behavior

    I am trying to set up a focalboard on my linux server 22.04. I cloned your whole github repo to a folder on my server and ran the docker compose up command from the docker folder.

    The docker compose failed with the following error: ERROR [gobuild 4/4] RUN EXCLUDE_PLUGIN=true EXCLUDE_SERVER=true EXCLUDE_ENTERPRISE=true make server-docker os=linux arch=amd64

    Below is the full commandline readout:

    ` docker compose up [+] Building 517.1s (14/22) [+] Building 517.2s (14/22) => [nodebuild 1/4] FROM docker.io/library/node:16.3.0@sha256:ca6daf1543242acb0ca59ff425509eab7defb9452f6ae07c156893db06c7a9a4 516.9ss => => sha256:612a5de913f35f1f4648862a6adc5847a922ae6a45de6be602cd19fef640285a 4.20kB / 4.20kB 145.8ss => => sha256:b86d81a99d4163dc88ac7c8a0a8d5bc8fab559051eda227a58bf5e2406228dd3 34.46MB / 34.46MB 183.2ss => => sha256:5dd61d4ad9e84bebb71328a641516ac0ac01b15849f3cf4771f54493a0fbfe55 2.29MB / 2.29MB 149.0ss => => sha256:7aae823459655819b0bcb791763166b6a9643b7b4ea96ef9ffd0c614b8294b31 282B / 282B 149.4ss => => extracting sha256:14feb89c4a52c44f0a7e23a46ebb76e1c25c4b2915a39656a3ab634c74bcda46 5.6ss => => extracting sha256:612a5de913f35f1f4648862a6adc5847a922ae6a45de6be602cd19fef640285a 0.0ss => => extracting sha256:b86d81a99d4163dc88ac7c8a0a8d5bc8fab559051eda227a58bf5e2406228dd3 1.1ss => => extracting sha256:5dd61d4ad9e84bebb71328a641516ac0ac01b15849f3cf4771f54493a0fbfe55 0.1ss => => extracting sha256:7aae823459655819b0bcb791763166b6a9643b7b4ea96ef9ffd0c614b8294b31 0.0ss => [internal] load build context 1.2ss => => transferring context: 94.91MB 1.1ss => [stage-2 1/8] FROM docker.io/library/debian:buster-slim@sha256:5b0b1a9a54651bbe9d4d3ee96bbda2b2a1da3d2fa198ddebbced46dfdca7f216 516.9ss => => resolve docker.io/library/debian:buster-slim@sha256:5b0b1a9a54651bbe9d4d3ee96bbda2b2a1da3d2fa198ddebbced46dfdca7f216 0.2ss => => sha256:c41ee3b6544eb9e823877e3678c4cf020ea3344dcbd3d6507092965da8f719fb 1.46kB / 1.46kB 0.0ss => => sha256:5b0b1a9a54651bbe9d4d3ee96bbda2b2a1da3d2fa198ddebbced46dfdca7f216 1.85kB / 1.85kB 0.0ss => => sha256:6d5f4cf03d677bdd8f426a203c54e69d947e0ec2a645a3c0fb49905d31a88bb3 529B / 529B 0.0ss => => sha256:751ef25978b2971e15496369695ba51ed5b1b9aaca7e37b18a173d754d1ca820 27.14MB / 27.14MB 178.4ss => => extracting sha256:751ef25978b2971e15496369695ba51ed5b1b9aaca7e37b18a173d754d1ca820 0.9ss => [gobuild 2/4] WORKDIR /go/src/focalboard 67.6s[[[+] Building 518.3s (14/22) => [nodebuild 1/4] FROM docker.io/library/node:16.3.0@sha256:ca6daf1543242acb0ca59ff425509eab7defb9452f6ae07c156893db06c7a9a4 517.9s => => sha256:612a5de913f35f1f4648862a6adc5847a922ae6a45de6be602cd19fef640285a 4.20kB / 4.20kB 145.8s => => sha256:b86d81a99d4163dc88ac7c8a0a8d5bc8fab559051eda227a58bf5e2406228dd3 34.46MB / 34.46MB 183.2s => => sha256:5dd61d4ad9e84bebb71328a641516ac0ac01b15849f3cf4771f54493a0fbfe55 2.29MB / 2.29MB 149.0s => => sha256:7aae823459655819b0bcb791763166b6a9643b7b4ea96ef9ffd0c614b8294b31 282B / 282B 149.4s => => extracting sha256:14feb89c4a52c44f0a7e23a46ebb76e1c25c4b2915a39656a3ab634c74bcda46 5.6s => => extracting sha256:612a5de913f35f1f4648862a6adc5847a922ae6a45de6be602cd19fef640285a 0.0s => => extracting sha256:b86d81a99d4163dc88ac7c8a0a8d5bc8fab559051eda227a58bf5e2406228dd3 1.1s => => extracting sha256:5dd61d4ad9e84bebb71328a641516ac0ac01b15849f3cf4771f54493a0fbfe55 0.1s => => extracting sha256:7aae823459655819b0bcb791763166b6a9643b7b4ea96ef9ffd0c614b8294b31 0.0s => [internal] load build context 1.2s => => transferring context: 94.91MB 1.1s => [stage-2 1/8] FROM docker.io/library/debian:buster-slim@sha256:5b0b1a9a54651bbe9d4d3ee96bbda2b2a1da3d2fa198ddebbced46dfdca7f216 517.9s[+] Building 560.0s (17/22) => [internal] load build definition from Dockerfile 0.1s => => transferring dockerfile: 1.52kB 0.0ss => [internal] load .dockerignore 0.1s0 => => transferring context: 155B 0.0s => [internal] load metadata for docker.io/library/debian:buster-slim@sha256:5b0b1a9a54651bbe9d4d3ee96bbda2b2a1da3d2fa198ddebbced46dfdca7f216 0.2ss => [internal] load metadata for docker.io/library/node:16.3.0@sha256:ca6daf1543242acb0ca59ff425509eab7defb9452f6ae07c156893db06c7a9a4 0.2s4 => [internal] load metadata for docker.io/library/golang:1.18.3@sha256:b203dc573d81da7b3176264bfa447bd7c10c9347689be40540381838d75eebef 0.2s => [gobuild 1/4] FROM docker.io/library/golang:1.18.3@sha256:b203dc573d81da7b3176264bfa447bd7c10c9347689be40540381838d75eebef 161.2ss => => resolve docker.io/library/golang:1.18.3@sha256:b203dc573d81da7b3176264bfa447bd7c10c9347689be40540381838d75eebef 0.2s6 => => sha256:b203dc573d81da7b3176264bfa447bd7c10c9347689be40540381838d75eebef 2.35kB / 2.35kB 0.0s => => sha256:5417b4917fa7ed3ad2678a3ce6378a00c95bfd430c2ffa39936fce55130b5f2c 1.80kB / 1.80kB 0.0ss => => sha256:76199a964a3fc66e31bda713381e92285f479fe8e3d4514a473f95ffc2062440 7.10kB / 7.10kB 0.0s2 => => sha256:e756f3fdd6a378aa16205b0f75d178b7532b110e86be7659004fc6a21183226c 55.01MB / 55.01MB 49.5s => => sha256:bf168a6748997eb97b48cc86234b7ff7d8bc907645b9be99013158b3f146b272 5.16MB / 5.16MB 4.5ss => => sha256:e604223835ccf02d097187b5a58ca73e8598cadbb16a36202ca1943e97f56f1f 10.88MB / 10.88MB 7.4s8 => => sha256:6d5c91c4cd86dde23108ab3af91e9eae838d0059a380ee7dfd4f370b6d985523 54.58MB / 54.58MB 46.4s => => sha256:93c221c34e03cb2bc3c5cb0e1fcf029b793cfe2c10362287dd05270d80333db9 85.87MB / 85.87MB 70.0ss => => sha256:399edca3a0ef467dadd57f6ed1ee48c7b64162ca25d1fae2940680b749c722a9 141.75MB / 141.75MB 145.7s1 => => extracting sha256:e756f3fdd6a378aa16205b0f75d178b7532b110e86be7659004fc6a21183226c 1.6s => => sha256:00fc5c011105d0ac8b5453886bb3b836c81260e1d016938a1207d48da8f28718 155B / 155B 50.2s => => extracting sha256:bf168a6748997eb97b48cc86234b7ff7d8bc907645b9be99013158b3f146b272 0.2s => => extracting sha256:e604223835ccf02d097187b5a58ca73e8598cadbb16a36202ca1943e97f56f1f 0.2s => => extracting sha256:6d5c91c4cd86dde23108ab3af91e9eae838d0059a380ee7dfd4f370b6d985523 1.8s => => extracting sha256:93c221c34e03cb2bc3c5cb0e1fcf029b793cfe2c10362287dd05270d80333db9 2.3s => => extracting sha256:399edca3a0ef467dadd57f6ed1ee48c7b64162ca25d1fae2940680b749c722a9 5.0s => => extracting sha256:00fc5c011105d0ac8b5453886bb3b836c81260e1d016938a1207d48da8f28718 0.0s => [nodebuild 1/4] FROM docker.io/library/node:16.3.0@sha256:ca6daf1543242acb0ca59ff425509eab7defb9452f6ae07c156893db06c7a9a4 559.6s => => resolve docker.io/library/node:16.3.0@sha256:ca6daf1543242acb0ca59ff425509eab7defb9452f6ae07c156893db06c7a9a4 0.2s => => sha256:36df0d14549023f2191bd1ef11ed22ea80f04a543a49c75804fa84532e867604 2.21kB / 2.21kB 0.0ss => => sha256:7105279fa2ab705ec483680834ebbc8c0570c090a353679be45bdd765003a7b9 7.80kB / 7.80kB 0.0s0 => => sha256:ca6daf1543242acb0ca59ff425509eab7defb9452f6ae07c156893db06c7a9a4 1.21kB / 1.21kB 0.0s => => sha256:0bc3020d05f1e08b41f1c5d54650a157b1690cde7fedb1fafbc9cda70ee2ec5c 50.44MB / 50.44MB 95.6s => => sha256:a110e58716600c199fc95f633b30735c33a25b5adcfb16d1d7edbcb78a3f1b62 7.83MB / 7.83MB 79.3s => => sha256:83d3c0fa203acbade733bff627daa75b84c97f9d0553bcdf967a3f1d37471277 10.00MB / 10.00MB 99.0s => => extracting sha256:0bc3020d05f1e08b41f1c5d54650a157b1690cde7fedb1fafbc9cda70ee2ec5c 1.8s => => extracting sha256:a110e58716600c199fc95f633b30735c33a25b5adcfb16d1d7edbcb78a3f1b62 0.2s => => extracting sha256:83d3c0fa203acbade733bff627daa75b84c97f9d0553bcdf967a3f1d37471277 0.2s => => sha256:14feb89c4a52c44f0a7e23a46ebb76e1c25c4b2915a39656a3ab634c74bcda46 192.39MB / 192.39MB 197.4s => => sha256:a8fd09c11b021b756b7a92a4f70a3d444ce7e63a1c24e5749d236dc2c6e68514 51.84MB / 51.84MB 142.5s => => extracting sha256:a8fd09c11b021b756b7a92a4f70a3d444ce7e63a1c24e5749d236dc2c6e68514 1.7s => => sha256:612a5de913f35f1f4648862a6adc5847a922ae6a45de6be602cd19fef640285a 4.20kB / 4.20kB 145.8s => => sha256:b86d81a99d4163dc88ac7c8a0a8d5bc8fab559051eda227a58bf5e2406228dd3 34.46MB / 34.46MB 183.2s => => sha256:5dd61d4ad9e84bebb71328a641516ac0ac01b15849f3cf4771f54493a0fbfe55 2.29MB / 2.29MB 149.0s => => sha256:7aae823459655819b0bcb791763166b6a9643b7b4ea96ef9ffd0c614b8294b31 282B / 282B 149.4s => => extracting sha256:14feb89c4a52c44f0a7e23a46ebb76e1c25c4b2915a39656a3ab634c74bcda46 5.6s => => extracting sha256:612a5de913f35f1f4648862a6adc5847a922ae6a45de6be602cd19fef640285a 0.0s => => extracting sha256:b86d81a99d4163dc88ac7c8a0a8d5bc8fab559051eda227a58bf5e2406228dd3 1.1s => => extracting sha256:5dd61d4ad9e84bebb71328a641516ac0ac01b15849f3cf4771f54493a0fbfe55 0.1s => => extracting sha256:7aae823459655819b0bcb791763166b6a9643b7b4ea96ef9ffd0c614b8294b31 0.0s => [internal] load build context 1.2s => => transferring context: 94.91MB 1.1s => [stage-2 1/8] FROM docker.io/library/debian:buster-slim@sha256:5b0b1a9a54651bbe9d4d3ee96bbda2b2a1da3d2fa198ddebbced46dfdca7f216 559.6s => => resolve docker.io/library/debian:buster-slim@sha256:5b0b1a9a54651bbe9d4d3ee96bbda2b2a1da3d2fa198ddebbced46dfdca7f216 0.2s => => sha256:c41ee3b6544eb9e823877e3678c4cf020ea3344dcbd3d6507092965da8f719fb 1.46kB / 1.46kB 0.0s => => sha256:5b0b1a9a54651bbe9d4d3ee96bbda2b2a1da3d2fa198ddebbced46dfdca7f216 1.85kB / 1.85kB 0.0s => => sha256:6d5f4cf03d677bdd8f426a203c54e69d947e0ec2a645a3c0fb49905d31a88bb3 529B / 529B 0.0s => => sha256:751ef25978b2971e15496369695ba51ed5b1b9aaca7e37b18a173d754d1ca820 27.14MB / 27.14MB 178.4s => => extracting sha256:751ef25978b2971e15496369695ba51ed5b1b9aaca7e37b18a173d754d1ca820 0.9s => [gobuild 2/4] WORKDIR /go/src/focalboard 67.6s => [stage-2 2/8] RUN mkdir -p /opt/focalboard/data/files 57.4s => [nodebuild 2/4] WORKDIR /webapp 21.2s => [gobuild 3/4] ADD . /go/src/focalboard 18.2s => [stage-2 3/8] RUN chown -R nobody:nogroup /opt/focalboard 4.8s => [nodebuild 3/4] ADD webapp/ /webapp 2.4s => ERROR [gobuild 4/4] RUN EXCLUDE_PLUGIN=true EXCLUDE_SERVER=true EXCLUDE_ENTERPRISE=true make server-docker os=linux arch=amd64 311.5s => [stage-2 4/8] WORKDIR /opt/focalboard 2.0s => [nodebuild 4/4] RUN CPPFLAGS="-DPNG_ARM_NEON_OPT=0" npm install --no-optional && npm run pack 294.4s => [stage-2 5/8] COPY --from=nodebuild --chown=nobody:nogroup /webapp/pack pack/ 1.0s

    [gobuild 4/4] RUN EXCLUDE_PLUGIN=true EXCLUDE_SERVER=true EXCLUDE_ENTERPRISE=true make server-docker os=linux arch=amd64: #0 1.581 go run ./build/gowork/main.go #0 1.789 go.work written successfully. #0 1.789 go 1.18 #0 1.789 #0 1.789 use ./server #0 1.789 #0 1.799 mkdir -p bin/docker #0 1.800 cd server; env GOOS=linux GOARCH=amd64 go build -ldflags '-X "github.com/mattermost/focalboard/server/model.BuildNumber=dev" -X "github.com/mattermost/focalboard/server/model.BuildDate=n/a" -X "github.com/mattermost/focalboard/server/model.BuildHash=7ae2e623884c2bce27bc422b28bfb2c14fc6e93f" -X "github.com/mattermost/focalboard/server/model.Edition=linux"' -tags 'json1 sqlite3' -o ../bin/docker/focalboard-server ./main #0 58.37 go: downloading github.com/mattermost/mattermost-server/v6 v6.0.0-20221214122404-8d90c7042f93 #0 58.37 go: downloading github.com/spf13/viper v1.10.1 #0 58.37 go: downloading github.com/gorilla/mux v1.8.0 #0 58.82 go: downloading github.com/oklog/run v1.1.0 #0 58.91 go: downloading github.com/pkg/errors v0.9.1 #0 59.20 go: downloading github.com/mattermost/mattermost-plugin-api v0.0.29-0.20220801143717-73008cfda2fb #0 69.80 go: downloading github.com/rivo/uniseg v0.4.3 #0 69.81 go: downloading github.com/krolaw/zipstream v0.0.0-20180621105154-0a2661891f94 #0 69.81 go: downloading github.com/wiggin77/merror v1.0.4 #0 69.81 go: downloading github.com/prometheus/client_golang v1.12.1 #0 70.82 go: downloading github.com/Masterminds/squirrel v1.5.3 #0 70.82 go: downloading github.com/lib/pq v1.10.7 #0 71.17 go: downloading github.com/mattermost/morph v1.0.5-0.20221115094356-4c18a75b1f5e #0 71.43 go: downloading github.com/mattn/go-sqlite3 v2.0.3+incompatible #0 72.00 go: downloading github.com/rudderlabs/analytics-go v3.3.3+incompatible #0 72.02 go: downloading github.com/stretchr/testify v1.8.1 #0 72.11 go: downloading github.com/gorilla/websocket v1.5.0 #0 73.73 go: downloading github.com/fsnotify/fsnotify v1.6.0 #0 73.82 go: downloading github.com/magiconair/properties v1.8.6 #0 73.93 go: downloading github.com/mitchellh/mapstructure v1.4.3 #0 74.03 go: downloading github.com/spf13/afero v1.8.2 #0 74.09 go: downloading github.com/spf13/cast v1.4.1 #0 74.09 go: downloading github.com/spf13/jwalterweatherman v1.1.0 #0 74.13 go: downloading github.com/spf13/pflag v1.0.5 #0 74.28 go: downloading github.com/subosito/gotenv v1.2.0 #0 74.30 go: downloading gopkg.in/ini.v1 v1.67.0 #0 74.33 go: downloading golang.org/x/crypto v0.2.0 #0 74.34 go: downloading github.com/blang/semver/v4 v4.0.0 #0 74.38 go: downloading github.com/go-sql-driver/mysql v1.6.0 #0 74.54 go: downloading github.com/blang/semver v3.5.1+incompatible #0 74.81 go: downloading github.com/sirupsen/logrus v1.9.0 #0 75.49 go: downloading github.com/mattermost/logr/v2 v2.0.15 #0 79.76 go: downloading github.com/minio/minio-go/v7 v7.0.43 #0 79.77 go: downloading github.com/yuin/goldmark v1.5.3 #0 80.94 go: downloading github.com/dyatlov/go-opengraph/opengraph v0.0.0-20220524092352-606d7b1e5f8a #0 81.05 go: downloading github.com/francoispqt/gojay v1.2.13 #0 81.05 go: downloading github.com/graph-gophers/graphql-go v1.4.0 #0 81.20 go: downloading github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d #0 81.20 go: downloading github.com/pborman/uuid v1.2.1 #0 81.70 go: downloading github.com/tinylib/msgp v1.1.6 #0 81.84 go: downloading github.com/vmihailenco/msgpack/v5 v5.3.5 #0 81.92 go: downloading golang.org/x/text v0.4.0 #0 82.04 go: downloading gopkg.in/yaml.v2 v2.4.0 #0 82.05 go: downloading github.com/prometheus/client_model v0.2.0 #0 82.35 go: downloading github.com/prometheus/common v0.33.0 #0 83.81 go: downloading github.com/beorn7/perks v1.0.1 #0 84.31 go: downloading github.com/cespare/xxhash/v2 v2.1.2 #0 87.80 go: downloading github.com/cespare/xxhash v1.1.0 #0 88.03 go: downloading github.com/golang/protobuf v1.5.2 #0 88.17 go: downloading github.com/prometheus/procfs v0.7.3 #0 89.48 go: downloading google.golang.org/protobuf v1.28.1 #0 89.98 go: downloading github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 #0 90.50 go: downloading github.com/golang-migrate/migrate/v4 v4.15.2 #0 90.79 go: downloading github.com/jmoiron/sqlx v1.3.5 #0 90.83 go: downloading github.com/mattermost/squirrel v0.2.0 #0 90.93 go: downloading golang.org/x/sync v0.1.0 #0 91.00 go: downloading github.com/fatih/color v1.13.0 #0 91.09 go: downloading modernc.org/sqlite v1.18.0 #0 91.13 go: downloading github.com/segmentio/backo-go v1.0.1 #0 91.14 go: downloading github.com/tidwall/gjson v1.14.3 #0 91.33 go: downloading github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c #0 91.41 go: downloading github.com/davecgh/go-spew v1.1.1 #0 91.75 go: downloading github.com/pmezard/go-difflib v1.0.0 #0 91.78 go: downloading github.com/stretchr/objx v0.5.0 #0 91.98 go: downloading golang.org/x/sys v0.2.0 #0 92.56 go: downloading github.com/hashicorp/hcl v1.0.0 #0 99.94 go: downloading github.com/pelletier/go-toml v1.9.5 #0 99.94 go: downloading github.com/hashicorp/go-hclog v1.3.1 #0 100.2 go: downloading github.com/hashicorp/go-plugin v1.4.6 #0 100.5 go: downloading github.com/wiggin77/srslog v1.0.1 #0 101.0 go: downloading gopkg.in/natefinch/lumberjack.v2 v2.0.0 #0 101.1 go: downloading github.com/mattermost/go-i18n v1.11.1-0.20211013152124-5c415071e404 #0 101.1 go: downloading github.com/json-iterator/go v1.1.12 #0 101.3 go: downloading github.com/google/uuid v1.3.0 #0 101.4 go: downloading github.com/klauspost/compress v1.15.12 #0 101.8 go: downloading github.com/minio/md5-simd v1.1.2 #0 101.9 go: downloading github.com/minio/sha256-simd v1.0.0 #0 102.3 go: downloading golang.org/x/net v0.2.0 #0 106.5 go: downloading github.com/go-asn1-ber/asn1-ber v1.5.4 #0 106.5 go: downloading github.com/philhofer/fwd v1.1.1 #0 106.7 go: downloading github.com/vmihailenco/tagparser/v2 v2.0.0 #0 106.8 go: downloading github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 #0 106.9 go: downloading github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 #0 107.2 go: downloading github.com/mattn/go-colorable v0.1.13 #0 107.2 go: downloading github.com/mattn/go-isatty v0.0.16 #0 107.7 go: downloading github.com/tidwall/match v1.1.1 #0 107.8 go: downloading github.com/tidwall/pretty v1.2.1 #0 107.9 go: downloading gopkg.in/yaml.v3 v3.0.1 #0 108.3 go: downloading github.com/hashicorp/yamux v0.1.1 #0 108.5 go: downloading github.com/mitchellh/go-testing-interface v1.14.1 #0 108.6 go: downloading google.golang.org/grpc v1.50.1 #0 113.6 go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd #0 113.6 go: downloading github.com/modern-go/reflect2 v1.0.2 #0 113.7 go: downloading github.com/rs/xid v1.4.0 #0 113.8 go: downloading github.com/klauspost/cpuid/v2 v2.2.1 #0 113.9 go: downloading google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1 #0 152.7 go: downloading modernc.org/libc v1.16.7 #0 157.6 go: downloading modernc.org/mathutil v1.4.1 #0 157.6 go: downloading modernc.org/memory v1.1.1 #0 157.8 go: downloading github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 #0 309.6 # github.com/mattn/go-sqlite3 #0 309.6 sqlite3-binding.c: In function 'sqlite3SelectNew': #0 309.6 sqlite3-binding.c:128049:10: warning: function may return address of local variable [-Wreturn-local-addr] #0 309.6 128049 | return pNew; #0 309.6 | ^~~~ #0 309.6 sqlite3-binding.c:128009:10: note: declared here #0 309.6 128009 | Select standin; #0 309.6 | ^~~~~~~ #0 309.7 # github.com/mattermost/focalboard/server/services/store/sqlstore #0 309.7 services/store/sqlstore/migrate.go:70:17: undefined: sqlstore.SetupConnection #0 309.8 make: *** [Makefile:71: server-docker] Error 2`

  • Bug:

    Bug: "Delete" attachment box "jumps" and moves if you move your mouse off it

    Found by QA community contributor @varghesejose2020 on https://boards-bugbash-76.test.mattermost.cloud/ server, Boards v7.7.0

    Steps to reproduce the behavior

    1. Add an attachment to a card
    2. Once attachment has uploaded, hover over it and click the 3-dots then select "Delete"
    3. Don't click "Delete" and move your mouse off the "Delete" box
    4. Observed: "Delete" box jumps / moves (see video attached)

    Expected behavior

    "Delete" box stays in the same place and does not jump/move

    Screenshots (optional)

    https://user-images.githubusercontent.com/13020833/211084336-a8ac616a-8575-4b32-86a7-6df4839821cd.mp4

    Edition and Platform

    • Edition: Mattermost Boards (plugin)
    • Version: v7.7.0
    • Browser and OS: Windows / Chrome
  • Bug: Typo on file attachment upload confirmation message

    Bug: Typo on file attachment upload confirmation message

    Found by QA community contributor @krmh04 on https://boards-bugbash-76.test.mattermost.cloud/ server, Boards v7.7.0

    Steps to reproduce the behavior

    1. Add an attachment to a card and watch for the file uploaded confirmation message
    2. Observed: The "y" is missing from the word "successfull" in the confirmation message

    Expected behavior

    Confirmation message should read "Attachment uploaded successfully"

    Screenshots (optional)

    image

    Edition and Platform

    • Edition: Mattermost Boards (plugin)
    • Version: v7.7.0
    • Browser and OS: Windows/Chrome
  • UI/UX issue: `x` icon is not aligned with text in

    UI/UX issue: `x` icon is not aligned with text in "Create New Category" modal text input box

    Found by QA community contributor @krmh04 on https://boards-bugbash-76.test.mattermost.cloud/ server, Boards v7.7.0

    Steps to reproduce the behavior

    1. Click on the "+" to the right of "Find Boards"
    2. Select "Create New Category"
    3. Type a name for the category
    4. Observed: "x" that appears on the right-hand-side of the category input box is not aligned with category name text

    Expected behavior

    "x" that appears on the right-hand-side of the category input box is aligned with category name text

    Screenshots (optional)

    image

    Edition and Platform

    • Edition: Mattermost Boards (plugin)
    • Version: v7.7.0
    • Browser and OS: Windows / Chrome
notion-md-gen allows you to use Notion as a CMS for pages built with any static site generators

notion-md-gen allows you to use Notion as a CMS for pages built with any static site generators

Dec 12, 2022
Mouthful is a self-hosted alternative to Disqus.

Mouthful is a lightweight commenting server written in GO and Preact. It's a self hosted alternative

Dec 20, 2022
Self-hosted video-hosting website and video archival manager for Niconico, Bilibili, and Youtube
Self-hosted video-hosting website and video archival manager for Niconico, Bilibili, and Youtube

Self-hosted video-hosting website and video archival manager for Niconico, Bilibili, and Youtube

Jan 1, 2023
GoTrue is a small open-source API written in Golang, that can act as a self-standing API service for handling user registration and authentication for Jamstack projects.
GoTrue is a small open-source API written in Golang, that can act as a self-standing API service for handling user registration and authentication for Jamstack projects.

GoTrue is a small open-source API written in Golang, that can act as a self-standing API service for handling user registration and authentication for Jamstack projects.

Dec 13, 2021
Remark42 is a self-hosted, lightweight, and simple comment engine
Remark42 is a self-hosted, lightweight, and simple comment engine

Remark42 is a self-hosted, lightweight, and simple (yet functional) comment engine, which doesn't spy on users. It can be embedded into blogs, articles or any other place where readers add comments.

Dec 28, 2022
Hammond is a self hosted vehicle management system to track fuel and other expenses related to all of your vehicles.
Hammond is a self hosted vehicle management system to track fuel and other expenses related to all of your vehicles.

Hammond is a self hosted vehicle management system to track fuel and other expenses related to all of your vehicles. It supports multiple users sharing multiple vehicles. It is the logical successor to Clarkson which has not been updated for quite some time now.

Jan 2, 2023
listmonk is a standalone high performance, self-hosted newsletter and mailing list manager with a modern dashboard. Single binary app.
listmonk is a standalone high performance, self-hosted newsletter and mailing list manager with a modern dashboard. Single binary app.

listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a PostgreSQL database as its data store.

Jan 1, 2023
listmonk is a standalone, self-hosted, newsletter and mailing list manager
listmonk is a standalone, self-hosted, newsletter and mailing list manager

listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a Postg

Aug 15, 2022
longurl is a self-hosted short url service.

longurl Introduction longurl is a self-hosted short url service. Try It Out curl -H "Content-Type:application/json" -X POST --data '{"url": "https://g

Oct 24, 2022
๐Ÿ––๐Ÿป A self-hosted Quora like web application written in Go
๐Ÿ––๐Ÿป A self-hosted Quora like web application written in Go

Guora ???? A self-hosted Quora like web application written in Go ๅŸบไบŽ Golang ็ฑปไผผ็ŸฅไนŽ็š„็งๆœ‰้ƒจ็ฝฒ้—ฎ็ญ”ๅบ”็”จ ๅŒ…ๅซ้—ฎ็ญ”ใ€่ฏ„่ฎบใ€็‚น่ตžใ€็ฎก็†ๅŽๅฐ็ญ‰ๅŠŸ่ƒฝ Quick Start (Docker Deploy) $ docker-comp

Dec 27, 2022
A self-hosted golang application that listens for Terraform pull request events via webhooks.
A self-hosted golang application that listens for Terraform pull request events via webhooks.

Atlantis Terraform Pull Request Automation Resources What is Atlantis? What does it do? Why should you use it? Stargazers over time Resources How to g

Dec 9, 2021
An open-source project for managing OpenStack resources and OpenStack infrastructure in a Kubernetes cluster

kupenStack Kubernetes-Native OpenStack A Sandbox Project. Have you used OpenStack before? If so, then for you KupenStack is magic โœจ that lets you use

Nov 11, 2021
Minimalist open-source web analytics

Zero-effort web analytics. This is a self-hosted open-source version of Nullitics.

Nov 10, 2022
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle.
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle.

Mattermost is an open source platform for secure collaboration across the entire software development lifecycle. This repo is the primary source for c

Jan 2, 2023
This is my personal website, hosted on GitHub Pages

astrophena.name This is my personal website, hosted on GitHub Pages. Serving locally You need the latest Go and Node.js installed.

Nov 16, 2022
Okta Golang Gin & Okta-Hosted Login Page Example

Okta Golang Gin & Okta-Hosted Login Page Example This example shows you how to use the Okta JWT verifier library to login a user to a Golang Gin appli

Oct 31, 2022
The source code for workshop Scalable architecture using Redis as backend database using Golang + Redis

The source code for workshop Scalable architecture using Redis as backend database using Golang + Redis

Sep 23, 2022
๐ŸŽฌ The source code of https://asoul.video

?? asoul-video The source code of https://asoul.video/ Set up development environment Frontend TBD Backend The ASOUL-Video backend server binary is me

Nov 3, 2022
A job queue and scheduler written in Go, backed by Postgres, and available over HTTP
A job queue and scheduler written in Go, backed by Postgres, and available over HTTP

Rickover This holds the code for a scheduler and a job queue written in Go and backed by Postgres. The goals/features of this project are: Visibility

Dec 31, 2022