মাঝখানে বসা প্রতিটি পেমেন্ট প্রসেসর নিজের শর্ত, নিজের KYC আর ব্যালান্স আটকে দেওয়ার নিজের বোতাম নিয়ে আসে। BTCPay Server মাঝখানটাই সরিয়ে দেয়। ইনভয়েস তৈরি হয় আপনার সার্ভারে, গ্রাহক টাকা পাঠায় আপনার ওয়ালেট থেকে তৈরি ঠিকানায়, আর পেমেন্ট নিশ্চিত করে আপনার নিজের Bitcoin নোড। আপনি ছাড়া কেউ এটি বন্ধ করতে পারে না।
এটা সেই দোকান, ফ্রিল্যান্সার আর সার্ভিসের জন্য, যারা আগে থেকেই bitcoin নেয় — বা নিতে চায় — আর কাজটা কোনো কোম্পানির হাতে দিতে চায় না।
কোন প্ল্যান
BTCPay প্রায় সাতটি কন্টেইনারে চলে: BTCPay অ্যাপ, NBXplorer (যে চেইনে নজর রাখে), Bitcoin Core, Postgres আর সামনে স্বয়ংক্রিয় Let's Encrypt-সহ nginx। আমাদের টেস্ট সার্ভারে শুরুতে এগুলো প্রায় 0.7 GB RAM নিয়েছিল, আর সিঙ্কের সময় Bitcoin Core বেশি নেয়; 4 GB যথেষ্টর চেয়েও বেশি। আসল সীমাবদ্ধতা ডিস্ক, মেমরি নয়।
| সেটআপ | প্ল্যান |
|---|---|
| on-chain BTC, ~5 GB ব্লক রাখা pruned নোড | Small-IP: 4 vCPU, 4 GB, 35 GB (মাসে $16) |
| একই, লগ আর আপডেটের জন্য বাড়তি জায়গাসহ | Medium-IP: 6 vCPU, 6 GB, 45 GB (মাসে $20) |
| Lightning, বড় ব্লক উইন্ডো বা দ্বিতীয় কয়েন | Pro-32: 8 vCPU, 32 GB, 400 GB (মাসে $40), অনুরোধে |
নিজস্ব IPv4-সহ প্ল্যান দরকার: গ্রাহকরা HTTPS দিয়ে BTCPay-তে আসে, আর Let's Encrypt-কে পোর্ট 80-এ পৌঁছাতে হয়। অর্ডারের সময় যেটা পাওয়া যায়, জার্মানি বা ফিনল্যান্ড বেছে নিন — পেমেন্ট পেজের জন্য লেটেন্সি প্রায় গুরুত্বহীন। আর পুরো ব্যাপারটাই যখন ক্রিপ্টো নেওয়া, তখন সার্ভারের দামও KYC ছাড়া ক্রিপ্টোতে দেওয়াটা মানানসই।
ইনস্টলেশন
pay.example.com-কে সার্ভারে নির্দেশ করুন, তারপর নতুন Ubuntu 24.04 বা Debian 12-এ root হিসেবে:
mkdir BTCPayServer && cd BTCPayServer
git clone https://github.com/btcpayserver/btcpayserver-docker
cd btcpayserver-docker
export BTCPAY_HOST="pay.example.com"
export LETSENCRYPT_EMAIL="you@yourdomain.com"
export NBITCOIN_NETWORK="mainnet"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage-xxs"
export BTCPAYGEN_REVERSEPROXY="nginx"
export BTCPAYGEN_LIGHTNING="none"
. ./btcpay-setup.sh -i
opt-save-storage-xxs-ই সবকিছু আঁটিয়ে দেয়: Bitcoin Core ব্লক prune করে 5 GB-তে নামায়। স্ক্রিপ্ট ইমেজ টেনে আনে, btcpayserver নামে systemd সার্ভিস তৈরি করে আর সব চালু করে। পথে এটি Docker ডেমনও রিস্টার্ট করে — BTCPay-কে অন্য কন্টেইনারের পাশে গুঁজে না দিয়ে আলাদা সার্ভার দেওয়ার আরেকটা কারণ।
নোড দেখুন:
bitcoin-cli.sh getblockchaininfo
blocks-কে headers-এর সঙ্গে মেলান, আর "pruned": true দেখুন। আমাদের পরীক্ষার কুড়ি মিনিট পরে প্রায় 9,72,000-এর মধ্যে 2,18,000 ব্লক হয়েছিল — শুরুর ব্লকগুলো খুব ছোট, তাই এখান থেকে অনুমান করবেন না। আসল কাজ আসে পরে।
প্রথম লগইন: এখনই করুন
https://pay.example.com সাড়া দেওয়ামাত্র খুলুন। BTCPay আপনাকে রেজিস্ট্রেশন পেজে পাঠায়, আর প্রথম অ্যাকাউন্টই সার্ভারের অ্যাডমিন হয়। আপনার আগে অন্য কেউ পেজটা খুঁজে পেলে আপনার পেমেন্ট সার্ভার তার হয়ে যায়। রেজিস্টার করুন, তারপর Server Settings → Policies-এ গিয়ে নতুন সাইন-আপ আপনার মতো করে সেট করুন।
এরপর একটি স্টোর তৈরি করুন আর ওয়ালেটকে তার extended public key (xpub) দিয়ে যুক্ত করুন — হার্ডওয়্যার ওয়ালেট থেকে বা ডেস্কটপ ওয়ালেটের এক্সপোর্ট থেকে। BTCPay প্রতিটি ইনভয়েসের জন্য নতুন ঠিকানা তৈরি করে এবং কখনো প্রাইভেট কী দেখে না। এর জন্য বহু বছরের ইতিহাসওয়ালা ওয়ালেটের বদলে নতুন ওয়ালেট বা নতুন অ্যাকাউন্ট ব্যবহার করুন: pruned নোড এখন থেকে যা ঘটে তা অনুসরণ করতেই সবচেয়ে স্বচ্ছন্দ।
নোড নেটওয়ার্কের সঙ্গে তাল না মেলানো পর্যন্ত BTCPay দেখায় যে সিঙ্ক চলছে, আর পেমেন্টে নজর রাখে না। লঞ্চ সিঙ্কের পরে রাখুন, ইনস্টলের সন্ধ্যায় নয়।
চালু করার আগে যা জানা দরকার
- প্রথম সিঙ্ক লম্বা। pruned নোডও পুরোনো ব্লক ফেলার আগে পুরো চেইন — 700 GB-এর বেশি — ডাউনলোড করে যাচাই করে। আমাদের প্ল্যানে 1 Gbit/s-এ ট্রাফিক সীমাহীন, তাই বাড়তি খরচ নেই, কিন্তু 4 vCPU সার্ভারে দিনের হিসাবে ভাবুন। রিপোজিটরিতে একটা ফাস্ট-সিঙ্ক স্ক্রিপ্ট আছে; সেটা অন্য কারও UTXO সেটের কপির ওপর ভরসা করে কাজটা এড়িয়ে যায়, যা নিজের নোড চালানোর কারণের একটা অংশই নষ্ট করে।
- আপডেট।
btcpay-update.shBTCPay আর তার নির্ভরতার নতুন সংস্করণ আনে। শান্ত সময়ে চালান, সেলের মাঝখানে নয়। - কীসের ব্যাকআপ নেবেন। কেবল xpub দিয়ে যুক্ত ওয়ালেটে আপনার কয়েন সার্ভারে থাকে না। হারাতে পারেন Postgres-এ থাকা স্টোরের সেটআপ আর ইনভয়েসের ইতিহাস — সেই ভলিউমের ব্যাকআপ নিন, আর ওয়ালেটের seed এমন জায়গায় রাখুন যার সঙ্গে এই সার্ভারের কোনো সম্পর্ক নেই।
- Lightning পরে। on-chain দিয়ে শুরু করুন। Lightning মানে বড় ব্লক উইন্ডো, চ্যানেল ব্যবস্থাপনা আর ইনবাউন্ড লিকুইডিটি — আলাদা একটা প্রজেক্ট, আর একটি Pro প্ল্যান যা আমরা অনুরোধে সেট করে দিই।
আমার মত: দিনে একবার bitcoin নেওয়া ছোট দোকানের জন্য Small-IP-তে BTCPay সবচেয়ে পরিচ্ছন্ন সেটআপ। কার্ড পেমেন্ট বা ফিয়াটে টাকা তোলার দরকার হলে এটা সেই টুল নয়।
সম্পর্কিত
- VPS-এ নিজের Bitcoin নোড চালান: শুধু নোড, যদি কেবল নিজের ওয়ালেট যাচাই করতে চান
- VPS-এ নিজের Monero নোড চালান
- Crypto VPS: ক্রিপ্টোতে সার্ভারের দাম দেওয়া
- নিজস্ব IP-তে ওয়েবসাইটের জন্য VPS: যে দোকান গ্রাহকদের BTCPay-তে পাঠায়
- ufw ফায়ারওয়াল কীভাবে কনফিগার করবেন
মন্তব্য
এখনো কোনো মন্তব্য নেই। প্রথম হোন।