Налаштування BTCPay-сервера на Ubuntu 22.04/20.04 за допомогою Docker

Налаштування BTCPay-сервера на Ubuntu 22.04/20.04 за допомогою Docker

21.12.2023
Автор: HostZealot Team
2 мін.
108

Якщо ви збираєтеся використовувати свій сервер для продажу послуг, вам ймовірно, доведеться узгодити можливість здійснювати оплату за допомогою спеціального платіжного процесора. Якщо вас цікавлять саме платежі в біткоїнах (і альткоїнах), вам знадобиться криптовалютний платіжний процесор, і BTCpay може бути саме тим рішенням, яке ви шукаєте. Якщо вас зацікавило саме це рішення, ви зможете встановити його, дотримуючись наших рекомендацій. 

Огляд сервера BTCPay

Перевагою BTCpay є те, що для його застосування вам не потрібно використовувати сторонній платіжний процесор. Його механізм забезпечує більшу гнучкість і незалежність, а також виключає можливість впливу. Крім того, рішення пропонує низку інших переваг:

  • Децентралізація і автономія: Оскільки BTCpay є самостійно розміщеною платформою, ви і тільки ви повністю відповідаєте за свої платіжні процедури. Ця автономія приносить ряд переваг. Наприклад, немає ніякого впливу і ваш акаунт не може бути призупинено.
  • Ніяких додаткових комісій: Оскільки ви самостійно забезпечуєте роботу платіжного процесора, який ви розміщуєте, ніхто не вимагатиме від вас сплачувати внески.
  • Конфіденційність: BTCPay не вимагає особистої інформації від користувачів. 
  • Безпека: Завдяки відкритому вихідному коду рішення в першу чергу керується спільнотою і проходить регулярний аудит безпеки. З цієї причини воно має досить високу стійкість до атак. Крім того, ви несете повну відповідальність за свої приватні ключі, що є ще одним внеском у загальний рівень безпеки.
  • Кастомізація: BTCPay дуже добре налаштовується, ви можете сміливо налаштовувати її відповідно до свого бачення вашого бізнесу, надаючи вашим клієнтам унікальний платіжний досвід.
  • Спільнота та екосистема: BTCPay має велику спільноту користувачів, яка надає вам доступ до надійної підтримки, докладної документації та плагінів для будь-якого випадку використання, що знову ж таки дає вам свободу дій для налаштування обробки платежів відповідно до вашого особистого бачення.
  • Зменшення регуляторних вимог: Оскільки жодні централізовані установи жодним чином не пов'язані з BTCPay, у вас безумовно, буде набагато менше труднощів з точки зору дотримання нормативних вимог. Це особливо актуально, якщо у вашій країні діють суворі фінансові правила.
  • Легка інтеграція: Платформа легко інтегрується з низкою поширених платформ електронної комерції - WooCommerce, Shopify, Magento та деякими іншими.
  • Підтримка гаманців з мультипідписом: BTCPay підтримує гаманець з мультипідписом, який забезпечує підвищену безпеку криптовалютних активів.
  • Інтеграція з Lightning Network: BTCPay серед іншого забезпечує підтримку Lightning Network. Lightning Network - це рішення для масштабування другого рівня для Bitcoin, яке зробить ваші транзакції швидшими і в той же час більш економічно ефективними.

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

BTCPay вимагає, щоб ваш сервер мав наступні потужності:

  • Ядра процесора: 2.
  • Оперативна Пам’ять: 4 ГБ.
  • Сховище: 600 ГБ.

Крок 1: Встановлення Docker на сервер Ubuntu 22.04

Використання BTCPay Docker значно спростить встановлення BTCPay, тому ми обираємо цей підхід.

Ubuntu вже повинна мати встановлений Docker у своєму репозиторії програмного забезпечення. Проте, щоб переконатися, що у вас найновіша версія, ви можете встановити його з APT-репозиторію Docker.

  • Підключіться до сервера по SSH
  • Запустіть команду, щоб додати репозиторій Docker до вашого сервера:
echo "deb [signed-by=/etc/apt/keyrings/docker.gpg.key arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
  • Імпортуйте ключ Docker GPG до системи Ubuntu. Таким чином APT зможе перевірити цілісність пакетів:
wget --quiet -O - https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.gpg.key
  • Встановіть пакети apt-transport-https і ca-certificates:
sudo apt install apt-transport-https ca-certificates
  • Оновлення індексу пакетів та встановлення Docker Community Edition
sudo apt update
sudo apt install docker-ce

На цьому встановлення Docker має бути завершено. Ви можете переконатись в цьому, перевіривши статус:

systemctl status docker

Якщо Docker не запустився, ви можете запустити його таким чином:

sudo systemctl restart docker.socket
sudo systemctl restart docker.service

Щоб він запускався автоматично при кожному завантаженні системи:

sudo systemctl enable docker

Щоб перевірити версію:

docker -v

Крок 2: Налаштування Docker-контейнера BTCPay

  • Перейдіть в root:
sudo su -
  • Скопіюйте репозиторій BTCPay Server з GitHub:
sudo apt install git
cd ~
git clone https://github.com/btcpayserver/btcpayserver-docker.git

Ви зможете знайти його за адресою ~/btcpayserver-docker. Перейдіть туди:

cd ~/btcpayserver-docker/
  •  Запустіть кожну з цих команд окремо. Таким чином ви встановите деякі необхідні змінні оточення
export BTCPAY_HOST="btcpay.example.com"
export NBITCOIN_NETWORK="mainnet"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_REVERSEPROXY="empty"
export BTCPAYGEN_EXCLUDE_FRAGMENTS="$BTCPAYGEN_EXCLUDE_FRAGMENTS;nginx-https"
export BTCPAYGEN_LIGHTNING="lnd"
export BTCPAY_ENABLE_SSH=true

Примітки:

BTCPAY_HOST: btcpay.example.com має бути замінено на ваше ім'я хоста.

NBTICOIN_NETWORK: є вибір між mainnet, testnet або regnet.

BTCPAYGEN_CRYPTO01 відповідає за вибір підтримуваної монети. Тут ми додаємо біткоїн, згодом ви можете додати інші монети.

BTCPAYGEN_REVERSEPROXY: Вибір nginx, traefix або emtpy.

BTCPAYGEN_EXECLUDE_FRAGMENTS: Вимикає генерацію TLS-сертифікатів. Згодом можна встановити безкоштовний Let's Encrypt TLS.

BTCPAYGEN_LIGHTING: Виберіть lnd або clightning, щоб увімкнути підтримку lightning-мереж.

BTCPAY_ENABLE_SSH: Увімкнути управління авторизованими ключами SSH для BTCPAY.

Змінні оточення можна перевірити за допомогою:

echo $BTCPAY_HOST

Встановлення Docker-контейнера BTCPay:

. ./btcpay-setup.sh -i

Перевірка статусу служби systemd:

sudo systemctl status btcpayserver.service

Перевірка контейнерів Docker:

sudo docker ps

За замовчуванням, контейнер Docker btcpayserver/btcpayserver не відкриває порт для хост-ОС. Щоб виправити це, відкрийте файл docker-compose у бажаному редакторі (тут nano):

nano ~/btcpayserver-docker/Generated/docker-compose.generated.yml

У розділі btcpayserver додайте в розділі "ports:":

    - "49392:49392"

Збережіть і вийдіть. Перезапустіть btcpayserver.service:

sudo systemctl restart btcpayserver

Тепер ви можете ще раз перевірити стан контейнера Docker:

sudo docker ps

Тепер порт хост-ОС (49392) має бути зіставлений з портом 49392 Docker.

Крок 3: Налаштування зворотного проксі-сервера Nginx

  • Встановіть веб-сервер Nginx з репозиторію програмного забезпечення за замовчуванням Ubuntu:
sudo apt install nginx
  • Створіть файл віртуального хоста для сервера BTCPay.
sudo nano /etc/nginx/conf.d/btcpay-server.conf
  • Налаштуйте Nginx в якості зворотного проксі. Усередині конфігураційного файлу btcpay додайте наступну конфігурацію. Замініть btcpay.example.com на ваше доменне ім'я або IP-адресу сервера:
server {
    listen 80;
    server_name btcpay.example.com;


    location / {
        proxy_pass http://127.0.0.1:23000; # Порт BTCPay за замовчуванням 23000
        proxy_set_header Host$host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Якщо ваш BTCPay працює на іншому сервері і використовує інший порт, вам слід налаштувати proxy_pass відповідно.

  • Створіть символічне посилання на ваш конфігураційний файл Nginx в каталозі /etc/nginx/sites-enabled/, щоб увімкнути сайт:
sudo ln -s /etc/nginx/sites-available/btcpay /etc/nginx/sites-enabled/
  • Перед застосуванням змін перевірте конфігурацію Nginx на наявність синтаксичних помилок:
sudo nginx -t
  • Якщо під час введення тексту не було виявлено жодних помилок, перезавантажте Nginx, щоб застосувати зміни:
sudo systemctl reload nginx
  • Брандмауер: Переконайтеся, що брандмауер сервера дозволяє вхідний трафік для порту 80. Щоб дозволити HTTP-трафік, вам потрібно буде налаштувати параметри вашого брандмауера, наприклад, UFW та інші.
  • Отримайте доступ до BTCPay: Переконайтеся, що BTCPay тепер доступний з вашим доменним ім'ям або IP-адресою сервера, що він працює належним чином і без помилок.

Крок 4: Включення HTTPS для сервера BTCPay

Увімкнення HTTPS (SSL/TLS) дозволить вам скористатися перевагами підвищеної конфіденційності та безпеки при передачі даних як для вас, так і для ваших клієнтів. Першим кроком є отримання SSL-сертифікату, який ви можете отримати від Let's Encrypt, довіреної організації, що надає безкоштовні сертифікати безпеки. Після цього вам потрібно буде дотримуватися наведених нижче інструкцій, щоб фактично увімкнути HTTPS.

  • Встановіть Certbot: Certbot - це зручний інструмент, який можна використовувати для автоматичного отримання або поновлення SSL-сертифікату від Let's Encrypt. Щоб встановити його, вставте
sudo apt update
sudo apt install certbot python3-certbot-nginx
  • Запустіть Certbot, щоб виконати встановлення SSL-сертифіката:
sudo certbot --nginx -d yourdomain.com
  • Налаштуйте сервер BTCPay на щойно отриманий SSL. Для цього отримайте доступ до веб-інтерфейсу вашого BTCPay-сервера по HTTPS. Увійдіть до свого облікового запису BTCPay і перейдіть до налаштувань облікового запису. Оновіть "URL-адресу сервера" і встановіть свій домен з префіксом "https://". Збережіть зміни і перезапустіть сервіси BTCPay
  • Оскільки сертифікати Let's Encrypt дійсні лише 90 днів, корисно налаштувати автоподовження для них в Certbot. Certbot робить це за допомогою утиліти cron. Щоб перевірити це введіть:
sudo crontab -l

Знайдіть поновлення Certbot. Ви не можете додати його самостійно:

sudo certbot renew --quiet
  • Перевірте налаштування HTTPS. Для цього зайдіть на ваш сервер за безпечною URL-адресою. З'єднання має бути безпечним, а SSL-сертифікація - дійсною.

Крок 5: Доступ до веб-інтерфейсу сервера BTCPay

Перейдіть на сайт https://btcpay.example.com. Тут ви можете зареєструвати свій обліковий запис адміністратора, якщо ви цього ще не зробили. Після цього реєстрація нових користувачів буде відключена, якщо ви не захочете включити її знову. Зачекайте, поки вузли синхронізуються (ви можете побачити це в правому нижньому куті). Після цього, не соромтеся вивчати інтерфейс і можливості BTCPay.

Крок 6: Управління сервером BTCPay

Перше, що вам потрібно зробити, це створити магазин. Натисніть відповідну кнопку в інтерфейсі. Магазин відповідає за прийом платежів.

Після цього вам потрібно буде налаштувати гаманець. Додайте той, що вже існує, або створіть його на BTCPay.

Ви можете вибрати між hot гаманцем, де приватні ключі зберігаються на сервері, що зручно, але більш вразливо для злому, і watch-only гаманцем, який забезпечує більш високий рівень безпеки, оскільки приватні ключі видаляються з сервера і зберігаються ззовні.

Потім ви можете вибрати один з 4 типів адрес.

Останнє, що вам потрібно зробити, це налаштувати лайтнінг-вузол. Тут ви можете використовувати внутрішній вузол Lightning BTCPay або використовувати власний режим Lightning. 

Висновок

BTCPay - це відмінне рішення, якщо ви хочете додати криптовалютні платежі в свій інтернет-магазин. Ми сподіваємося, що ця інструкція була достатньо вичерпною, і тепер у вас є робочий акаунт BTCPay. Дякуємо за увагу, слідкуйте за новинами.

# Сервери Поділитися:
Статті за темою