Supplemental information about proper server setup

Installation

There are several things you need to take care of for proper installation and use of the HTTP/2 Server.

Begin by downloading the installation package and placing it on the server in a temporary location. These instructions will use /tmp.

Package installation

RPM packages

On Fedora, CentOS, and RedHat use DNF to install the package with this command:

[user@host tmp]# sudo dnf install /tmp/rwserve-1.0.0-1.noarch.rpm    

DEB packages

On Ubuntu and Debian use APT to install the package with this command:

[user@host tmp]# sudo apt install /tmp/rwserve_1.0.0-1_all.deb    

TAR packages

On other operating systems, unzip the tarball into a temporary directory, create a new system user, set permissions, and copy the extracted contents to their correct destinations. Run these commands as superuser. Follow the instructions in file permissions to issue the correct chown and chmod commands.

[user@host tmp]# mkdir /tmp/rws-unpacked    
[user@host tmp]# tar -xzf /tmp/rwserve_1.0.0-1.tar.gz -C /tmp/rws-unpacked

[user@host tmp]# useradd --system rwserve
[user@host tmp]# chown -R rwserve:rwserve /tmp/rws-unpacked
[user@host tmp]# chown root:root /tmp/rws-unpacked/usr/lib/systemd/system/rwserve.service
[user@host tmp]# find /tmp/rws-unpacked -type d -exec chmod 0750 {} \;
[user@host tmp]# find /tmp/rws-unpacked -type f -exec chmod 0640 {} \;

[user@host tmp]# cp -p /tmp/rws-unpacked/etc/rwserve/rwserve.conf /etc/rwserve/rwserve.conf
[user@host tmp]# cp -p /tmp/rws-unpacked/usr/lib/systemd/system/rwserve.service /usr/lib/systemd/system/rwserve.service
[user@host tmp]# cp -rp /tmp/rws-unpacked/usr/lib/node_modules/. /usr/lib/node_modules
[user@host tmp]# cp -rp /tmp/rws-unpacked/srv/rwserve/. /srv/rwserve

Post-installation

When installing RWSERVE for the first time, a post-installation script is automatically called to create self-signed SSL certificates for your convenience. Use these only during private testing and staging. Before putting your server into production, you must get proper SSL certificates from a certificate authority for each virtual hostname in your configuration. LetsEncrypt is a certificate authority that may be used for this purpose.

Check these additional items in your configuration file, located at /etc/rwserve/rwserve.conf, before starting your server:

  1. Verify the correctness of the public IPv4 address for this computer (/server/ip-address).
  2. Make sure the server's configured port is not blocked by a firewall (/server/port).
  3. Provide your Read Write Tools customer number and access key (/server/registration).
  4. Check that your domain name registrar's DNS record for your hostname points to this IPv4 (/host/hostname).
  5. Replace any self-signed SSL certificate with ones from a certificate authority (/host/tls).

Startup and monitoring

Use this command to start the server:

[user@host tmp]# systemctl start rwserve

Use this command to monitor the server:

[user@host tmp]# journalctl -u rwserve -f

In-depth reading

Prerequisites

Server dependencies

This note documents the software required by the server for successful website hosting.
prerequisites, dependencies, Node.js

Registration

Legitimizing your copy of the server software

This note describes how to specify your customer number and access key in the configuration file.
registration, customer number, access key

Standard Directories

The location of server files

This note provides documentation on the files and directories used by the server.
etc/rwserve, etc/systemd/system, usr/lib/node_modules/rwserve, /usr/lib/systemd/system, var/www, encoding-cache, dynamic-cache, custom-errors

File Permissions

File system enforcement of process privileges

This note describes the checks taken by the server's file system to limit the server's ability to access devices files outside its scope.
file permissions, document-root, encoding-cache, dynamic-cache, readable, writable, read-write

SystemD

SystemD and JournalD services

This note documents how to use the SystemD service manager to enable unattended background execution of the server software, and how to use the JournalD service to view and manage the server's logged output.
SystemD, JournalD, unit file, systemctl, start, status, stop, journalctl, ‑‑disk-space, ‑‑vacuum-size

Config Hierarchy

A bare-bones look at configuration settings

This note provides a summary of the keywords used in host settings and server settings, and the hierarchy used to configure RWSERVE.
server settings, host settings, keywords, hierarchy

Supplemental information about proper server setup