Domain registry, domain hosting and static HTTP hosting
admin | ||
auth | ||
db | ||
ht | ||
inc | ||
less | ||
lessphp | ||
ns | ||
reg | ||
.gitignore | ||
bottom.inc.php | ||
index.php | ||
niver.log | ||
README.md | ||
top.inc.php |
Niver
Presentation
Niver is an ecosystem whose main component is the Web interface written in PHP.
This PHP Web interface allow it's users to manage 3 services, that can be used together :
- A domain registry
- A nameserver
- An hypertext service, that allow a directory containing hypertext documents to be accessed with the choice of the protocol and the routing method :
- HTTP(S) or Gemini
- DNS access or Onion (the Tor's system)
Setup
Niver will use and need specific configuration for
- Knot DNS
- OpenSSH
- Nginx
- Tor
- Gmnisrv
To do root-level actions, Niver will also use a privileged binary, written in Rust, called Maniver.
Niver has been deployed on the following distributions :
- Debian 10, using Nginx 1.14.2 and OpenSSH 7.9p1, and latest available version of Tor, Knot and gmnisrv using their official release channel.
- Arch Linux
To provide all features:
# pacman -S tor knot openssh sudo nginx nginx-mod-headers-more certbot certbot-nginx php-fpm php-sqlite
To limit users storage:
# pacman -S quota-tool
maniver installation
# pacman -S rustup git
$ rustup default stable
$ git clone https://code.antopie.org/miraty/maniver-dev
$ cd maniver-dev
$ cargo build --release
gmnisrv installation
# pacman -S make git pkgconf openssl scdoc
$ git clone https://git.sr.ht/~sircmpwn/gmnisrv # Download gmnisrv sources
$ mkdir gmnisrv/build
$ cd gmnisrv/build
$ ../configure --prefix=/usr # Check gmnisrv dependencies and setup files needed for building
$ make # Build gmnisrv
# make install # Install gmnisrv binary and manpages on the system
# useradd -U -r -s /usr/bin/nologin gmnisrv
Some tools you might find usefull to manage a server:
# pacman -S vnstat htop nload ufw vim man-db curl
Features
Web interface
- Anonymous: you only need a pseudo/password set
- Page lower than 10 KiB, without cache
- No JavaScript, no images, and HTML is semantic so you could even block CSS
- Dark and light themes
- Free service running libre software (AGPLv3+)
Hypertext
- SFTP access
- HTTP and Gemini
- IPv4 and IPv6
- TLS 1.2 & 1.3 or TLS 1.3 only
- DNS (ICANN, OpenNIC or anything) and Onion v3 (through Tor)
- HTTP/1.1 and HTTP/2
- Let's Encrypt certificate
- All HTTP security headers
Nameserver
- DNSSEC (with NSEC3)
- NS, A, AAAA, TXT, and CAA records
Registry
- Glue record
- DNSSEC delegation with any modern cypher
Anti-features
- No internationalized domain support (you can only use ASCII in your domain)
- No BIND-style plaintext configuration (you need to fill a form for every record you add or remove)