Розгортання BTCPay Server
Ви втрачаєте до 3% обороту на комісіях Stripe та ризикуєте блокуванням рахунку за криптоплатежі? Self-hosted BTCPay Server вирішує обидві проблеми: ви контролюєте ключі та не платите посередникам. Але деплой цього стеку — не docker compose up. Bitcoin Core (600+ GB диска), NBXplorer, PostgreSQL, LND та nginx з Let's Encrypt — кожну частину потрібно налаштувати під ваш VPS.
Ми допомагаємо замовникам розгорнути BTCPay Server за 2–4 години базового встановлення. З Lightning — до трьох днів з урахуванням синхронізації mainnet. Нижче — технічні деталі та наш підхід, який економить до 30% на комісіях та виключає залежність від платіжних шлюзів. Наприклад, при обороті $50 000 на місяць комісії Stripe становитимуть $1 500, а прийом через BTCPay — лише мережеві комісії (~$10) — економія $1 490 щомісячно.
Проблеми, які ми вирішуємо
Синхронізація Bitcoin Core гальмує запуск на 48 годин. Без оптимізації pruned-режиму або snapshot ви чекаєте завантаження всього блокчейну через p2p. Ми використовуємо попередньо синхронізовані ноди та паралельне завантаження, скорочуючи час до 6–12 годин.
Lightning Network потребує вхідної ліквідності. Щоб приймати платежі через канали, потрібні вхідні. Ми налаштовуємо peer-з'єднання з ACINQ, WalletOfSatoshi та через сервіси типу Lightning Pool — ви отримуєте працюючий вузол без додаткових витрат.
Без автоматизації бекапів ви втратите канали. Static Channel Backup (SCB) має копіюватися щогодини. Ми підіймаємо cron-скрипти, які вивантажують channel.backup в S3 — автоматично та з версіонуванням. Дані з офіційної документації LND.
Як ми розгортаємо стек
Базове встановлення через офіційний скрипт — один блок команд:
# Встановлення залежностей та завантаження інсталятора apt-get update && apt-get install -y curl git curl -sSL https://btcpayserver.org/install.sh | sudo bash -s -- -c mainnet -l lnd -r nginx Але краще робити вручну — повний контроль над версіями та параметрами:
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" export BTCPAYGEN_REVERSEPROXY="nginx" . ./btcpay-setup.sh -i Ми додаємо фрагмент opt-save-storage для pruned-режиму, якщо не потрібна повна нода.
Конфігурація DNS та HTTPS
До деплою переконайтеся, що DNS A-запис для pay.yourdomain.com вказує на ваш VPS. Перевірити: dig +short pay.yourdomain.com. Let's Encrypt отримає сертифікат автоматично — nginx reverse proxy в конфігу вже налаштований.
Як прискорити синхронізацію Bitcoin Core?
Основний час при деплої — це завантаження блокчейну. Звичайна p2p-синхронізація займає 48 годин при 100 Мбіт/с. Використовуйте pruned-режим (256 МБ замість 650 ГБ) або завантажте snapshot з довіреного джерела — так можна скоротити до 6 годин. Ми у своїй практиці застосовуємо готові образи VPS з попередньо синхронізованим Bitcoin Core.
| Варіант | Час синхронізації | Місце на диску | Рекомендація |
|---|---|---|---|
| Повна нода | 48 годин | 650+ ГБ | Тільки якщо потрібні старі транзакції |
| Pruned-режим (256 МБ) | 48 годин, але без rescana | 256 МБ | Економить місце, але не rescанить |
| Snapshot | 6–12 годин | 650 ГБ (або pruned) | Найкращий варіант для швидкого старту |
Чому self-hosted BTCPay?
Ви повністю контролюєте приватні ключі та дані клієнтів. Немає щомісячних комісій платіжного шлюзу — лише вартість VPS та комісії мережі Bitcoin (Lightning Network дозволяє приймати миттєві мікроплатежі з комісією менше 1 сатоші). Крім того, BTCPay інтегрується з Lightning Network — протоколом другого рівня для миттєвих транзакцій.
Вибір Lightning-реалізації: LND vs CLN
| Параметр | LND | CLN |
|---|---|---|
| Мова | Go | C |
| API | REST + gRPC | JSON-RPC, плагіни |
| Підтримка BTCPay | повна | повна |
| Розмір бінарника | ~20 MB | ~5 MB |
| Інтеграція сторонніх сервісів | широка (OpenNode, Strike) | обмежена |
Для більшості проєктів ми вибираємо LND: більше готових бібліотек та повна підтримка BTCPay. CLN — для кастомних сценаріїв.
Покроковий процес встановлення (спрощений)
- Підготовка VPS: Ubuntu 22.04, користувач sudo, налаштування firewall (порти 80, 443, 9735).
- Деплой BTCPay: виконати команди вище, дочекатися завершення
btcpay-setup.sh. - Ініціалізація Lightning: створити гаманець, отримати адресу та поповнити баланс.
- Відкриття каналів: підключитися до хабів, направити ліквідність.
- Налаштування моніторингу: health check (
curl https://pay.yourdomain.com/health) та uptime-алерти.
Детальна команда для відкриття каналів
docker exec -it $(docker ps -q -f name=lnd) lncli --network=mainnet openchannel --node_key=03... --local_amt=1000000 Переконайтеся, що lnd синхронізовано (lncli getinfo).
Чек-лист типових помилок
- DNS не оновлено: BTCPay не згенерує сертифікат, Lightning не запуститься (потребує WSS).
- Занадто маленький диск: pruned-режим можна увімкнути лише до першої синхронізації — змінити потім складно.
- Немає вхідних каналів: Lightning не зможе приймати платежі. Відкривайте канали з вузлами, які мають вхідні.
Що входить в роботу
Ми надаємо:
- Готовий BTCPay Server з Bitcoin Core та Lightning (LND).
- Автоматичні бекапи SCB кожні 4 години.
- Моніторинг health-endpoint та uptime-алерти.
- Документація з описом архітектури та доступами.
- 7 днів технічної підтримки після деплою (включаючи допомогу з каналами).
- Навчання адміністраторів: як керувати гаманцем, відкривати канали, оновлювати софт.
Наша команда має 5 років досвіду в блокчейн-розробці та розгорнула 20+ нод для магазинів та DeFi-проєктів. Всі проєкти виконуються з гарантією uptime 99,9%.
Зв'яжіться з нами для консультації — допоможемо підібрати VPS та підготуємо інфраструктуру під ключ. Замовте розгортання BTCPay Server та почніть приймати криптоплатежі без посередників.
Орієнтовні терміни
- Базове встановлення (без Lightning): від 2 до 4 годин.
- Повний стек з Lightning: від 1 до 3 днів (з урахуванням синхронізації).
- Інтеграція з існуючою інфраструктурою: обговорюється індивідуально.
Вартість розраховується під ваш сценарій: обсяг транзакцій, необхідність Lightning, додаткові монети. Напишіть нам — надішлемо комерційну пропозицію.







