Rammerhead can run as a standalone Node.js process with no additional infrastructure. This guide walks through cloning the repository, configuring the server, enabling SSL, and keeping the process alive with a process manager.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/binary-person/rammerhead/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- Node.js v16 or higher
- git
Installation
Build the client scripts
Rammerhead ships unbuilt client-side JavaScript. Run the build step before starting the server:
Configuration
All configuration lives insrc/config.js. To override settings without touching the source file — which makes pulling future updates easier — create a config.js file in the repository root. Rammerhead merges it over the defaults at the end of src/config.js:
Binding address and port
By default, Rammerhead binds to127.0.0.1:8080 and opens a second cross-domain port at 8081. Change these in your root config.js:
SSL configuration
Setssl to an object with the PEM-encoded key and certificate. Rammerhead passes this directly to Node.js’s https.createServer:
ssl is null (the default), the server uses plain HTTP.
Development mode
Set theDEVELOPMENT environment variable to enable debug logging and serve unminified client scripts:
DEVELOPMENT is falsy, logLevel defaults to 'info'; with it set, logLevel switches to 'debug'.
Using a .env file
Rammerhead uses dotenv-flow (loaded in the master process before workers start). Create a.env file in the repository root:
.env.production and .env.local.
Process management
Rammerhead does not daemonize itself. Use a process manager to keep it running after you close your terminal session.- pm2
- systemd
Install pm2 globally and start Rammerhead:
pm2 startup prints a command you run once to register pm2 with your init system so Rammerhead restarts on reboot.Verifying the server is running
Rammerhead exposes two lightweight endpoints you can curl to confirm the server is up. Check whether a session password is required:The default password is
sharkie4life, set via the password field in config.js. Set password: null to disable authentication entirely.