Install Nodehouse#
Run Nodehouse from source for development or use Docker Compose for a persistent single-host deployment.
Before you start#
- Git and a supported Node.js runtime with npm.
- A strong, unique SysOp password of at least 12 characters.
- For Docker: Docker Engine with the Compose plugin.
- Two distinct available ports for HTTP and Telnet.
Run from source#
git clone https://github.com/packetloss404/Nodehouse.git
cd Nodehouse
npm install
cp .env.example .env
npm run verify
npm start
Before starting, edit .env, set the intended environment and define a unique
NODEHOUSE_SYSOP_PASSWORD. Do not expose a development database or a known
bootstrap credential to a network.
Run with Docker Compose#
cp .env.example .env
# Edit .env: set NODE_ENV=production and NODEHOUSE_SYSOP_PASSWORD.
docker compose up -d --build
The committed Compose service publishes HTTP on host port 8088 and Telnet on
host port 23. It persists data/ and files/ beside the Compose file.
The image includes the art/ directory, which holds the ANSI art gallery.
Nodehouse also creates data/transfers at startup to stage offline packets, so
the persisted data/ volume covers it. If you build a custom image or mount
your own application directory, copy art/ as well or the gallery lists no
artwork.
Verify#
curl -fsS http://127.0.0.1:8088/healthz
docker compose ps
docker compose logs --tail=100 nodehouse
docker compose exec nodehouse ls art/gallery
Also connect to the Telnet listener and confirm the welcome banner appears. A
successful health response must report that the database is available, and
art/gallery must list the shipped .ans files. Stop the service and use
Troubleshooting if either listener fails.
If it does not work#
| Symptom | Check | Recovery |
|---|---|---|
/healthz refuses the connection |
Whether the process is running at all, and on the expected port | See Nodehouse refuses to start |
/healthz answers but reports unhealthy |
The body — it names what is wrong | See /healthz is unhealthy |
| Compose reports the container up while health fails | docker compose logs --tail=100 nodehouse |
A running container is not a working board |
| A port is already in use | What else is bound to it | Change the published port rather than stopping an unrelated service |