C 28a01398fd Add PostgreSQL support for mint and wallet (#878) 1 månad sedan
..
src 28a01398fd Add PostgreSQL support for mint and wallet (#878) 1 månad sedan
Cargo.toml 28a01398fd Add PostgreSQL support for mint and wallet (#878) 1 månad sedan
README.md 28a01398fd Add PostgreSQL support for mint and wallet (#878) 1 månad sedan
example.config.toml 28a01398fd Add PostgreSQL support for mint and wallet (#878) 1 månad sedan

README.md

CDK Mintd

crates.io Documentation MIT licensed

ALPHA This library is in early development, the API will change and should be used with caution.

Cashu mint daemon implementation for the Cashu Development Kit (CDK). This binary provides a complete Cashu mint server implementation with support for multiple database backends and Lightning Network integrations.

Features

  • Multiple Database Backends: SQLite and PostgreSQL
  • Lightning Network Integration: Support for CLN, LND, LNbits, and test backends
  • Authentication: Optional user authentication with OpenID Connect
  • Management RPC: gRPC interface for mint management
  • Docker Support: Ready-to-use Docker configurations

Installation

From crates.io:

cargo install cdk-mintd

From source:

cargo install --path .

Quick Start

Using SQLite (Default)

# Start with SQLite (no additional setup required)
cdk-mintd

Using PostgreSQL

# Set environment variables
export CDK_MINTD_DATABASE=postgres
export CDK_MINTD_DATABASE_URL="postgresql://postgres:password@localhost:5432/cdk_mint"

# Start the mint
cdk-mintd

Using Docker

# SQLite
docker-compose up

# PostgreSQL
docker-compose -f docker-compose.postgres.yaml up

Configuration

The mint can be configured through environment variables or a configuration file. See example.config.toml for all available options.

Database Configuration

SQLite (Default)

[database]
engine = "sqlite"

PostgreSQL

[database]
engine = "postgres"

Set CDK_MINTD_DATABASE_URL environment variable for connection string.

ReDB

[database]
engine = "redb"

Lightning Backend Configuration

[ln]
ln_backend = "fakewallet"  # Options: cln, lnd, lnbits, fakewallet

Usage

# Start the mint with default configuration
cdk-mintd

# Start with custom config file
cdk-mintd --config /path/to/config.toml

# Start with specific work directory
cdk-mintd --work-dir /path/to/work/dir

# Show help
cdk-mintd --help

Environment Variables

Key environment variables:

  • CDK_MINTD_DATABASE: Database engine (sqlite/postgres/redb)
  • CDK_MINTD_DATABASE_URL: PostgreSQL connection string
  • CDK_MINTD_LN_BACKEND: Lightning backend type
  • CDK_MINTD_LISTEN_HOST: Host to bind to
  • CDK_MINTD_LISTEN_PORT: Port to bind to

Documentation

License

This project is licensed under the MIT License.