btcpayserver/README.md

288 lines
11 KiB
Markdown
Raw Normal View History

2017-09-13 08:47:34 +02:00
# BTCPay Server
2021-01-29 12:19:51 +01:00
![BTCPay Server](BTCPayServer/wwwroot/img/btc_pay_BG_twitter.png)
2021-01-29 12:19:51 +01:00
<h3 align="center">
Accept Bitcoin payments ₿
</h3>
2021-05-13 10:31:08 +02:00
<p align="center"> BTCPay Server is a free and open-source Bitcoin payment processor which allows you to accept bitcoin without fees or intermediaries.
2021-01-29 12:19:51 +01:00
</p>
<p align="center">
<a href="https://circleci.com/gh/btcpayserver/btcpayserver">
<img src="https://img.shields.io/circleci/build/github/btcpayserver/btcpayserver"/>
</a>
<a href="https://github.com/btcpayserver/btcpayserver/releases/">
<img src="https://img.shields.io/github/v/release/btcpayserver/btcpayserver"/>
</a>
<a href="https://github.com/btcpayserver/btcpayserver/blob/master/LICENSE">
<img src="https://img.shields.io/github/license/btcpayserver/btcpayserver"/>
</a>
<a href="https://docs.btcpayserver.org/Contribute/">
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg"/>
</a>
<a href="https://chat.btcpayserver.org/">
<img src="https://img.shields.io/badge/Community%20Chat-Mattermost-%230058cc"/>
</a>
<a href="https://twitter.com/intent/follow?screen_name=btcpayserver">
<img src="https://img.shields.io/twitter/follow/btcpayserver.svg?label=Follow%20@btcpayserver"/>
</a>
</p>
<div align="center">
<h3>
<a href="https://btcpayserver.org">
Website
</a>
<span> | </span>
<a href="https://docs.btcpayserver.org">
Documentation
</a>
<span> | </span>
<a href="https://docs.btcpayserver.org/API/Greenfield/v1/">
API
</a>
<span> | </span>
2021-03-07 12:54:36 +01:00
<a href="https://docs.btcpayserver.org/Contribute/">
2021-01-29 12:19:51 +01:00
Contribute
</a>
<span> | </span>
<a href="https://www.youtube.com/btcpayserver/">
YouTube
</a>
<span> | </span>
<a href="https://chat.btcpayserver.org/">
Chat
</a>
</h3>
</div>
<div align="center">
<sub>"This is lies, my trust in you is broken, I will make you obsolete" 💚
</a>
</div>
<br/>
<p align="center">
<a href="https://mainnet.demo.btcpayserver.org">View Demo</a>
·
<a href="https://github.com/btcpayserver/btcpayserver/issues/new/choose">Report a bug</a>
·
<a href="https://github.com/btcpayserver/btcpayserver/discussions/new">Request a feature</a>
·
<a href="https://docs.btcpayserver.org/FAQ/">FAQ</a>
</p>
## 💼 Table of Contents
* [Features](#-features)
* [Getting Started](#-getting-started)
* [Documentation](#-documentation)
* [Contributing](#-contributing)
* [Developing](#-developing)
* [API](#-api)
* [Community](#-community)
* [License](#-license)
* [Supporters](#-supporters)
![](https://raw.githubusercontent.com/btcpayserver/btcpayserver-doc/master/docs/img/BTCPayServerScreenshot.png)
## 🎨 Features
* Direct, peer-to-peer Bitcoin payments
* No transaction fees (other than the [network fee](https://en.bitcoin.it/wiki/Miner_fees))
2021-01-29 12:19:51 +01:00
* No fees, middleman or KYC
* Non-custodial (complete control over the private key)
* Enhanced privacy & security
* Self-hosted
* SegWit support
2021-01-29 12:19:51 +01:00
* Lightning Network support (LND, c-lightning, Eclair, and Ptarmigan)
* 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](https://docs.btcpayserver.org/Vault/) and SegWit support
* Bitcoin-only build, separate community-maintained altcoin build ([supported altcoins](https://docs.btcpayserver.org/FAQ/FAQ-Altcoin/))
2021-01-29 12:19:51 +01:00
## 🚀 Getting Started
Firstly, decide if you want to host an instance yourself or use a [third-party host](https://docs.btcpayserver.org/ThirdPartyHosting/). If you've chosen to self-host, there are plenty of documented [ways to deploy BTCPay Server](https://docs.btcpayserver.org/Deployment/).
2020-06-11 16:09:33 +02:00
After successful deployment, make sure to check our [getting started](https://docs.btcpayserver.org/RegisterAccount/) and [walkthrough](https://docs.btcpayserver.org/Walkthrough/) guides. In case you would like to use Lightning Network, see [Lightning guide](https://docs.btcpayserver.org/LightningNetwork/).
2021-01-29 12:19:51 +01:00
## 📗 Documentation
2017-10-21 13:53:48 +02:00
Please check out our [official website](https://btcpayserver.org/), [complete documentation](https://docs.btcpayserver.org/) and [FAQ](https://docs.btcpayserver.org/FAQ/) for more details.
2018-03-02 21:04:00 +01:00
If you have trouble using BTCPay Server, consider joining [communities listed on the official website](https://btcpayserver.org/#communityCTA) to get help from other contributors. Only create a [GitHub issue](https://github.com/btcpayserver/btcpayserver/issues/new/choose) for technical issues you can't resolve through other channels or feature requests you've validated with other members of the community.
2021-01-29 12:19:51 +01:00
## 🤝 Contributing
2021-01-29 12:19:51 +01:00
BTCPay Server is built and maintained entirely by volunteer contributors around the internet. We welcome and appreciate new contributions.
2019-04-10 20:37:37 +02:00
If you're a developer looking to help, but you're not sure where to begin, check the [good first issue label](https://github.com/btcpayserver/btcpayserver/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22), which contains small pieces of work that have been specifically flagged as being friendly to new contributors.
2021-01-29 12:19:51 +01:00
Contributors looking to do something a bit more challenging, before opening a pull request, please join [our community chat](https://chat.btcpayserver.org/) or [start a GitHub discussion](https://github.com/btcpayserver/btcpayserver/discussions) to get early feedback, discuss 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](https://docs.btcpayserver.org/Contribute/). To get the big-picture of the project development, visit our [evolving roadmap](https://github.com/orgs/btcpayserver/projects/9). We organize different types of community calls several times a month. [Subscribe to our calendar](https://github.com/btcpayserver/organization#calendar) and feel free to join our calls to discuss development, design, documentation and more.
## 🧑‍💻 Developing
To begin developing locally, visit our [local development guide](https://docs.btcpayserver.org/LocalDevelopment/). There are also several video-tutorials:
2019-04-10 20:37:37 +02:00
2020-07-23 09:45:40 +02:00
* [Setting up development environment on Windows](https://www.youtube.com/watch?v=ZePbMPSIvHM)
* [Setting up development environment Linux (Ubuntu)](https://www.youtube.com/watch?v=j486T_Rk-yw&t)
* [Setting up development environment MacOS](https://www.youtube.com/watch?v=GWR_CcMsEV0)
2019-04-12 11:03:05 +02:00
2021-01-29 12:19:51 +01:00
### How to build
2021-01-29 12:19:51 +01:00
While the documentation advises using docker-compose, you may want to build BTCPay Server yourself.
2018-03-05 16:58:27 +01:00
First, install .NET Core SDK v3.1 as specified by the [Microsoft website](https://dotnet.microsoft.com/download/dotnet-core/3.1).
2018-03-06 15:35:20 +01:00
2018-03-06 15:18:00 +01:00
On Powershell:
2020-07-23 09:45:40 +02:00
```powershell
2018-03-06 15:18:00 +01:00
.\build.ps1
```
On linux:
2020-07-23 09:45:40 +02:00
```sh
2018-03-06 15:40:21 +01:00
./build.sh
2018-03-05 16:58:27 +01:00
```
2021-01-29 12:19:51 +01:00
### How to run
2018-03-05 16:58:27 +01:00
2021-01-29 12:19:51 +01:00
Use the `run` scripts to run BTCPay Server, this example shows how to print the available command-line arguments of BTCPay Server.
2018-03-06 15:18:00 +01:00
On Powershell:
2020-07-23 09:45:40 +02:00
```powershell
2018-03-06 15:18:00 +01:00
.\run.ps1 --help
```
On linux:
2020-07-23 09:45:40 +02:00
```sh
2018-03-06 15:40:21 +01:00
./run.sh --help
2018-03-05 16:58:27 +01:00
```
2018-03-06 15:40:21 +01:00
2021-01-29 12:19:51 +01:00
### How to debug
If you want to debug, use Visual Studio Code or Visual Studio 2019.
2020-07-23 09:45:40 +02:00
You need to run the development time docker-compose as described [in the test guide](./BTCPayServer.Tests/README.md).
You can then run the debugger by using the Launch Profile `Docker-Regtest` on either Visual Studio Code or Visual Studio 2017.
If you need to debug ledger wallet interaction, install the development time certificate with:
```bash
# Install development time certificate in the trust store
dotnet dev-certs https --trust
```
Then use the `Docker-Regtest-https` debug profile.
2021-01-29 12:19:51 +01:00
### Other dependencies
2018-03-06 15:40:21 +01:00
2020-07-23 09:45:40 +02:00
For more information, see the documentation:
2021-01-29 12:19:51 +01:00
[How to deploy a BTCPay Server instance](https://docs.btcpayserver.org/Deployment/).
### 🧪 API
2021-10-02 08:10:43 +02:00
BTCPay Server has two APIs:
2021-01-29 12:19:51 +01:00
- **Greenfield API (New)**
- [Greenfield API documentation](https://docs.btcpayserver.org/API/Greenfield/v1/)
- [Greenfield API examples with CURL](https://docs.btcpayserver.org/GreenFieldExample/)
- **Legacy API**
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](https://bitpay.com/api/). It has limited features, but allows instant migration from BitPay.
2019-04-10 19:30:54 +02:00
2021-01-29 12:19:51 +01:00
## 💚 Community
2019-04-10 19:30:54 +02:00
Our community is the ❤️ of the project. To chat with other community members in real-time, join our [Mattermost chat](https://chat.btcpayserver.org). We're also on [GitHub discussions](https://github.com/btcpayserver/btcpayserver/discussions).
2019-11-07 11:33:11 +01:00
2021-01-29 12:19:51 +01:00
## 📝 License
2020-02-09 19:01:52 +01:00
BTCPay Server software, logo and designs are provided under [MIT License](https://github.com/btcpayserver/btcpayserver/blob/master/LICENSE).
2021-01-29 12:19:51 +01:00
## 🙏 Supporters
2019-11-07 11:33:11 +01:00
The BTCPay Server Project is proudly supported by these entities through the [BTCPay Server Foundation](https://foundation.btcpayserver.org/).
<table>
<tbody>
<tr>
2020-06-25 10:59:36 +02:00
<td align="center" valign="middle">
<a href="https://kraken.com" target="_blank">
<img src="BTCPayServer/wwwroot/img/kraken.svg" alt="Kraken" height=100>
<br/>
<span>Kraken</span>
</a>
</td>
2019-11-07 11:33:11 +01:00
<td align="center" valign="middle">
<a href="https://twitter.com/sqcrypto" target="_blank">
2019-11-13 10:38:31 +01:00
<img src="BTCPayServer/wwwroot/img/squarecrypto.svg" alt="Square Crypto" height=100>
2019-11-07 11:33:11 +01:00
<br/>
<span>Square Crypto</span>
</a>
2019-11-13 10:38:31 +01:00
</td>
<td align="center" valign="middle">
<a href="https://www.bailliegifford.com" target="_blank">
<img src="BTCPayServer/wwwroot/img/bailliegifford.svg" alt="bailliegifford" height=100>
<br/>
<span>Baillie Gifford</span>
</a>
</td>
2021-06-14 18:17:40 +02:00
<td align="center" valign="middle">
<a href="https://www.pnxbet.com" target="_blank">
<img src="BTCPayServer/wwwroot/img/pnxbet.png" alt="PNXBET" height=100>
<br/>
<span>PNXBET</span>
</a>
</td>
2019-11-07 11:33:11 +01:00
<td align="center" valign="middle">
<a href="https://acinq.co/" target="_blank">
<img src="BTCPayServer/wwwroot/img/acinq-logo.svg" alt="ACINQ" height=100>
<br/>
<span>ACINQ</span>
</a>
</td>
2021-06-14 18:17:40 +02:00
</tr>
<tr>
2019-11-18 15:55:56 +01:00
<td align="center" valign="middle">
<a href="https://lunanode.com" target="_blank">
<img src="BTCPayServer/wwwroot/img/lunanode.svg" alt="LunaNode" height=100>
<br/>
<span>LunaNode</span>
</a>
</td>
<td align="center" valign="middle">
<a href="https://walletofsatoshi.com/" target="_blank">
<img src="BTCPayServer/wwwroot/img/walletofsatoshi.svg" alt="Wallet of Satoshi" height=100>
<br/>
<span>Wallet of Satoshi</span>
2019-11-18 15:55:56 +01:00
</a>
</td>
2020-08-25 11:43:11 +02:00
<td align="center" valign="middle">
<a href="https://nomics.com/" target="_blank">
<img src="BTCPayServer/wwwroot/img/nomics.svg" alt="Nomics" height=100>
<br/>
<span>Nomics</span>
</a>
</td>
2021-03-22 11:28:04 +01:00
<td align="center" valign="middle">
<a href="https://coincards.com/" target="_blank">
<img src="BTCPayServer/wwwroot/img/coincards.svg" alt="Coincards" height=100>
<br/>
<span>Coincards</span>
</a>
</td>
2019-11-07 11:33:11 +01:00
</tr>
</tbody>
</table>
If you'd like to support the project, please visit the [donation page](https://btcpayserver.org/donate/).