Receipts docs
v1.0.0
Live demo Get help
● Start · What you need

Requirements
small server, own accounts.

What must be in place before you install, and what is optional.

01Server and software

WhatMinimumNotes
Node.js Required20.12 or newer (22 LTS recommended)The app loads .env with process.loadEnvFile, which exists from Node 20.12. Tested on Node 22.22.2.
Package managerpnpm (recommended) or npmThe release ships pnpm-lock.yaml, so pnpm installs the exact tested versions.
Server1 vCPU, 1 GB RAM VPSUbuntu 22.04 or 24.04 is assumed in these docs. No database server: all data lives in SQLite files.
Domain + TLSA domain or sub-domain you controlPoint an A record (and AAAA with IPv6) at the server. Caddy gets a free certificate automatically.
Outbound internetHTTPSBinance and Bybit (prices), OpenTimestamps calendars, and Stripe, Telegram and Discord when used.
Build toolsfor better-sqlite3Only if no prebuilt binary exists: macOS xcode-select --install; Ubuntu build-essential python3.

02Optional accounts

AccountWhat it enables
StripeCard payments for subscriptions, Provider Pro and verification fees.
A bank accountBank-transfer payments you confirm by hand.
Stablecoin wallets you controlUSDT or USDC on Tron, Ethereum, Base, BNB Chain, Polygon or Arbitrum, confirmed by hand.
Telegram botAccount linking, signal delivery, VIP groups, publishing from Telegram.
Cloudflare (or a GeoIP proxy module)Country blocking by a request header.

The site runs without all of them. Web push notifications need no account: the server makes its own keys. Discord delivery uses a webhook each provider pastes in the Studio.

03Ready checklist

  • node -v shows v20.12 or higher.
  • Your domain points at the server; ports 80 and 443 are open.
  • You have read your responsibilities: signal services are regulated in some countries.