Remote Servers
Remote servers allow the placement of servers close to developers to minimize latency while allowing management of users and templates from a central location.
Core Server
To allow the core server to support remote servers it needs to be started with the --remote-token
option or using the environment variable KNOT_REMOTE_TOKEN
, this should be set to an authentication string which will be shared with the remote servers e.g.
KNOT_REMOTE_TOKEN=IoiQiTe0ys6ZVoNYongjVTk1kgIbAN8U
Remote Servers
Remote servers have to be started with the shared token and the address of the core server using the options --remote-token
and --core-server
or using the environment variables KNOT_REMOTE_TOKEN
and KNOT_CORE_SERVER
, e.g.
KNOT_REMOTE_TOKEN=IoiQiTe0ys6ZVoNYongjVTk1kgIbAN8U
KNOT_CORE_SERVER=https://knot.example.com
All other configuration options are as per the core server.
There’s no need to use the same database backend for remote servers, the core server could use a Galera Cluster while the remote servers could use a redis cluster. The storage requirements of remote servers is less than the core servers as they don’t hold a complete copy of all the data.