Receipts docs
v1.0.0
Live demo Get help
● Start · 10 minutes

Quick start
running on your computer.

The shortest way from the package to a running site and an operator console on your own computer. It assumes Node.js 20.12 or newer; if not, see Requirements first.

01Before you start

  • node -v prints v20.12 or higher (22 LTS recommended).
  • pnpm -v answers (corepack enable ships with Node; or npm install -g pnpm). npm works too.
  • No Stripe or Telegram keys needed for a first look.

02The ten minutes

  1. Open a terminal in the unzipped folderThe one that contains package.json.
  2. Install
    pnpm install           # or: npm install
    better-sqlite3 is a native module. If the install fails while building it, install your build tools (macOS: xcode-select --install; Ubuntu: sudo apt install -y build-essential python3) and run it again.
  3. Create the configuration
    cp .env.example .env
    For a local test set PUBLIC_URL=http://localhost:8787 in .env. Leave Stripe and Telegram empty.
  4. Start
    pnpm start             # or: npm start
  5. Claim the siteOpen http://localhost:8787, click Create account and sign up with the email in ADMIN_EMAIL, or with the setup code from the log (First run).
  6. Open the Admin consoleAfter the sign-up you are sent to http://localhost:8787/admin. Create the console owner with the same setup code, an email and a password of at least 12 characters.

03What you should see

The log prints, among others Tested:

[admin] No owner account yet. Open /admin and create it with this one-time setup code:
    XXXX-XXXX-XXXX-XXXX
[admin] The code is shown once, here only. Restarting the server issues a new one.
  No operator yet. Use the setup code printed above twice: sign up at /signup to claim this site,
  then create the console owner at /admin. (Or set ADMIN_EMAIL in .env to claim the site by email.)
Receipts listening on http://localhost:8787 (public URL http://localhost:8787) · admin console http://localhost:8787/admin
Stripe off · Telegram off · workers on

Node 22 may also print a DeprecationWarning about the punycode module. It comes from a dependency and is harmless.

  • An empty home page and leaderboard: a real install starts with no providers, no signals and no numbers.
  • http://localhost:8787/healthz answers {"ok":true,"version":"1.0.0"}.
  • The Admin console shows a warning: members have no way to pay yet. That is expected until you set a payment method (Earnings).
One setup code, two accounts

The same code claims the operator account of the marketplace (the one that sees Operations) and creates the owner of the Admin console at /admin. A new code is printed on every start until both accounts exist. Setting ADMIN_EMAIL lets you claim the site by email instead.

Want sample data?

Start once with DEMO_MODE=1 in .env to get a labelled demo checkout and labelled strategy bots that publish real, sealed signals from live prices. Only on a test copy, never on a live site.

Next

Continue with Installation for a server, or go straight to Admin console.