Розгортання BTCPay Server

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розгортання BTCPay Server
Середній
~3-5 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1307
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1219
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    920
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1148
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    611
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    886

Розгортування BTCPay Server

BTCPay Server — це self-hosted платіжний процесор з відкритим кодом. Без комісій процесора, без залежності від третіх сторін, повний контроль над ключами. Підтримує Bitcoin, Lightning Network, Monero, Litecoin та кілька десятків інших монет через плагіни. Хорошо підходить для магазинів, донатів, виставлення рахунків.

Це не тривіальний деплой CRUD-додатку. BTCPay витягує Bitcoin Core (або Neutrino), NBXplorer (кастомний індексер), Postgres та опціонально LND/CLN/Eclair для Lightning. Повний стек на Docker Compose займає 15–30 GB на диску та потребує 4+ GB RAM лише для синхронізації.

Вимоги до сервера

Конфігурація RAM Диск Процесор
Мінімум (mainnet, без Lightning) 4 GB 700 GB HDD / 500 GB SSD 2 vCPU
Рекомендується (з Lightning) 8 GB 700 GB SSD 4 vCPU
Для високої нагрузки 16+ GB 1 TB NVMe 8 vCPU

Bitcoin Core на mainnet потребує ~600–650 GB для повної ноди. Можна використовувати pruned ноду (економія місця), але тоді BTCPay не зможе робити rescan — якщо адреса додана після синхронізації, старі транзакції не будуть видні. Для прийому нових платежів pruned нода працює коректно.

ОС: Ubuntu 22.04 LTS або Debian 12 — офіційно підтримувані.

Установка через BTCPay Server Configurator (Docker)

Офіційний та рекомендований спосіб:

# Установка залежностей
apt-get update && apt-get install -y curl git

# Загрузка та запуск установщика
curl -sSL https://btcpayserver.org/install.sh | sudo bash

Це запустить інтерактивний конфігуратор. Але краще розуміти, що відбувається під капотом, і робити це вручну:

# Клонування конфігів
git clone https://github.com/btcpayserver/btcpayserver-docker
cd btcpayserver-docker

# Налаштування змінних окруження
export BTCPAY_HOST="pay.yourdomain.com"
export NBITCOIN_NETWORK="mainnet"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_LIGHTNING="lnd"           # або clightning, eclair
export BTCPAYGEN_REVERSEPROXY="nginx"      # nginx з автоматичним Let's Encrypt
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage"  # pruned нода

# Для додаткових монет:
# export BTCPAYGEN_CRYPTO2="ltc"

. ./btcpay-setup.sh -i

Прапор opt-save-storage включає pruned Bitcoin Core (256 MB pruning). Якщо потрібна повна нода — не додавати цей фрагмент.

Конфігурація DNS та HTTPS

BTCPay вимагає доменного імені — без нього не сгенерується Let's Encrypt сертифікат, а без HTTPS не заработає Lightning (потребує WSS). Делегування DNS до початку установки:

pay.yourdomain.com  A  <server-ip>

Перевірте до деплоя:

dig +short pay.yourdomain.com
# Повинен повернути IP сервера

Let's Encrypt через certbot інтегрований у Docker Compose конфіг автоматично при використанні nginx reverse proxy.

Lightning Network: LND vs CLN

LND (Lightning Network Daemon, Go) — більш розповсюджений, краще документований для розробників, має REST та gRPC API, інтеграції з більшістю інструментів. Рекомендую для нових проектів.

CLN (Core Lightning, C) — більш легковісний, модульна архітектура через плагіни, більш тісно слідує специфікаціям BOLT. Переважний, якщо вам потрібні кастомні плагіни або routing node.

Обидва працюють корректно з BTCPay. Різниця ощутима при інтеграції сторонніх сервісів — там частіше трапляється підтримка LND.

Первоначальна налаштування Lightning

Після синхронізації Bitcoin Core:

# Входити в контейнер LND
docker exec -it $(docker ps -q -f name=lnd) bash

# Створити гаманець (seed фраза — зберегти в cold storage!)
lncli create

# Отримати адресу для поповнення
lncli newaddress p2wkh

# Після поповнення: відкрити канали
lncli connect 03...@host:9735
lncli openchannel --node_key=03... --local_amt=1000000  # 0.01 BTC у сатоші

Для production Lightning node потрібна ліквідність. Мінімум — 3–5 каналів з добре пов'язаними нодами (ACINQ, WalletOfSatoshi, Bitfinex). Для вхідної ліквідності (отримання платежів) потрібні вхідні канали — купити через Lightning Pool або Amboss Magma.

Резервне копіювання

Три компоненти, що вимагають регулярного бекапу:

Bitcoin Core wallet — не критично, якщо використовується лише як нода (ключі зберігаються в BTCPay/NBXplorer).

LND channel backups (SCB) — критично. Static Channel Backup дозволяє закрити канали при втраті ноди. Автоматично оновлюється при кожній зміні каналів:

# Шлях до файлу SCB у контейнері
/root/.lnd/data/chain/bitcoin/mainnet/channel.backup

# Налаштувати cron для копіювання на S3/Backblaze
0 * * * * docker cp $(docker ps -q -f name=lnd):/root/.lnd/data/chain/bitcoin/mainnet/channel.backup /backup/lnd-$(date +%Y%m%d-%H%M).backup

PostgreSQL база — BTCPay зберігає всі дані магазину, рахунки, конфігурацію:

# Дамп бази
docker exec -t btcpayserver_postgres pg_dump -U postgres btcpayserver | gzip > /backup/btcpay-$(date +%Y%m%d).sql.gz

Моніторинг

Після деплоя додайте моніторинг через BTCPay Health endpoint:

# Health check
curl https://pay.yourdomain.com/health

# Або через API для моніторингу Grafana/Prometheus

BTCPay Server має вбудовану сторінку /server/services зі станом усіх сервісів. Рекомендую налаштувати зовнішній uptime monitor (UptimeRobot, BetterUptime) на цей endpoint.

Повний деплой від нуля до рабочого стану: установка сервера + конфігурація DNS + деплой BTCPay — 2–4 години. Синхронізація Bitcoin Core mainnet — 12–48 годин залежно від швидкості диска. Налаштування Lightning з каналами — ще один день.