Advanced setup

For people with a server, or who want to run on their own PC. Most newcomers should use Easy setup (Railway).

Same risk rules: paper first, burner only, never commit .env.

When to use this

Easy (Railway)

No server. Public HTTPS. Auto-redeploy. Sign up · guide

This guide

VPS / home box / local PC with full control.

Same bot

Identical code and paper/live gates.

Local install (paper)

NeedGet itCheck
Node.js 20+ nodejs.org node -v
Git git-scm.com git --version
  1. Clone & install

    git clone https://github.com/CryptoGnome/dlmmbot.git
    cd dlmmbot
    npm install

    better-sqlite3 compiling is normal. Windows may need VS Build Tools.

  2. Create .env

    cp .env.example .env
    FARMER_MODE=paper
    RPC_URL=https://api.mainnet-beta.solana.com
  3. Force paper in config.toml

    [exec]
    mode = "paper"

    Live needs both this and FARMER_MODE=live.

  4. Run

    npm run run
    npm run status
    npm run halt

Commands

npm run scan | vet | run | status | halt | force-close | test
npm run dash:build && npm run dash

Local dashboard

DASH_TOKEN=pick-a-long-random-password
DASH_PORT=8787
npm run dash:build
npm run dash

Open http://localhost:8787 with that token.

Keys & going live

Phantom burner → WALLET_PRIVATE_KEY, private RPC, Jupiter key.

# .env
FARMER_MODE=live
RPC_URL=https://your-private-rpc
JUPITER_API_KEY=…
WALLET_PRIVATE_KEY=…
# config.toml
[exec]
mode = "live"

Burner only. One farmer process per wallet/DB.

PM2 on a VPS

npm install -g pm2
pm2 start deploy/ecosystem.config.cjs --only meteora-farmer
pm2 start deploy/ecosystem.config.cjs --only meteora-dash
pm2 save
pm2 startup
pm2 logs meteora-farmer

meteora-deploy in the same ecosystem is the git pull watcher — start it only if you want auto-updates from master.

Auto-deploy

pm2 start deploy/ecosystem.config.cjs --only meteora-deploy
pm2 save

Don’t SCP a dirty tree and expect CURRENT — push + pull (or let the watcher do it).

Dashboard from outside

  • Tailscale / ZeroTier — private access from your phone
  • Cloudflare Tunnel — public HTTPS without opening ports
  • Reverse proxy + HTTPS on a VPS with a domain

Don’t expose :8787 raw without a strong DASH_TOKEN (and HTTPS).

Troubleshooting

SymptomFix
better-sqlite3 build failVS Build Tools / build-essential
Already running / lockOnly if sure: npm run release
BEHIND on version pillStart meteora-deploy or git pull
Want the simple pathEasy setup (Railway)