Easy setup (Railway)

One service. Config is automated. You attach a volume once, open the public URL, then finish secrets in our dashboard Settings UI.

Memecoin LP can wipe a wallet. Not financial advice. Burner only.

What’s automated

The repo ships a railway.toml so Railway builds the dashboard and runs farmer + dash together in one service. On boot it:

  • Defaults to FARMER_MODE=paper (safe)
  • Listens on Railway’s public PORT
  • Seeds persistent config.toml + .env on the volume
  • Auto-generates a DASH_TOKEN if you didn’t set one (printed in logs)

Volumes still can’t be declared in TOML (Railway limitation). Attaching /app/data once is the only infra click left.

Deploy (3 steps)

  1. Sign up & deploy the repo

    railway.com?referralCode=SCj9lNNew Project → Deploy from GitHubCryptoGnome/dlmmbot (or your fork).

    One service is enough. Start/build commands come from railway.toml — you should not need to type them.

  2. Attach a volume at /app/data

    Service → click the service → Volumes → Add → mount path /app/data. This keeps SQLite, Settings, and your token across redeploys.

    Redeploy after attaching so the mount is live.

  3. Generate a public domain

    Settings → Networking → Generate domain. That’s your dashboard URL.

Open the dashboard

Open the public URL. If you didn’t set DASH_TOKEN, check Deploy logs for [railway] generated DASH_TOKEN=… and paste that token.

Optional but recommended: copy that token into Railway Variables as DASH_TOKEN so it never rotates.

Finish in our Settings UI

With the volume attached, Settings writes persist on disk. In the dash:

  • Leave paper mode until you’re comfortable
  • Add private RPC_URL when ready (public RPC is ok for a short paper smoke test)
  • When going live: burner WALLET_PRIVATE_KEY + JUPITER_API_KEY
  • Tune token-safety / sizing knobs as you like

Never use your main wallet. Burner only.

Going live

Real SOL. Burner only. One farmer process per wallet.

  • Paper looked sane
  • Burner + private RPC + Jupiter set (Settings or Railway Variables)
  • Set FARMER_MODE=live (Railway variable or Settings)
  • Set [exec] mode = "live" in Settings / config
  • Restart / redeploy so both switches are live

Live requires both env and config. One alone stays safe.

Cost

Trial credits, then Hobby (~$5) + usage is the realistic always-on floor (volume needs a paid plan tier). Pricing. Own hardware: Advanced.

Troubleshooting

SymptomFix
Build fails on native moduleNode 20 (Railpack default); check better-sqlite3 logs
Dash unauthorizedToken from logs or Railway DASH_TOKEN
History / Settings wipedVolume at /app/data, then redeploy
Healthcheck failingWait for first build; path is /health
Want local / PM2Advanced setup