Skip to main content
Running Reacher directly with Node.js is the lightest-weight option and works well on any VPS where you already manage the process lifecycle.

Prerequisites

  • Node.js 18 or later (node --version to check)
  • npm (bundled with Node.js)
  • Git

Setup

1

Clone the repository

2

Install dependencies

3

Configure environment and config files

Open .env and fill in your credentials. The required variables are:
See .env.example for the full list of options.
4

Start the server

The server starts on port 3000 by default (or PORT from your .env).
5

Verify it is running

Expected response: {"status":"ok",...}

Start options

Both are equivalent — npm start is defined as node index.js in package.json.

Development mode with auto-reload

During development, use --watch mode so the server restarts automatically when you edit files:
This runs node --watch index.js (built into Node.js 18+, no extra tools needed).

Production with PM2

For a long-running production deployment, PM2 manages the process, restarts it on crash, and survives reboots.
1

Install PM2 globally

2

Start Reacher with PM2

3

Save the process list and enable startup

Run the command that pm2 startup prints — this registers PM2 to launch on system boot.

Useful PM2 commands

Health check

Updating

1

Pull the latest code

2

Install any new dependencies

3

Restart the server

Exposing Reacher publicly

The server listens on http://localhost:3000 by default. Claude.ai requires a public HTTPS URL to connect. The standard approach on a VPS is a reverse proxy. Caddy handles HTTPS certificate provisioning automatically:
With Nginx, add a server block that proxies to port 3000 and configure Certbot for TLS.
Cloud platforms like EasyPanel, Railway, and Render handle HTTPS automatically if you prefer not to manage a reverse proxy yourself. See the other deployment guides for those options.