dnsmanager
is a server application for the netlibre
website allowing to manage domain names and their zones.
This application is to be combined with its web interface and the authd
service for authentication.
https://www.netlib.re
apparmor.d | ||
bin | ||
deployment | ||
man | ||
mk | ||
src | ||
templates | ||
tools | ||
.gitignore | ||
configuration-example.yml | ||
makefile | ||
README.md | ||
shard.yml | ||
TODO.md |
dnsmanagerd
dnsmanagerd
is a DNS management micro-service enabling users to ask for a domain and handle their own DNS zones.
This software is based on libipc and uses authd for authentication, authorization and user profile management.
dnsmanagerd
stores data such as domains (and their owners), zone resource records and various tokens.
No SQL, the entire database is stored in plain files, thanks to the DODB database library.
The netlibre service is the first to use dnsmanagerd
in a real-life deployment.
See the netlibre's webclient.
Build
dnsmanagerd
is written in Crystal.
You’ll need the following tools to build it: crystal
, shards
and make
.
make
make install
Run
$ dnsmanagerd --help
For a more extensive documentation, please read the manual for both dnsmanagerd and dnsmanagerctl.
See the configuration example to avoid long command-line parameters.
Also, some usage examples are available in the makefiles.
Administration
# Add a domain for a user.
dnsmanagerctl provide-domain login domain
For a comprehensive list of available commands, please read the dnsmanagerctl manual.
This command-line-interface application is mainly used for administrative purposes, users should access dnsmanagerd
through another client instead.
See the netlibre's webclient.
Backup and migration
# Database backup.
tar cfz db.tar.gz ./db-dnsmanagerd
# Database migration.
tar xfz db.tar.gz
Wasn't that hard, isn't it?
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.