2022-09-23 21:50:02 +00:00
|
|
|
.Dd $Mdocdate: September 23 2022 $
|
2022-09-22 13:47:52 +00:00
|
|
|
.Dt TELODENDRIA.CONF 5
|
|
|
|
.Os Telodendria Project
|
|
|
|
.Sh NAME
|
|
|
|
.Nm telodendria.conf
|
|
|
|
.Nd Configuration file for Telodendria
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
.Nm
|
|
|
|
is the configuration file for the Telodendria homeserver,
|
|
|
|
.Xr telodendria 8 .
|
|
|
|
Telodendria is designed to be extremely configurable. As such,
|
|
|
|
it has a fairly extensive configuration file. The configuration
|
|
|
|
file can be passed to the Telodendria binary with the
|
|
|
|
.Sy -f
|
|
|
|
option, and is typically located at
|
|
|
|
.Pa /etc/telodendria.conf
|
|
|
|
.sp
|
|
|
|
.Nm
|
|
|
|
uses OpenBSD-style syntax, though it is a little more rigid in its
|
|
|
|
parser. All values must be surrounded by quotes, and each directive
|
|
|
|
must be ended with a semicolon.
|
|
|
|
.Sh MACROS
|
|
|
|
Macros can be defined that will later be expanded in context.
|
|
|
|
Macro names must start with a letter, digit, or underscore, and may
|
|
|
|
contain only those characters. Macros are not expanded inside quotes.
|
|
|
|
.sp
|
|
|
|
For example:
|
2022-09-23 21:50:02 +00:00
|
|
|
.Bd -literal -offset indent
|
|
|
|
macro1 = "value1";
|
|
|
|
directive $macro1;
|
|
|
|
.Ed
|
2022-09-22 13:47:52 +00:00
|
|
|
.Sh GLOBAL OPTIONS
|
|
|
|
Here are the settings that can be set globally:
|
|
|
|
.Bl -tag -width Ds
|
|
|
|
.It Ic listen Ar port
|
|
|
|
The port to listen on. Telodendria will bind to all interfaces, but it
|
|
|
|
is recommended to configure your firewall so that it only listens on
|
|
|
|
localhost, and then configure a reverse proxy such as
|
|
|
|
.Xr relayd 8
|
|
|
|
in front of it, because Telodendria does not implement TLS. Note that
|
|
|
|
Telodendria doesn't provide multiple ports for the various services it
|
|
|
|
offers. ALl APIs are made available over the same port, so care should
|
|
|
|
be taken in
|
|
|
|
.Xr relayd.conf 5
|
|
|
|
to ensure that only the public Matrix API paths are made available over
|
|
|
|
the internet.
|
|
|
|
.Ar port
|
|
|
|
should be a decimal port number. This directive is entirely optional. If
|
|
|
|
it is omitted, then Telodendria will listen on port 8008 by default.
|
|
|
|
.It Ic server-name Ar name
|
|
|
|
Configure the domain name of your homeserver. Note that Matrix servers
|
|
|
|
cannot be migrated to other domains, so once this is set, it should never
|
|
|
|
change unless you want unexpected things to happen, or you want to start
|
|
|
|
over.
|
|
|
|
.Ar name
|
|
|
|
should be a DNS name that can be publically resolved. This directive
|
|
|
|
is required.
|
|
|
|
.It Ic chroot Ar directory
|
|
|
|
Change the root directory to the specified directory as soon as possible.
|
|
|
|
Note that all other paths and files specified in
|
|
|
|
.Nm
|
|
|
|
must be accessible relative from this directory. This directive only
|
|
|
|
takes effect if Telodendria is running as root. If it isn't, then a
|
|
|
|
warning is printed to the log, and no
|
|
|
|
.Xr chroot 2
|
|
|
|
call is made. In that case, Telodendria will still change into the
|
|
|
|
specified directory, so that the other paths referenced can be made
|
|
|
|
relative to this one. This directive is required. It is expected that
|
|
|
|
the homeserver data and logs will be stored in a subdirectory of this one.
|
|
|
|
.It Ic id Ar uid Ar gid
|
|
|
|
The effective UNIX user and group to drop to after binding to the socket
|
|
|
|
and changing the filesystem root. This only works if Telodendria is
|
|
|
|
running as the root user, and is used as a security mechanism. If Telodendria
|
|
|
|
is started as a non-priviledged user, then a warning is printed to the log
|
|
|
|
if that user does not match what's specified here. This directive is
|
|
|
|
required, even if Telodendria is unable to switch to the given user and
|
|
|
|
group. It should be used as a sanity check to make sure the permissions are
|
|
|
|
working properly.
|
|
|
|
.It Ic data-dir Ar directory
|
|
|
|
The data directory into which Telodendria will write all user and event
|
|
|
|
information. Telodendria doesn't use a database like other Matrix homeserver
|
|
|
|
implementations; it uses a flat-file directory structure, similar to how an
|
|
|
|
SMTP server uses Maildirs to deliver email. This directive is required.
|
|
|
|
.Ar directory
|
|
|
|
should be a path relative to the
|
|
|
|
.Ic chroot
|
|
|
|
directory. Don't depend on the
|
|
|
|
.Ic chroot
|
|
|
|
option working, because there may be legitimate cases when Telodendria will
|
|
|
|
not be started as root, thus causing the chroot to fail.
|
|
|
|
.It Ic federation Ar true|false
|
|
|
|
Whether to enable federation with other Matrix homeservers or not. Matrix is
|
|
|
|
by its very nature a federated protocol, but if you just want to run your
|
|
|
|
own internal chat server with no contact with the outside, then you can use
|
|
|
|
this option to disable federation. It is highly recommended to set this to
|
|
|
|
.Ar true ,
|
|
|
|
however, if you wish to be able to communicate with users on other Matrix
|
|
|
|
servers. This directive is required.
|
|
|
|
.It Ic registration Ar true|false
|
|
|
|
Whether or not to enable new user registration or not. For security and anti-spam
|
|
|
|
reasons, you can set this to
|
|
|
|
.Ar false .
|
|
|
|
If you do, you can still add users via the administrator API. In an ideal world,
|
|
|
|
everyone would run their own homeserver, so no public registration would ever
|
|
|
|
be required. Unfortunately, not everyone has the means to run their own homeserver,
|
|
|
|
especially because of the fact that public IPv4 addresses are becoming increasingly
|
|
|
|
harder to come by. If you would like to provide a service to those that are unable
|
|
|
|
to run their own homeserver, you can aset this to
|
|
|
|
.Ar true ,
|
|
|
|
which will allow anyone to create an account. Telodendria should be capable of handling
|
|
|
|
a large amount of users without difficulty or security issues. This directive is
|
|
|
|
required.
|
|
|
|
.It Ic log Ar file|stdout
|
|
|
|
The log configuration. Telodendria uses its own logging facility, which can output to
|
|
|
|
either standard output or a file. A number of child directives can be added to this
|
|
|
|
directive to customize the log output:
|
|
|
|
.Bl -tag -width Ds
|
|
|
|
.It Ic level Ar error|warning|task|message|debug
|
|
|
|
The level of messages to log at. Each level shows all the levels above it. For
|
|
|
|
example, setting the level to
|
|
|
|
.Ar error
|
|
|
|
will show only errors, while setting the level to
|
|
|
|
.Ar warning
|
|
|
|
will show warnings and errors.
|
|
|
|
.Ar task
|
|
|
|
shows tasks, warnings, and errors, and so on. The
|
|
|
|
.Ar debug
|
|
|
|
level shows all messages.
|
|
|
|
.It Ic timestampFormat Ar format|none|default
|
|
|
|
If you want to customize the timestamp format shown in the log, or disable it
|
|
|
|
altogether, you can do so via this option. Acceptable values are
|
|
|
|
.Ar none ,
|
|
|
|
.Ar default ,
|
|
|
|
or a formatter string as described by your system's
|
|
|
|
.Xr strftime 3 .
|
|
|
|
.It Ic color Ar true|false
|
|
|
|
Whether or not to enable colored output on TTYs. Note that ANSI color sequences
|
|
|
|
will not be written to a log file, only a real terminal, so this option only
|
|
|
|
applies if the log is being written to a standard output which is connected to
|
|
|
|
a terminal.
|
|
|
|
.El
|
|
|
|
.It Ic threads Ar count
|
|
|
|
How many worker threads to spin up to handle requests. This should generally be
|
|
|
|
less than the total CPU core count, to prevent overloading the system. The most
|
|
|
|
efficient number of threads ultimately depends on the configuration of the
|
|
|
|
machine running Telodendria, so you may just have to play around with different
|
|
|
|
values here to see which gives the best performance.
|
|
|
|
.El
|
|
|
|
.Sh FILES
|
|
|
|
.Bl -tag -width Ds
|
|
|
|
.It Pa /etc/telodendria.conf
|
|
|
|
The default
|
|
|
|
.Xr telodendria 8
|
|
|
|
configuration file.
|
|
|
|
.It Pa /var/telodendria
|
|
|
|
The recommended chroot directory.
|
|
|
|
.El
|
|
|
|
.Sh EXAMPLES
|
|
|
|
Please consult the default
|
|
|
|
.Nm
|
|
|
|
that ships with Telodendria for a complete example. If you installed Telodendria
|
|
|
|
as a package, then the example should be located at the default location. If you
|
|
|
|
are building from source, you can find the default config in the
|
|
|
|
.Pa contrib/
|
|
|
|
directory.
|
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr telodendria 8
|