# Architecture
BTCPay Server is a project which ties together several Bitcoin-related components into a coherent user experience for installing and managing your own payment processor.
The minimal setup involves:
- BTCPay Server (opens new window)
- NBXplorer (opens new window) (Lightweight block explorer, responsible for tracking payments)
- Bitcoin Core
- PostgreSQL
Additionally, if you need Lightning Network access, NBXplorer supports connections to:
- Core Lightning (CLN) (via unix sockets)
- LND (via the REST interface)
Video below shows BTCPay Architecture in-depth.
We provide several ways of deploying BTCPay Server, depending on whether you favor flexibility or ease-of-use.
From the easiest way to the hardest:
- Web-Interface LunaNode deployment
- Azure deployment (Using a one-click deploy on Microsoft Azure)
- Docker deployment (Using a
docker-compose.yml
file which bundle all the dependencies together, in almost any environment) - Manual deployment (Downloading, building and running all the dependencies by yourself)
Some community members also offer third-party hosting (Having someone else manage BTCPay Server for you).
Remember the huge value of having direct control of your wallet and web service; for this reason we recommend you use Azure deployment or Web-Interface deployment and do the setup yourself - it is pretty easy!