2026-01-04 17:57:07 +01:00
2026-01-04 17:57:07 +01:00
2026-01-05 12:03:03 +00:00
2026-01-04 17:57:07 +01:00
2026-01-04 17:57:07 +01:00

xmrcheckout.com

Non-custodial Monero checkout software. Payments go directly from the customer to the merchant. This project never requests spend keys and never moves funds.

Run the homepage

Docker

docker build -t xmrcheckout-home .
docker run --rm -p 8080:80 xmrcheckout-home

Open http://localhost:8080 for the homepage.

Run the full stack locally (Docker Compose)

docker compose up --build

Open https://localhost for the UI (HTTP redirects to HTTPS). The API runs on http://127.0.0.1:8000 and Postgres on port 5432.

Self-hosted deployment (Docker Compose)

  1. Copy the environment template and fill in required values:
cp .env.example .env
  1. Set required values in .env:
  • POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB
  • API_KEYS, API_KEY_ENCRYPTION_KEY
  • SITE_URL (public URL for the UI)
  • Monero view-only wallet settings (MONERO_WALLET_RPC_*) and daemon URL
  • MONERO_DAEMON_URL if you use your own daemon
  1. Choose a wallet-rpc target and provision view-only wallets:
  • Use the bundled wallet-rpc containers:
    • Set MONERO_WALLET_RPC_URLS=http://wallet-rpc-reconciler-1:18083,http://wallet-rpc-reconciler-2:18083,http://wallet-rpc-reconciler-3:18083
  • Or point to an external wallet-rpc service:
    • Set MONERO_WALLET_RPC_URLS, MONERO_WALLET_RPC_USER, MONERO_WALLET_RPC_PASSWORD, and MONERO_WALLET_RPC_WALLET_PASSWORD
  1. Start the stack:
docker compose up --build -d

Donations (disabled by default)

Donation endpoints and UI are off by default for self-hosted deployments. To enable donations:

  • Set DONATIONS_ENABLED=true
  • Set FOUNDER_PAYMENT_ADDRESS and FOUNDER_VIEW_KEY

The UI uses the same flag (via Compose), so /donate stays unavailable unless donations are explicitly enabled.

Run the API (Python)

  1. Set environment variables (see api/.env.example):
export DATABASE_URL=postgresql://xmrcheckout:xmrcheckout@localhost:5432/xmrcheckout
export API_KEYS=change-me-1
  1. Install dependencies:
python -m venv .venv
source .venv/bin/activate
pip install -r api/requirements.txt
  1. Start the API:
uvicorn api.app.main:app --reload

The API listens on http://127.0.0.1:8000.

S
Description
No description provided
Readme MIT
5.4 MiB
Languages
TypeScript 67.1%
Python 28.5%
CSS 3.1%
JavaScript 0.6%
Dockerfile 0.4%
Other 0.3%