Accept Bitcoin payments. Free, open-source & self-hosted, Bitcoin payment processor.
Find a file
d11n 14113f9468
Add setup script for dev basics like users and stores (#5987)
* Add setup script for dev basics like users and stores

I'm using and extending this script for setting up the basics after I erase my dev containers. Once you clean out everything with `cd BTCPayServer.Tests && docker-compose down --volumes --remove-orphans && docker-compose up dev` you otherwise have to recreate everything manually. This gives you ...

- An admin user with unrestricted API key
- One additional user per default role
- Store 1: Satoshis Steaks with Hot Wallet and Internal Node (and all users assigned to that store)
- Store 2: Nakamoto Nuggets with Hot Wallet and Merchant LND Lightning node (and all users besides Guest assigned to that store)
- Nakamoto Nuggets also gets Cart and Keypad apps
- Store 3 with External Lightning based store with Customer LND Lightning node

## Sample output

```bash
Admin ID: 78aa0b35-6c72-45ac-a7d4-b7976ebbbb62
Admin API Key: 992023ae659295b14c3b429007bbf67c2fec057d

Store Owner ID: e3151462-b0f8-4342-879e-16e42d3432d9
Store Manager ID: d0f11a4d-7c9f-466d-bbb9-dfba09295446
Store Employee ID: 13a882de-65f1-4be9-819e-be058e54a8a9

Satoshis Steaks Store ID: FDyaDcDxtSnNx77nEtT8VL55tcitcrV3Zoj5B6eoByEL

Nakamoto Nuggets Store ID: 8uJqvtPnvCU1XXBiSNBLGEn5XinwC1qYcyP495pPzn9a
Nakamoto Nuggets Keypad POS ID: 2q3Z6b8RUfwrvMyYngNAbj8kPqU8
Nakamoto Nuggets Cart POS ID: 2TfyrzZjiWnYp9QwWyy4U7y5dAFP

External Lightning Store ID: Cr56Ch7h3cgGPcbsZnKWnqCisMojfAdUVJhsN3zLcqSP
```

* Fix path issue
2024-07-11 10:29:47 +09:00
.circleci Use buildx for creating and pushing docker images (#5592) 2023-12-22 14:23:04 +09:00
.github Fix codeql config to not scan vendor js, add it to solution 2023-05-23 10:38:59 +09:00
.vscode Update .NET 8.0 in vscode launch.json (#5805) 2024-03-01 22:07:34 +01:00
BTCPayServer Disable plugins if they crash the Dashboard page (#6099) 2024-07-11 10:20:02 +09:00
BTCPayServer.Abstractions Bump EF libs (#6096) 2024-07-11 10:08:33 +09:00
BTCPayServer.Client Fix tests (#6060) 2024-07-11 10:25:39 +09:00
BTCPayServer.Common Fix: Some valid taproot PSBT couldn't parsed and show better error message (Fix #5715) (#5993) 2024-05-23 19:16:53 +09:00
BTCPayServer.Data Bump EF libs (#6096) 2024-07-11 10:08:33 +09:00
BTCPayServer.PluginPacker Do not crash the plugin packer if Assembly.GetTypes crashes 2024-06-21 10:16:55 +09:00
BTCPayServer.Rating Bump EF libs (#6096) 2024-07-11 10:08:33 +09:00
BTCPayServer.Tests Add setup script for dev basics like users and stores (#5987) 2024-07-11 10:29:47 +09:00
Build bump v 2024-06-13 14:48:48 +02:00
docs Greenfield API clarifications, fix typo subscriptions -> registrations (#5955) 2024-05-23 19:20:25 +09:00
.dockerignore
.editorconfig Code formatting updates (#4502) 2023-01-06 22:18:07 +09:00
.gitattributes
.gitignore Crowdfund : Add Buyer information / Additional information(forms) like POS (#5659) 2024-02-21 14:41:21 +01:00
btcpayserver.sln Use buildx for creating and pushing docker images (#5592) 2023-12-22 14:23:04 +09:00
btcpayserver.sln.DotSettings Support accepting 0 amount bolt 11 invoices for payouts (#4014) 2023-07-24 20:40:26 +09:00
build.ps1 Fix build and run scripts (#4655) 2023-02-16 18:31:33 +09:00
build.sh Fix build and run scripts (#4655) 2023-02-16 18:31:33 +09:00
Changelog.md v1.13.3: Add Changelog (#6048) 2024-06-13 14:47:17 +02:00
docker-entrypoint.sh Make BTCPay ssh key using safe algo 2022-07-08 16:32:43 +09:00
Dockerfile Bump dependencies (#5996) 2024-05-23 22:18:30 +09:00
LICENSE Update license (#4480) 2023-01-06 16:19:02 +01:00
nuget.config Add a test catching expirationTime bug (#1336) 2020-03-10 17:11:15 +09:00
publish-docker.ps1 Improve publish docker script 2023-02-26 00:19:59 +09:00
README.md Adding Tether as BTCPay Server Foundation Supporter (#5891) 2024-04-09 11:12:06 +09:00
RELEASE-CHECKLIST.md Add missing file 2020-06-28 18:00:51 +09:00
RELEASE-CYCLES.md Create RELEASE-CYCLES.md 2024-01-20 13:44:39 +01:00
run.ps1 Fix build and run scripts (#4655) 2023-02-16 18:31:33 +09:00
run.sh Fix build and run scripts (#4655) 2023-02-16 18:31:33 +09:00
SECURITY.md Security Page Refactor (#4815) 2023-04-24 15:04:56 +09:00

BTCPay Server

BTCPay Server

Accept Bitcoin payments โ‚ฟ

BTCPay Server is a free and open-source Bitcoin payment processor which allows you to accept bitcoin without fees or intermediaries.

"This is lies, my trust in you is broken, I will make you obsolete" ๐Ÿ’š

View Demo ยท Report a bug ยท Request a feature ยท FAQ

๐Ÿ’ผ Table of Contents

๐ŸŽจ Features

  • Direct, peer-to-peer Bitcoin payments
  • No transaction fees (other than the network fee)
  • No fees, middleman or KYC
  • Non-custodial (complete control over the private key)
  • Enhanced privacy & security
  • Self-hosted
  • SegWit support
  • Lightning Network support (LND, Core Lightning (CLN), Eclair)
  • Tor support
  • Share your instance with friends (multi-tenant)
  • Invoice management and Payment requests
  • Apps: Point of sale, crowdfunding, donation button
  • Full-node reliant wallet with hardware wallet integration and SegWit support
  • Bitcoin-only build, separate community-maintained altcoin build (supported altcoins)

๐Ÿš€ Getting Started

Firstly, decide if you want to host an instance yourself or use a third-party host. If you've chosen to self-host, there are plenty of documented ways to deploy BTCPay Server.

After successful deployment, make sure to check our getting started and walkthrough guides. In case you would like to use Lightning Network, see Lightning guide.

๐Ÿ“— Documentation

Please check out our official website, complete documentation and FAQ for more details.

If you have trouble using BTCPay Server, consider joining communities listed on the official website to get help from other contributors. Only create a GitHub issue for technical issues you can't resolve through other channels or feature requests you've validated with other members of the community.

๐Ÿค Contributing

BTCPay Server is built and maintained entirely by volunteer contributors around the internet. We welcome and appreciate new contributions.

If you're a developer looking to help, but you're not sure where to begin, check the good first issue label, which contains small pieces of work that have been specifically flagged as being friendly to new contributors.

Contributors looking to do something a bit more challenging, before opening a pull request, please join our community chat or start a GitHub discussion to get early feedback, discuss the best ways to tackle the problem, and ensure there is no work duplication.

There are many other ways to get involved with the project. Check our contribution guidelines. To get the big-picture of the project development, visit our evolving roadmap.

๐Ÿง‘โ€๐Ÿ’ป Developing

To begin developing locally, visit our local development guide. There are also several video-tutorials:

How to build

While the documentation advises using docker-compose, you may want to build BTCPay Server yourself.

First, install .NET SDK v8.0 as specified by the Microsoft website.

On Powershell:

.\build.ps1

On linux:

./build.sh

How to run

Use the run scripts to run BTCPay Server, this example shows how to print the available command-line arguments of BTCPay Server.

On Powershell:

.\run.ps1 --help

On linux:

./run.sh --help

How to debug

If you want to debug, use Jetbrain's Rider or Visual Studio 2022.

You need to run the development time docker-compose as described in the test guide.

You can then run the debugger by using the Launch Profile Docker-Regtest.

If you need to debug ledger wallet interaction, install the development time certificate with:

# Install development time certificate in the trust store
dotnet dev-certs https --trust

Then use the Docker-Regtest-https debug profile.

Other dependencies

For more information, see the documentation: How to deploy a BTCPay Server instance.

๐Ÿงช API

BTCPay Server has two APIs:

The Greenfield API is our brand-new API which is still in development. Once complete, it will allow you to run BTCPay Server headlessly. The Legacy API, is fully compatible with BitPay's API. It has limited features, but allows instant migration from BitPay.

๐Ÿ’š Community

Our community is the โค๏ธ of the project. To chat with other community members in real-time, join our Mattermost chat. We're also on GitHub discussions.

๐Ÿ“ License

BTCPay Server software, logo and designs are provided under MIT License.

๐Ÿ™ Supporters

The BTCPay Server Project is proudly supported by these entities through the BTCPay Server Foundation.

Spiral OpenSats Baillie Gifford Tether Human Rights Foundation Strike LunaNode Wallet of Satoshi Coincards IVPN

If you'd like to support the project, please visit the donation page.