Стартовые цены: все тарифы на 30% дешевле самого дешёвого конкурента. Сравнение ценКаждый тариф на 30% дешевле самого дешёвого офшорного хостера

База знаний · VPS

Как самостоятельно развернуть BTCPay Server на VPS

Разверните BTCPay Server на своём VPS: что нужно узлу с обрезкой, какой тариф подойдёт, официальная установка через Docker на Ubuntu 24.04, Lightning, резервное копирование и безопасность.

Обновлено 10 мин чтения

В этом руководстве

  • Стартовая конфигурация BTCPay для сервера только с Bitcoin и обрезкой блокчейна — 2 vCPU, 4 ГБ памяти и 50 ГБ SSD; ей соответствует наш тариф Cutter.
  • Направьте домен на сервер, откройте порты 80 и 443, затем запустите официальный скрипт btcpay-setup.sh через source.
  • Зарегистрируйтесь сразу, как только сайт откроется: первый аккаунт становится администратором сервера.
  • Подключите аппаратный кошелёк или xpub, чтобы ваша сид-фраза никогда не попадала на сервер.
  • Запускайте btcpay-backup.sh, копируйте архив за пределы сервера, а каналы Lightning резервируйте отдельно.
VPS8 разделов
Все руководства
На этой странице
  1. Требования BTCPay Server и подходящий тариф
  2. Зачем разворачивать BTCPay Server на своём VPS
  3. Что меняет офшорный хостер без KYC, а что — нет
  4. Как развернуть BTCPay Server самостоятельно: пошаговая инструкция
  5. Поддержание работы: обновления, резервное копирование и место на диске
  6. Защита BTCPay Server и вашего кошелька
  7. Уведомления по электронной почте и порт 25
  8. Часто задаваемые вопросы

Чтобы развернуть BTCPay Server самостоятельно, нужны Linux VPS с ресурсами под узел Bitcoin с обрезкой (стартовая конфигурация BTCPay: 2 vCPU, 4 ГБ памяти и 50 ГБ SSD), домен, указывающий на этот сервер, и открытые порты 80 и 443. Установите BTCPay Server официальным скриптом btcpayserver-docker; по данным документации BTCPay, первая синхронизация занимает от одного до пяти дней.

В этих шагах используется офшорный VPS с Ubuntu 24.04 LTS или Debian 12 и root-доступом, как описано в руководстве «Начало работы». Замените btcpay.example.com своим именем хоста, а SERVER_IP — IPv4-адресом своего сервера.

Требования BTCPay Server и подходящий тариф

Официальное развёртывание через Docker запускает на одной машине BTCPay Server, PostgreSQL, NBXplorer, Bitcoin Core, Nginx с автоматическим HTTPS и Tor. Узел с обрезкой в BTCPay Server загружает и проверяет каждый блок, но хранит только последние — в пределах целевого объёма своего профиля. Требования к серверу от BTCPay рассчитывают диск так: 10 ГБ для хост-системы, 15 ГБ для chainstate Bitcoin плюс этот целевой объём:

Вариант установкиПрофиль обрезки (объём хранимых блоков)Диск по формуле BTCPayПодходящий тарифЦена в месяц
Тестовый, только Bitcoinopt-save-storage-xxs (5 ГБ)30 ГБSloop: 1 vCPU, 2 ГБ ОЗУ, 40 ГБ NVMe$3.49
Магазин, только Bitcoin (стартовая конфигурация BTCPay)opt-save-storage-xs (25 ГБ)50 ГБCutter: 2 vCPU, 4 ГБ, 70 ГБ$5.49
Bitcoin и Lightningopt-save-storage-s (50 ГБ)75 ГБSchooner: 4 vCPU, 8 ГБ, 160 ГБ$12.49
Lightning, более загруженные магазиныopt-save-storage (100 ГБ)125 ГБBrigantine: 6 vCPU, 16 ГБ, 240 ГБ$19.99
Bitcoin и MoneroBitcoin — как выше; Monero — с обрезкой по умолчанию250 ГБ и болееFrigate: 12 vCPU, 32 ГБ, 500 ГБ$47.99
Узел без обрезкиНетОколо 771 ГБ блоков, объём растётВыделенный сервер, 2 × 1 ТБ NVMe или большеОт $97.49

Это цифры без запаса: BTCPay советует предусматривать резерв, и у каждого тарифа здесь остаётся не менее 10 ГБ свободного места. Sloop не дотягивает до стартовой конфигурации (4 ГБ, 2 ядра), хотя в FAQ BTCPay по развёртыванию минимумом по-прежнему указано 2 ГБ; Dinghy (1 ГБ, 25 ГБ) не соответствует ни одному из задокументированных минимумов. Трафик безлимитный в рамках принципа добросовестного использования, и это покрывает первую загрузку всего блокчейна.

Когда нужен узел без обрезки

Индексации транзакций (opt-txindex), ElectrumX и встроенному обозревателю блоков Mempool нужен весь блокчейн: по графику blockchain.com, на 25 сентября 2026 г. это около 771 ГБ блоков без учёта файлов отката и индексов (страница загрузки Bitcoin Core всё ещё называет около 600 ГБ плюс от 5 до 10 ГБ в месяц). Столько не вмещает ни один тариф VPS — даже Flagship с его 640 ГБ. На выделенном сервере с 2 × 1 ТБ NVMe, например на Ryzen 7 7700 ($97.49), RAID 1 оставляет 1 ТБ почти без запаса на рост, а RAID 0 даёт 2 ТБ без избыточности; у Ryzen 9 7950X ($175.99) и EPYC 7402P ($211.99) — 2 × 1.92 ТБ, чего достаточно для RAID 1.

Lightning в BTCPay: Core Lightning, LND или Phoenixd

Lightning необязателен: переменная BTCPAYGEN_LIGHTNING выбирает clightning (Core Lightning), lnd или phoenixd. Core Lightning и LND открывают для пиров TCP-порт 9735; Phoenixd не открывает ни одного. BTCPay не указывает требований к памяти для каждого из них, но Lightning добавляет постоянно работающую службу, управление ликвидностью и более строгие требования к резервному копированию. Не используйте с ним профиль на 5 ГБ; FAQ BTCPay требует для него 80 ГБ дискового пространства. Приложениям вроде ThunderHub нужен LND. Чтобы добавить Lightning позже, экспортируйте переменную и снова запустите скрипт установки через source, как в шаге 3. Для приёма платежей также нужна входящая ликвидность — каналы, которые открывают к вашему узлу другие участники сети или платный провайдер.

Зачем разворачивать BTCPay Server на своём VPS

Хостинг BTCPay Server бывает трёх видов: сторонний хостер, обслуживающий множество продавцов на одном экземпляре, компьютер дома или собственный сервер. На странице BTCPay о стороннем хостинге описаны риски первого варианта: узел хостера может отслеживать ваши транзакции, недобросовестный хостер может запустить изменённую версию BTCPay, которая подменит ваш xpub своим, и следует исходить из того, что ему может быть известно всё о том, как вы пользуетесь сервисом. Домашний сервер раскрывает ваш домашний IP-адрес. BTCPay Server на VPS избавляет от обеих проблем: вы сами выбираете версию, база данных со счетами остаётся у вас, а платежи поступают прямо на ваш кошелёк.

Что меняет офшорный хостер без KYC, а что — нет

Что меняется: аккаунт у нас — это только адрес электронной почты и пароль, а оплата идёт с вашего собственного кошелька в Bitcoin, Ethereum, Monero, Tether (USDT) или Solana, без карты и документов. С VPS без KYC за вашим платёжным сервером не остаётся ни одного документа, удостоверяющего личность: оплачивайте в BTC, как в случае с Bitcoin VPS, или конфиденциально в XMR, как с Monero VPS. Кроме того, вы сами выбираете, право какой из семи стран будет применяться. Что не меняется:

  • Ваш IP-адрес и имя хоста публичны: к ним подключается каждый покупатель, открывший счёт.
  • Bitcoin публичен: для каждого счёта создаётся новый адрес, но суммы и время платежей остаются в блокчейне.
  • Данные покупателей, собираемые при оформлении заказа, хранятся в вашей базе данных, и на них распространяется законодательство о защите персональных данных, применимое к вашему бизнесу.
  • Закон по-прежнему действует: налоги, правила защиты прав потребителей и платёжные правила там, где вы ведёте торговлю, а также право страны, где находится сервер, включая Закон ЕС о цифровых услугах в наших локациях в ЕС.
  • Действуют наши правила допустимого использования: к мошенничеству против реальных людей, например фальшивым магазинам и кардингу, применяется нулевая терпимость.
  • Tor — это не анонимность: развёртывание добавляет onion-адрес, но, как сказано в FAQ BTCPay, он «вовсе не делает вас анонимным».

Как развернуть BTCPay Server самостоятельно: пошаговая инструкция

1. Направьте домен на сервер

У своего DNS-провайдера создайте A-запись для имени хоста, например btcpay.example.com, с IPv4-адресом вашего сервера. Встроенный Nginx получит для него сертификат Let's Encrypt, и для прохождения проверки порт 80 должен быть доступен. Убедитесь, что имя возвращает SERVER_IP:

getent ahostsv4 btcpay.example.com

2. Откройте порты в брандмауэре

Сначала разрешите SSH (свой порт, если вы его меняли), затем HTTP, HTTPS и — для Core Lightning или LND — 9735:

apt update
apt install -y ufw git
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 9735/tcp
ufw enable

Опубликованные порты Docker обходят UFW через собственные правила NAT Docker, поэтому UFW не может скрыть BTCPay, но защищает всё остальное. Не используйте вместо UFW файл nftables с flush ruleset: как предупреждает наше руководство по усилению защиты, это удаляет правила Docker.

3. Клонируйте репозиторий и задайте переменные

Работайте в оболочке входа (login shell) пользователя root, как в README: войдите как root или выполните sudo su - из-под своего пользователя с sudo. Затем выполните команды из README, подставив своё имя хоста:

mkdir BTCPayServer
cd BTCPayServer
git clone https://github.com/btcpayserver/btcpayserver-docker
cd btcpayserver-docker
export BTCPAY_HOST="btcpay.example.com"
export NBITCOIN_NETWORK="mainnet"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_LIGHTNING="none"
export BTCPAYGEN_REVERSEPROXY="nginx"
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage-xs"
. ./btcpay-setup.sh -i
Переменная BTCPAY_HOST
Ваше имя хоста; скрипт установки отклоняет всё, что не является корректным доменным именем.
Переменная NBITCOIN_NETWORK
mainnet или testnet для экспериментов.
BTCPAYGEN_CRYPTO1
btc; BTCPAYGEN_CRYPTO2="xmr" добавляет Monero.
Переменная BTCPAYGEN_LIGHTNING
none, clightning, lnd или phoenixd.
Переменная BTCPAYGEN_REVERSEPROXY
nginx, который получает и продлевает HTTPS-сертификат.
Переменная BTCPAYGEN_ADDITIONAL_FRAGMENTS
Значения через точку с запятой, среди них — один профиль обрезки; вместе с ним скрипт установки не принимает opt-txindex. Если позже вы измените список, снова включите в него профиль, иначе обрезка отключится и узел остановится с ошибкой «Block files have previously been pruned».
Переменная BTCPAY_ENABLE_SSH
Встречается в старых руководствах; текущая версия скрипта её игнорирует.

4. Запустите скрипт установки

Не убирайте точку в начале: скрипт нужно запускать через source, а без -i он лишь выводит свои параметры. С -i он устанавливает Docker и Docker Compose фиксированной версии, если их нет, генерирует стек, сохраняет ваши настройки в /etc/profile.d/btcpay-env.sh, добавляет службу systemd btcpayserver для запуска при загрузке и запускает её; по словам самого скрипта, это может занять от 5 до 10 минут.

5. Сразу зарегистрируйте аккаунт администратора

Откройте https://btcpay.example.com и сразу зарегистрируйтесь: первый аккаунт становится администратором сервера, а Let's Encrypt вносит каждый сертификат в публичные журналы, так что ваше имя хоста — не секрет. Затем BTCPay по умолчанию отключает открытую регистрацию: убедитесь, что параметр Enable public user registration выключен в разделе Server Settings > Policies. Если вы видите только Login, хотя не регистрировались, значит, это сделал кто-то другой, и FAQ BTCPay советует развернуть сервер заново. Без SMTP сбросить пароль по электронной почте невозможно, поэтому храните пароль в менеджере паролей.

6. Дождитесь синхронизации узла

Сайт открывается ещё до окончания первой синхронизации, которая, согласно FAQ BTCPay по синхронизации, занимает от одного до пяти дней. Проверить ход синхронизации можно командой:

bitcoin-cli.sh getblockchaininfo

Узел синхронизирован, когда blocks равно headers, а initialblockdownload равно false. До этого BTCPay не может надёжно обнаруживать платежи, поэтому не принимайте их.

7. Создайте магазин и подключите кошелёк

После регистрации BTCPay предлагает создать магазин: указать название, валюту по умолчанию и источник курсов. Затем подключите кошелёк магазина в порядке, приведённом в руководстве BTCPay по кошелькам:

  • Аппаратный кошелёк через приложение BTCPay Server Vault или файл кошелька из Electrum или Wasabi.
  • Ключ xpub, введённый вручную или отсканированный в виде QR-кода.
  • Сид-фраза — никогда: «никогда не вводите слова сид-фразы кошелька ни на одном устройстве, подключённом к интернету».

BTCPay использует новый адрес для каждого счёта, а большинство кошельков отслеживают лишь около 20 неиспользованных адресов — это лимит пропусков (gap limit): после серии неоплаченных счетов увеличьте его (это позволяют Electrum, Sparrow и Bitcoin Core), иначе платежи будут казаться пропавшими.

Поддержание работы: обновления, резервное копирование и место на диске

Обновления

Обновляйте BTCPay в оболочке входа root или кнопкой Update в разделе Server Settings > Maintenance:

btcpay-update.sh

Обновление подтягивает изменения из репозитория, заново генерирует стек, пересоздаёт контейнеры, а затем удаляет все неиспользуемые образы Docker на хосте — как относящиеся к BTCPay, так и любые другие, — если только BTCPAY_UPDATE_CLEAN не равно false. Перед крупными обновлениями сделайте резервную копию и прочитайте примечания к выпуску.

Резервное копирование

cd "$BTCPAY_BASE_DIRECTORY/btcpayserver-docker"
./btcpay-backup.sh

Скрипт резервного копирования делает дампы баз данных, останавливает стек, архивирует тома Docker, секреты и дампы, а затем снова запускает стек. Он пропускает данные блокчейна, кеши, логи и базу данных каналов LND, но сохраняет кошелёк LND и channel.backup. Архив /var/lib/docker/volumes/backup_datadir/_data/backup.tar.gz перезаписывается при каждом запуске и остаётся на сервере: задайте BTCPAY_BACKUP_PASSPHRASE, чтобы зашифровать его, и копируйте его за пределы сервера с помощью restic или Borg, как описано в нашем руководстве по снапшотам и резервному копированию. На это время стек останавливается, поэтому выберите спокойный час, как в примере crontab от BTCPay:

SHELL=/bin/bash
PATH=/bin:/usr/sbin:/usr/bin:/usr/local/bin
15 4 * * * /root/BTCPayServer/btcpayserver-docker/btcpay-backup.sh

Восстанавливайте данные командой ./btcpay-restore.sh на сервере, настроенном точно так же, и хотя бы раз проверьте восстановление.

Для Lightning нужно больше: BTCPay предупреждает, что «публикация отозванного состояния может привести к потере всех средств в этом канале». Для LND сохраните сид-фразу из Server Settings > Services > LND Seed Backup и держите вне сервера копию channel.backup, обновляя её при каждом открытии или закрытии канала; для Core Lightning следуйте его собственным рекомендациям. Никогда не восстанавливайте узел Lightning из снапшота VPS, сделанного до его последних платежей. Без Lightning снапшот — быстрый способ отката: выполните btcpay-down.sh, запросите снапшот и, когда он будет отмечен как выполненный, выполните btcpay-up.sh.

Место на диске и статус синхронизации

Переполненный диск останавливает Bitcoin Core, и тогда BTCPay постоянно показывает узел как запускающийся. Проверьте командами:

df -h /var/lib/docker
docker system df
bitcoin-cli.sh getblockchaininfo

При обрезке size_on_disk держится около целевого объёма профиля, тогда как база данных и образы растут. Не останавливайте BTCPay, чтобы узел оставался синхронизированным, и добавьте эти проверки в собственный мониторинг: мы никогда не пишем вам на электронную почту.

Защита BTCPay Server и вашего кошелька

  • Регистрация остаётся выключенной; других пользователей приглашайте из раздела Server Settings.
  • Двухфакторная аутентификация: включите её в настройках аккаунта (приложение-аутентификатор или ключ U2F). Если вы потеряете устройство, root может отключить её командой ./btcpay-admin.sh disable-multifactor YOUR_ACCOUNT_EMAIL в папке репозитория, как описано в FAQ по настройкам сервера.
  • SSH: входите по ключам, как описано в руководстве по усилению защиты. Скрипт установки добавляет ограниченный ключ root для действий в разделе Maintenance и может заменить PermitRootLogin no на prohibit-password в /etc/ssh/sshd_config. В нашем тесте файл из руководства по усилению защиты, который читается первым, по-прежнему запрещал вход root, поэтому BTCPay скрывает эти действия. Обновляйте BTCPay из командной оболочки или задайте в этом файле PermitRootLogin forced-commands-only, что разрешает вход root только с принудительной командой, и добавьте root в AllowUsers.
  • Никакой сид-фразы на сервере. На хосте KVM провайдер технически может прочитать диск и память VPS. С аппаратным кошельком или xpub злоумышленник или хостер смогут видеть ваши платежи, но не смогут их потратить. Горячий кошелёк BTCPay и встроенный узел Lightning хранят приватные ключи: держите там только оборотные средства.

Уведомления по электронной почте и порт 25

BTCPay может отправлять по электронной почте письма для сброса пароля, приглашения и события магазина, например об оплаченном счёте, через SMTP, настроенный в разделе Server Settings > Email server или в настройках магазина. Без SMTP, как сказано в его руководстве по уведомлениям, «нет простого способа» сбросить пароль. В нашей сети исходящий порт 25 по умолчанию закрыт. Это блокирует прямую доставку на другие почтовые серверы, но не отправку с аутентификацией через почтовый релей: укажите SMTP-хост своего почтового провайдера, порт 587 и учётные данные, затем отправьте тестовое письмо. Провайдер видит всё, что вы отправляете, поэтому, если это для вас важно, обойдитесь без SMTP.

Часто задаваемые вопросы

Сколько стоит развернуть BTCPay Server самостоятельно?

Программа бесплатна: без подписок и комиссий за транзакции; вы платите за сервер и домен. Стартовой конфигурации BTCPay (2 vCPU, 4 ГБ памяти, 50 ГБ SSD) соответствует наш Cutter за $5.49 в месяц, а с Lightning — Schooner за $12.49. Пополнение на $100 (минимальная сумма) даёт бонус 10%: этого хватит примерно на 20 месяцев работы Cutter.

Можно ли запустить BTCPay Server на VPS с 2 ГБ памяти?

Только для теста. В FAQ BTCPay по развёртыванию минимумом указано 2 ГБ памяти, но более новое руководство по выбору ресурсов начинается с 4 ГБ и 2 ядер. Наш Sloop с 2 ГБ (1 vCPU, 40 ГБ NVMe) подойдёт для Bitcoin без Lightning с профилем opt-save-storage-xxs, но первая синхронизация будет медленной. Для работающего магазина берите Cutter.

Нужен ли для BTCPay Server полный узел Bitcoin?

Нужен проверяющий узел, а не весь блокчейн на диске. Bitcoin Core в составе развёртывания проверяет каждый блок, а профиль обрезки хранит от 5 до 100 ГБ последних блоков. Узел без обрезки — а сегодня это выделенный сервер — нужен только для индексации транзакций, ElectrumX и встроенного обозревателя блоков Mempool. Об узле без BTCPay читайте в нашем руководстве по узлам Bitcoin и Monero.

Можно ли разместить BTCPay Server без KYC?

Да. BTCPay — это программа, которую вы запускаете сами, без регистрации аккаунта, а для нашего хостинга нужны только адрес электронной почты и пароль, с оплатой в Bitcoin, Ethereum, Monero, Tether или Solana. У вашего регистратора доменов и почтового провайдера свои правила, а налоги, законодательство о защите прав потребителей и наши правила допустимого использования по-прежнему действуют.

Поддерживает ли BTCPay Server Monero?

Да, через плагин Monero, который поддерживает сообщество. Задайте BTCPAYGEN_CRYPTO2="xmr" и снова запустите установку, чтобы получить узел Monero с обрезкой и службу кошелька, установите плагин в разделе Server Settings > Manage Plugins и подключите к магазину кошелёк только для просмотра: основной адрес, приватный ключ просмотра и высоту восстановления, но никогда не сид-фразу. Следуйте инструкции BTCPay для Monero и заложите не менее 250 ГБ SSD, как советует руководство BTCPay по выбору ресурсов.

Застряли на каком-то шаге?

Клиенты с выделенными и GPU-серверами могут открыть тикет в личном кабинете, указав IP-адрес сервера и то, что они уже пробовали сделать. Целевой срок первого ответа — менее 12 часов. Для всех остальных серверов используйте действия с сервером на его странице, руководства и страницу статуса сети.

С возвращением

Войдите, чтобы управлять серверами и балансом.

Без KYCПроверка на человека с помощью Cloudflare TurnstileБез отслеживания