Развертывание 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 с каналами — ещё день.