enigma-bbs/docs/web_server.md

1.3 KiB

Web Server

ENiGMA½ comes with a built in content server for supporting both HTTP and HTTPS. Currently the File Bases registers routes for file downloads, and static files can also be served for your BBS. Other features will likely come in the future or you can easily write your own!

Configuration

By default the web server is not enabled. To enable it, you will need to at a minimum configure two keys in the contentServers::web section of config.hjson:

contentServers: {
	web: {
		domain: bbs.yourdomain.com

		http: {
			enabled: true
		}
	}
}

This will configure HTTP for port 8080 (override with port). To additionally enable HTTPS, you will need a PEM encoded SSL certificate and private key. Once obtained, simply enable the HTTPS server:

contentServers: {
	web: {
		domain: bbs.yourdomain.com

		https: {
			enabled: true
			port: 8443
			certPem: /path/to/your/cert.pem
			keyPem: /path/to/your/cert_private_key.pem
		}
	}
}

Static Routes

Static files live relative to the contentServers::web::staticRoot path which defaults to enigma-bbs/www.

Custom Error Pages

Customized error pages can be created for HTTP error codes by providing a <error_code>.html file in the static routes area. For example: 404.html.