2024-12-02 09:36:00 +01:00
|
|
|
.Dd 24 november 2024
|
|
|
|
.Dt "dnsmanagerd" 1
|
|
|
|
.Os Linux "(Ubuntu and Alpine)"
|
|
|
|
|
|
|
|
.Sh Name
|
|
|
|
.Nm dnsmanagerd
|
|
|
|
.Nd the DNS manager daemon.
|
|
|
|
|
|
|
|
.Sh Description
|
|
|
|
The
|
|
|
|
.Nm dnsmanagerd
|
|
|
|
daemon is a micro-service providing DNS domains and zones management.
|
|
|
|
|
|
|
|
.Sh Synopsis
|
|
|
|
.
|
|
|
|
.Nm dnsmanagerd
|
2024-12-11 00:52:28 +01:00
|
|
|
.Op Fl snh
|
2024-12-02 09:36:00 +01:00
|
|
|
.Op Fl v Ar verbosity
|
|
|
|
.Op Fl -project Ar project-name
|
2024-12-11 20:51:10 +01:00
|
|
|
.Op Fl -configuration Ar file
|
2024-12-02 09:36:00 +01:00
|
|
|
.
|
2024-12-11 00:52:28 +01:00
|
|
|
.Op Fl -service-name Ar name
|
|
|
|
.Op Fl -storage-directory Ar path
|
|
|
|
.Op Fl -recreate-indexes
|
|
|
|
.
|
|
|
|
.Op Fl -accepted-domains Ar domains
|
|
|
|
.Op Fl -template-directory Ar dir
|
|
|
|
.
|
2024-12-02 09:36:00 +01:00
|
|
|
.Op Fl l Ar login
|
|
|
|
.Op Fl p Ar password
|
|
|
|
|
|
|
|
.Sh Configuration
|
|
|
|
Most of the actual configuration will reasonably come from a configuration file, not from command line parameters.
|
|
|
|
|
|
|
|
By default, configuration is read from
|
|
|
|
.Pa $XDG_CONFIG_HOME/baguette/dnsmanager.yml
|
|
|
|
or
|
|
|
|
.Pa /etc/baguette/dnsmanager.yml .
|
|
|
|
|
|
|
|
Configuration file is in YAML, see the following example:
|
|
|
|
|
|
|
|
.in +4
|
|
|
|
.nf
|
|
|
|
recreate_indexes: true
|
|
|
|
accepted_domains:
|
|
|
|
- netlib.re
|
|
|
|
- codelib.re
|
|
|
|
.fi
|
|
|
|
.in
|
|
|
|
|
|
|
|
In this example, indexes are recreated, which is related to the
|
2024-12-13 01:42:46 +01:00
|
|
|
.Xr DoDB
|
|
|
|
document database, see the related documentation to learn more.
|
2024-12-02 09:36:00 +01:00
|
|
|
Also, there is a list of accepted domains for
|
|
|
|
.Xr dnsmanagerd
|
|
|
|
to handle.
|
|
|
|
|
|
|
|
.Sh Configuration file variables
|
|
|
|
The following presents the complete list of configuration file variables.
|
|
|
|
|
|
|
|
Generic
|
|
|
|
.Xr libipc 7
|
|
|
|
related variables:
|
2024-12-13 01:42:46 +01:00
|
|
|
|
2024-12-02 09:36:00 +01:00
|
|
|
.Bl -tag -width " print functions" -compact
|
|
|
|
.It Li ipc_timer
|
2024-12-13 01:42:46 +01:00
|
|
|
Int32, 30_000
|
|
|
|
.br
|
|
|
|
The IPC timer wakes the process by default every 30 seconds.
|
|
|
|
There is no much point changing this value since nothing is executed periodically anyway, at least for now.
|
|
|
|
|
2024-12-02 09:36:00 +01:00
|
|
|
.It Li verbosity
|
2024-12-13 01:42:46 +01:00
|
|
|
Int32, 4
|
|
|
|
.br
|
|
|
|
[0-4],
|
2024-12-02 09:36:00 +01:00
|
|
|
.Dq 0
|
|
|
|
being quiet and
|
|
|
|
.Dq 4
|
2024-12-13 01:42:46 +01:00
|
|
|
meaning printing debug values.
|
2024-12-02 09:36:00 +01:00
|
|
|
|
2024-12-13 01:42:46 +01:00
|
|
|
.It Li ipc_messages_to_show
|
|
|
|
Array of
|
|
|
|
.Vt Baguette::Configuration::IPC::MESSAGE ,
|
|
|
|
[ERROR, EXCEPTION]
|
|
|
|
|
|
|
|
Types of IPC messages to print, for example all connections.
|
|
|
|
This is mainly for debug since it is very low-level.
|
|
|
|
High-level messages are more relevant to log.
|
|
|
|
By default, errors and exceptions are logged.
|
|
|
|
|
|
|
|
See
|
|
|
|
.Xr Baguette-crystal-base ,
|
|
|
|
which includes the
|
|
|
|
.Vt Baguette::Configuration::IPC::MESSAGE
|
|
|
|
definition.
|
|
|
|
This type has an alias in
|
|
|
|
.Xr dnsmanager :
|
|
|
|
.Vt IPCMESSAGE .
|
|
|
|
|
|
|
|
.It Li service_name
|
|
|
|
String,
|
|
|
|
.Dq dnsmanager
|
|
|
|
.br
|
|
|
|
.Xr libipc 7
|
|
|
|
unix socket name.
|
2024-12-02 09:36:00 +01:00
|
|
|
.El
|
|
|
|
|
|
|
|
Specific
|
|
|
|
.Xr dnsmanagerd
|
|
|
|
variables:
|
|
|
|
.Bl -tag -width "template_directory" -compact
|
2024-12-13 01:42:46 +01:00
|
|
|
.It Li log_file
|
|
|
|
String?,
|
|
|
|
.Em none
|
|
|
|
.br
|
|
|
|
Path to the log file.
|
|
|
|
|
|
|
|
.It Li messages_to_mask
|
|
|
|
Array of
|
|
|
|
.Vt DNSManager::MESSAGE ,
|
|
|
|
.Em [ KEEPALIVE ]
|
|
|
|
.br
|
|
|
|
List of high-level
|
|
|
|
.Em dnsmanagerd
|
|
|
|
messages to mask in the logs.
|
|
|
|
.br
|
|
|
|
The type
|
|
|
|
.Vt DNSManager::MESSAGE
|
|
|
|
has an alias:
|
|
|
|
.Vt DNSMESSAGE .
|
2024-12-02 09:36:00 +01:00
|
|
|
|
|
|
|
.It Li recreate_indexes
|
2024-12-13 01:42:46 +01:00
|
|
|
Bool, false
|
|
|
|
.br
|
|
|
|
See
|
|
|
|
.Xr DoDB
|
|
|
|
documentation.
|
|
|
|
|
2024-12-02 09:36:00 +01:00
|
|
|
.It Li storage_directory
|
|
|
|
String,
|
2024-12-11 00:52:28 +01:00
|
|
|
.Pa ./db-dnsmanagerd
|
2024-12-13 01:42:46 +01:00
|
|
|
.br
|
|
|
|
See
|
|
|
|
.Xr DoDB
|
|
|
|
documentation.
|
2024-12-02 09:36:00 +01:00
|
|
|
|
|
|
|
.It Li login
|
2024-12-13 01:42:46 +01:00
|
|
|
String,
|
|
|
|
.Dq dnsmanager
|
|
|
|
.br
|
2024-12-02 09:36:00 +01:00
|
|
|
.Xr dnsmanagerd
|
|
|
|
needs to connect itself to
|
|
|
|
.Xr authd 1
|
|
|
|
with an admin account to then authenticate its users.
|
|
|
|
|
|
|
|
.It Li pass
|
|
|
|
String?,
|
|
|
|
.Em none
|
|
|
|
|
|
|
|
.It Li template_directory
|
2024-12-13 01:42:46 +01:00
|
|
|
String,
|
|
|
|
.Pa /etc/dnsmanager/templates
|
|
|
|
.br
|
2024-12-02 09:36:00 +01:00
|
|
|
New domains require to load a template so users won't have to enter some necessary entries themselves.
|
|
|
|
For example, SOA and NS RRs are pre-loaded and updated by an administrator when required.
|
|
|
|
.br
|
|
|
|
See
|
|
|
|
.Pa tools/write-template-zone-file.cr
|
|
|
|
|
|
|
|
.It Li accepted_domains
|
|
|
|
Array of String, []
|
2024-12-13 01:42:46 +01:00
|
|
|
.br
|
|
|
|
List of all accepted domains. Example: netlib.re.
|
2024-12-02 09:36:00 +01:00
|
|
|
.El
|
|
|
|
|
|
|
|
.Sh Options
|
|
|
|
.Bl -tag -width "-t activation-template-name,"
|
|
|
|
.It Li -s , --simulation
|
|
|
|
Print configuration then quit.
|
2024-12-11 20:51:10 +01:00
|
|
|
|
2024-12-02 09:36:00 +01:00
|
|
|
.It Li -n , --no-configuration
|
|
|
|
No configuration file should be read.
|
2024-12-11 20:51:10 +01:00
|
|
|
|
2024-12-02 09:36:00 +01:00
|
|
|
.It Li -v No verbosity , Li --verbosity No level
|
|
|
|
Verbosity level. From 0 to 4. Default: 4.
|
2024-12-11 20:51:10 +01:00
|
|
|
|
|
|
|
.It Li --configuration No file
|
|
|
|
Alternative configuration file.
|
|
|
|
|
2024-12-02 09:36:00 +01:00
|
|
|
.It Li --project No project-name
|
|
|
|
Project name, used for slotting to enable several instances of
|
|
|
|
.Nm authd
|
|
|
|
to run at the same time.
|
|
|
|
Will search in
|
|
|
|
.Pa $XDG_CONFIG_HOME/baguette/<project-name>/auth.yml
|
|
|
|
then
|
|
|
|
.Pa /etc/baguette/<project-name>/auth.yml .
|
2024-12-11 20:51:10 +01:00
|
|
|
|
2024-12-02 09:36:00 +01:00
|
|
|
.It Li -h , --help
|
|
|
|
Show some help, but won't cover as much as the actual manual.
|
2024-12-11 20:51:10 +01:00
|
|
|
|
2024-12-11 00:52:28 +01:00
|
|
|
.It Li --service-name No name
|
2024-12-02 09:36:00 +01:00
|
|
|
Name of the
|
|
|
|
.Xr libipc 7
|
|
|
|
unix socket used by
|
|
|
|
.Xr dnsmanagerd
|
|
|
|
to be contacted.
|
|
|
|
|
2024-12-11 00:52:28 +01:00
|
|
|
.It Fl -recreate-indexes
|
|
|
|
Recreate database indexes (symbolic links).
|
|
|
|
|
|
|
|
.It Fl -storage-directory No dir
|
2024-12-02 09:36:00 +01:00
|
|
|
Path of the directory where the
|
|
|
|
.Xr dnsmanagerd
|
|
|
|
database is stored.
|
2024-12-13 01:42:46 +01:00
|
|
|
See the
|
|
|
|
.Xr DoDB
|
|
|
|
documentation.
|
2024-12-11 00:52:28 +01:00
|
|
|
|
|
|
|
.It Fl -accepted-domains No domains
|
|
|
|
Accepted domains, coma separated.
|
|
|
|
.br
|
|
|
|
For example: netlib.re,example.com
|
|
|
|
|
|
|
|
.It Fl -template-directory No dir
|
|
|
|
Directory containing domain templates which are used when creating a new domain.
|
|
|
|
Templates can be generated by
|
|
|
|
.Xr write-template-zone-file .
|
|
|
|
.br
|
|
|
|
See the following command:
|
|
|
|
.Nm "write-template-zone-file netlib.re"
|
|
|
|
.br
|
|
|
|
This command generates a file
|
|
|
|
.Pa netlib.re.json
|
|
|
|
that can be used as a template.
|
2024-12-02 09:36:00 +01:00
|
|
|
.El
|
|
|
|
|
|
|
|
Options related to the
|
|
|
|
.Xr authd 1
|
|
|
|
service used by
|
|
|
|
.Xr dnsmanagerd
|
|
|
|
to authenticate users (see
|
|
|
|
.Sx Configuration file variables ) .
|
|
|
|
Of course, it is preferable to get these parameters from a private configuration file.
|
|
|
|
|
|
|
|
.Bl -tag -width "template_directory" -compact
|
|
|
|
.It Fl l No login , Fl -login No login
|
|
|
|
.
|
|
|
|
.It Fl p No password , Fl -pass No password
|
|
|
|
.El
|
|
|
|
.
|
|
|
|
.Sh Detailed description
|
|
|
|
The code is based on the
|
|
|
|
.Nm libipc
|
|
|
|
library and (trivial) JSON requests, enabling a simple API.
|
|
|
|
|
|
|
|
TODO: expand the documentation
|
|
|
|
.Sh See also
|
|
|
|
TODO: expand the documentation
|
|
|
|
|
|
|
|
.Bl -tag -width "Xr libipc" -compact
|
|
|
|
.
|
|
|
|
.It Xr libipc 7
|
|
|
|
the documentation of the way libipc works
|
|
|
|
.
|
2024-12-11 11:24:18 +01:00
|
|
|
.It Xr dnsmanagerctl 1
|
2024-12-02 09:36:00 +01:00
|
|
|
a command-line-interface client for
|
|
|
|
.Xr dnsmanagerd
|
|
|
|
.
|
|
|
|
.It Xr authd 1
|
|
|
|
an authentication and authorization micro-service used by
|
|
|
|
.Xr dnsmanagerd
|
|
|
|
to handle users (authentication, authorization, preferences and profile)
|
|
|
|
.
|
2024-12-11 11:24:18 +01:00
|
|
|
.It Xr authctl 1
|
2024-12-02 09:36:00 +01:00
|
|
|
a command-line-interface client for
|
|
|
|
.Xr authd
|
|
|
|
.
|
|
|
|
.It Xr mailer 1
|
|
|
|
a simple executable to send mails based on templates
|
|
|
|
.El
|
|
|
|
|
2024-12-13 01:42:46 +01:00
|
|
|
The Document-oriented DataBase (DoDB) library used in
|
|
|
|
.Xr dnsmanagerd .
|
|
|
|
.br
|
|
|
|
.Lk https://git.baguette.netlib.re/Baguette/dodb.cr dodb
|
|
|
|
|
2024-12-02 12:46:42 +01:00
|
|
|
The online service
|
|
|
|
.Dq netlib.re
|
|
|
|
provides an interface for the
|
|
|
|
.Xr dnsmanagerd
|
|
|
|
daemon.
|
|
|
|
.br
|
2024-12-13 01:42:46 +01:00
|
|
|
.Lk https://www.netlib.re netlib.re
|
2024-12-02 12:46:42 +01:00
|
|
|
|
|
|
|
The source code of the web interface:
|
|
|
|
.br
|
|
|
|
.Lk https://git.baguette.netlib.re/Baguette/dnsmanager-webclient web-client
|
|
|
|
|
2024-12-13 01:42:46 +01:00
|
|
|
The logging and configuration library for the whole
|
|
|
|
.Dq baguette
|
|
|
|
project.
|
|
|
|
.br
|
|
|
|
.Lk https://git.baguette.netlib.re/Baguette/baguette-crystal-base baguette-crystal-base
|
2024-12-02 12:46:42 +01:00
|
|
|
|
2024-12-02 09:36:00 +01:00
|
|
|
.Sh Limitations
|
|
|
|
TODO: expand the documentation
|