Domain registry, domain hosting and static HTTP hosting
Find a file
2021-04-14 14:56:02 +02:00
admin Add TXT record form 2021-02-24 18:39:42 +01:00
auth nic > reg, nav modification 2021-03-20 23:48:54 +01:00
db ?, remove too much indentation 2021-02-17 22:48:49 +01:00
ht Fix some PHP8 warnings and use constants for paths 2021-04-14 14:56:02 +02:00
inc Fix some PHP8 warnings and use constants for paths 2021-04-14 14:56:02 +02:00
less nic > reg, nav modification 2021-03-20 23:48:54 +01:00
lessphp Initial commit 2021-01-22 21:58:46 +01:00
ns Fix some PHP8 warnings and use constants for paths 2021-04-14 14:56:02 +02:00
reg Fix some PHP8 warnings and use constants for paths 2021-04-14 14:56:02 +02:00
.gitignore ?, remove too much indentation 2021-02-17 22:48:49 +01:00
bottom.inc.php ?, remove too much indentation 2021-02-17 22:48:49 +01:00
index.php nic > reg, nav modification 2021-03-20 23:48:54 +01:00
niver.log Add more paths as constants 2021-03-04 01:02:38 +01:00
README.md Add some installation instructions for Arch Linux 2021-04-05 19:06:22 +02:00
top.inc.php Fix some PHP8 warnings and use constants for paths 2021-04-14 14:56:02 +02:00

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)

Nginx mimetypes association