73 lines
1.8 KiB
Markdown
73 lines
1.8 KiB
Markdown
# ServNest backend documentation
|
|
|
|
* [Source code architecture](architecture)
|
|
* [`config.ini` configuration reference](configuration)
|
|
* [Installation](installation)
|
|
* [Translation](translation)
|
|
|
|
## Service naming convention
|
|
|
|
ServNest identifies its services using the following short names:
|
|
|
|
`common`
|
|
: not specific to a service
|
|
|
|
`auth`
|
|
: account management
|
|
|
|
`reg`
|
|
: domain name registry
|
|
|
|
`ns`
|
|
: zone hosting
|
|
|
|
`dns`
|
|
: both `reg` and `ns`
|
|
|
|
`ht`
|
|
: HTTP hosting
|
|
|
|
## Software used by ServNest
|
|
|
|
[PHP](https://www.php.net/)
|
|
: main language
|
|
|
|
[SQLite](https://www.sqlite.org/index.html) (as a PHP extension)
|
|
: store relation between an account and the resources it created
|
|
|
|
[gettext](https://www.gnu.org/software/gettext/) (as a PHP extension)
|
|
: translation
|
|
|
|
[libsodium](https://doc.libsodium.org/) (as a PHP extension)
|
|
: hash/encrypt usernames
|
|
|
|
### For `dns` only
|
|
|
|
[Knot DNS](https://www.knot-dns.cz/)
|
|
: DNS server for both registry and DNS hosting
|
|
|
|
Cronie (or another cron daemon)
|
|
: periodically run script to sync registry records with child zones and pseudo-CNAMEs at apex
|
|
|
|
### For `ht` only
|
|
|
|
[sudo](https://www.sudo.ws/) 1.9.10+
|
|
: execute actions that match a regex as privileged or specific users
|
|
|
|
[SFTPGo](https://github.com/drakkan/sftpgo)
|
|
: upload sites files using SFTP
|
|
|
|
[Apache HTTP Server](https://httpd.apache.org/)
|
|
: static HTTP server, with content negotiation and `.htaccess` dynamic configuration
|
|
|
|
[nginx](https://nginx.org/)
|
|
: HTTP reverse proxy for Apache; terminates TLS and enforces security headers
|
|
|
|
Tor
|
|
: [Onion services](https://community.torproject.org/onion-services/)
|
|
|
|
[Certbot](https://certbot.eff.org/)
|
|
: get [Let's Encrypt](https://letsencrypt.org/) certificates for TLS
|
|
|
|
[GNU Core Utilities](https://www.gnu.org/software/coreutils/) or [BusyBox](https://www.busybox.net/)
|
|
: manipulate the filesystem through sudo
|