mirror of
https://github.com/Such-Software/xmrcheckout.git
synced 2026-10-17 05:51:34 +02:00
d09d73a6536ad75e067dd876770f64f58d86b322
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)
- Copy the environment template and fill in required values:
cp .env.example .env
- Set required values in
.env:
POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DBAPI_KEYS,API_KEY_ENCRYPTION_KEYSITE_URL(public URL for the UI)- Monero view-only wallet settings (
MONERO_WALLET_RPC_*) and daemon URL MONERO_DAEMON_URLif you use your own daemon
- 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
- Set
- Or point to an external wallet-rpc service:
- Set
MONERO_WALLET_RPC_URLS,MONERO_WALLET_RPC_USER,MONERO_WALLET_RPC_PASSWORD, andMONERO_WALLET_RPC_WALLET_PASSWORD
- Set
- 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_ADDRESSandFOUNDER_VIEW_KEY
The UI uses the same flag (via Compose), so /donate stays unavailable
unless donations are explicitly enabled.
Run the API (Python)
- Set environment variables (see
api/.env.example):
export DATABASE_URL=postgresql://xmrcheckout:xmrcheckout@localhost:5432/xmrcheckout
export API_KEYS=change-me-1
- Install dependencies:
python -m venv .venv
source .venv/bin/activate
pip install -r api/requirements.txt
- Start the API:
uvicorn api.app.main:app --reload
The API listens on http://127.0.0.1:8000.
Languages
TypeScript
67.1%
Python
28.5%
CSS
3.1%
JavaScript
0.6%
Dockerfile
0.4%
Other
0.3%