Skip to content

Repository files navigation

BTCPayServerPlugins.RockstarDev

CodeRabbit Pull Request Reviews A multi-plugin repository for BTCPay Server, built as an evolution of the official btcpayserver-plugin-template.

While the official template provides a starting point for a single plugin, this repository adds the structure needed to develop, test, and maintain multiple plugins in one place:

  • ConfigBuilder - a CLI tool that auto-generates appsettings.dev.json by scanning the Plugins/ directory and resolving each plugin's built DLL. No more manually updating DEBUG_PLUGINS paths when adding or removing plugins.
  • Multi-plugin solution - all plugins, the BTCPay Server submodule, and the shared test project live in one .sln. Build everything at once.
  • Shared test infrastructure - a single BTCPayServer.Plugins.Tests project with Playwright-based UI tests covering multiple plugins.
  • CI/CD - GitHub Actions workflow that builds the full solution, runs ConfigBuilder, and executes Playwright tests against a Docker-based BTCPay Server instance.

Plugins

Plugin Description
AdminPassReset Reset administrator password from the command line
BitcoinStacker Auto-purchase Bitcoin on exchanges (Strike) from fiat income platforms (Stripe)
MarkPaidCheckout Mark invoices as paid/settled manually from the checkout page
Payroll Manage and process payroll payments via BTCPay Server
RockstarStrikeUtils Collection of Strike platform utilities
Stripe Stripe payment integration for BTCPay Server
TransactionCounter Track and display transaction counts
Vouchers Create and manage payment vouchers
WalletHistoryReload Reload wallet transaction history from the blockchain
WalletSweeper Sweep funds from external wallets into BTCPay Server
XpubExtractor Extract extended public keys from wallet configurations

Each plugin in Plugins/ has its own README with details specific to that plugin.

Getting Started

Prerequisites

Clone and Build

git clone --recurse-submodules https://github.com/rockstardev/BTCPayServerPlugins.RockstarDev.git
cd BTCPayServerPlugins.RockstarDev
dotnet build

Configure for Local Development

Run ConfigBuilder to generate appsettings.dev.json with all plugin DLL paths:

dotnet run --project ConfigBuilder

This writes submodules/btcpayserver/BTCPayServer/appsettings.dev.json with the DEBUG_PLUGINS value pointing to every plugin's built DLL. BTCPay Server picks this up on startup and loads your plugins.

Run BTCPay Server with Plugins

cd submodules/btcpayserver
dotnet run --project BTCPayServer

Your plugins will be loaded automatically.

Run Tests

# Start the test infrastructure
docker compose -f submodules/btcpayserver/BTCPayServer.Tests/docker-compose.yml up -d dev

# Run Playwright UI tests
dotnet test BTCPayServer.Plugins.Tests --filter "Category=PlaywrightUITest"

# Cleanup
docker compose -f submodules/btcpayserver/BTCPayServer.Tests/docker-compose.yml down --volumes

Adding a New Plugin

  1. Create a new folder under Plugins/ (e.g., Plugins/BTCPayServer.RockstarDev.Plugins.MyPlugin/)
  2. Add your .csproj referencing BTCPayServer.Abstractions
  3. Add the project to BTCPayServerPlugins.RockstarDev.sln
  4. Run dotnet run --project ConfigBuilder to auto-detect the new plugin
  5. Build and test

See the BTCPay Server Plugin Development Guide for details on plugin APIs, database integration, UI extensions, and publishing.

How It Compares to the Plugin Template

The btcpayserver-plugin-template is a great starting point for your first plugin. This repository takes it further:

Plugin Template This Repository
Plugins per repo 1 Many
DEBUG_PLUGINS setup Manual path in appsettings.dev.json Auto-generated by ConfigBuilder
Test infrastructure None Shared Playwright test project
CI/CD None GitHub Actions with Docker
BTCPay Server reference Git submodule Git submodule

If you are building a single plugin, start with the template. If you are maintaining multiple plugins or want a batteries-included development setup, fork this repository.

License

MIT

About

No description, website, or topics provided.

Resources

Stars

13 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages