focalboard/website/site/content/guide/admin/_index.md
Spiros Economakis 8f746a44bd
Enable prometheus metrics for Focalboard to enable observability (#414)
As an SRE team we would like to expose standard metrics and grouped by version
of the application. Right now will expose only metrics related to Go but instrumentor
should be used in other parts of the codebase so we can track other metrics, eg.
number of tasks, boards, users etc. Similar as we do in MM.

It will run in port `localhost:9092` and it is a new config `prometheus_address`.

Also in the commit we introduced, `group.Add` which helps us to handle gracefully
errors for goroutines. It's a good practice and there are couple of articles by
Golang for this.
2021-05-18 17:12:51 +03:00

2 KiB

title date section weight
Administrator's Guide 2020-12-15T12:01:23-04:00 guide 3

Personal Server configuration

Personal Server settings are stored in config.json and is read when the server is launched. The contents are:

Key Description Example
serverRoot Root URL of the server "http://localhost:8000"
port Server port 8000
dbtype Type of database. sqlite3 or postgres "sqlite3"
dbconfig Database connection string postgres://user:pass@localhost/boards?sslmode=disable&connect_timeout=10
webpath Path to web files "./webapp/pack"
filespath Path to uploaded files folder "./files"
telemetry Enable health diagnostics telemetry true
prometheus_address Enables prometheus metrics, if it's empty is disabled ":9092"
session_expire_time Session expiration time in seconds 2592000
session_refresh_time Session refresh time in seconds 18000
localOnly Only allow connections from localhost false
enableLocalMode Enable Admin APIs on local Unix port true
localModeSocketLocation Location of local Unix port "/var/tmp/focalboard_local.socket"

Resetting passwords

By default, Personal Server exposes admin APIs on a local Unix socket at /var/tmp/focalboard_local.socket. This is configurable by the enableLocalMode and localModeSocketLocation settings in config.json.

To reset a user's password, you can use the following reset-password.sh script:

#!/bin/bash

if [[ $# < 2 ]] ; then
    echo 'reset-password.sh <username> <new password>'
    exit 1
fi

curl --unix-socket /var/tmp/focalboard_local.socket http://localhost/api/v1/admin/users/$1/password -X POST -H 'Content-Type: application/json' -d '{ "password": "'$2'" }'

After resetting a user's password (e.g. if they forgot it), direct them to change it from the user menu, by clicking on their username at the top of the side bar.