−25%

Windows-এর বার্ষিক পেমেন্টে, ৩১ অক্টোবর পর্যন্ত। প্ল্যান দেখুন

EQVPS
শুরু করুন

Activepieces-এর জন্য VPS: নিজের অটোমেশন

ওপেন-সোর্স অটোমেশন বিল্ডার Activepieces নিজের সার্ভারে চালান: প্রতি টাস্কে বিল নেই, webhook আপনার ডোমেনে। পরীক্ষিত ইনস্টলেশন আর URL-এর ফাঁদ।

হোস্টেড অটোমেশন সার্ভিসগুলো প্রতি টাস্কে টাকা নেয়, আর মিটার এমন জিনিসেও চলে যেগুলো আসলে কাজই নয়। প্রতি পাঁচ মিনিটে একটি ফিড দেখা একটি ফ্লো কাজের কিছু করার আগেই মাসে 8,640 বার রান হয়ে যায়। একই ফ্লো নিজের সার্ভারে চালান, বিল হবে শুধু সার্ভারের।

Activepieces একটি ওপেন-সোর্স অটোমেশন বিল্ডার: ট্রিগার, স্টেপ, শাখা, কয়েকশো তৈরি ইন্টিগ্রেশন, আর তৈরিগুলো না কুলোলে কোড স্টেপ। কমিউনিটি সংস্করণ MIT লাইসেন্সে, আর Docker Compose দিয়ে একটি ছোট সার্ভারেই দিব্যি চলে।

কোন প্ল্যান

আমরা এটি একটি টেস্ট সার্ভারে বসিয়ে মেপেছি। ডিফল্ট compose ফাইল অ্যাপ আর পাঁচটি worker চালায়: Postgres আর Redis মিলিয়ে প্রায় 2.6–3 GB RAM। একটি worker-এ নামালে প্রায় 1.6 GB-তে নেমে আসে।

আপনি কী চালানপ্ল্যান
কয়েকটি ব্যক্তিগত ফ্লো, একটি workerMicro-IP: 2 vCPU, 2 GB, 25 GB (মাসে $10), swap যোগ করুন
ডিফল্ট সেটআপ: পাঁচটি worker, টিমের ফ্লো, webhookSmall-IP: 4 vCPU, 4 GB, 35 GB (মাসে $16)
একসঙ্গে অনেক রান, ভারী কোড স্টেপMedium-IP: 6 vCPU, 6 GB, 45 GB (মাসে $20)

নিজস্ব IPv4-সহ প্ল্যান নিন। এটি নিজে হোস্ট করার মূল কারণই webhook, আর যেসব সার্ভিস সেগুলো কল করে তাদের 80 আর 443 পোর্টে পৌঁছাতে হয়; NAT প্ল্যানে বাইরে থেকে কেবল SSH পোর্টে পৌঁছানো যায়। লোকেশন জার্মানি আর ফিনল্যান্ড; অর্ডারের সময় প্রাপ্যতা দেখা যায়। চাইলে ক্রিপ্টোতে দিন, KYC নেই।

ইনস্টলেশন

আগে একটি ডোমেন — ধরা যাক flows.example.com — সার্ভারে নির্দেশ করুন। তারপর Ubuntu 24.04 বা Debian 12-এ root হিসেবে:

curl -fsSL https://get.docker.com | sh
git clone --depth 1 https://github.com/activepieces/activepieces.git
cd activepieces
sh tools/deploy.sh

deploy.sh ফাইল .env.example-কে .env-এ কপি করে আর র‍্যান্ডম সিক্রেট বসিয়ে দেয়। প্রথমবার চালুর আগে .env-এ দুটি লাইন আর compose ফাইলে একটি লাইন বদলান:

sed -i 's|^AP_FRONTEND_URL=.*|AP_FRONTEND_URL=https://flows.example.com|; s|^AP_TELEMETRY_ENABLED=.*|AP_TELEMETRY_ENABLED=false|' .env
sed -i "s|- '8080:80'|- '127.0.0.1:8080:80'|" docker-compose.yml

আসল ব্যাপার প্রথম লাইনে। AP_FRONTEND_URL শুধু ইন্টারফেসের লিংকের জন্য নয়: worker-রা এর মাধ্যমেই অ্যাপের সঙ্গে যুক্ত হয়। এটাকে http://localhost:8080-এ রেখে দিলে প্রতিটি worker কন্টেইনার অ্যাপকে নিজের ভেতরেই খোঁজে, পায় না, আর আপনার ফ্লো কখনো পাবলিশ হয় না। আমাদের ঠিক এটাই হয়েছিল: worker লগে «Socket.IO connection error», আটকে থাকা পাবলিশ অনুরোধ আর 404 দেওয়া webhook। আসল ডোমেন বসাতেই সেই ফ্লো পাবলিশ হলো, webhook-ও চলল।

docker-compose.yml-এ চালানো sed পোর্ট 8080-কে localhost-এ রাখে। Docker-এর প্রকাশিত পোর্ট ufw-কে এড়িয়ে যায়, তাই এটি ছাড়া অ্যাপটি আপনার HTTPS-এর পাশে একটি খোলা পোর্টে থেকে যেত।

Micro-IP-তে একটি worker-এও নেমে আসুন:

sed -i 's/replicas: 5/replicas: 1/' docker-compose.yml

এবার HTTPS আর চালু করা:

apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
flows.example.com {
    reverse_proxy 127.0.0.1:8080
}
EOF
systemctl reload caddy
ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp && ufw enable
docker compose -p activepieces up -d

আধা মিনিট অপেক্ষা করুন, https://flows.example.com খুলুন আর সঙ্গে সঙ্গে নিজের অ্যাকাউন্ট খুলুন। যে প্রথম সাইন আপ করে, সে-ই প্ল্যাটফর্মের মালিক; তারপর সাইন-আপ কেবল আমন্ত্রণে।

webhook কাজ করছে কি না দেখুন

Webhook ট্রিগার (Catch Webhook) দিয়ে একটি ফ্লো বানান, যেকোনো একটি স্টেপ যোগ করে পাবলিশ করুন। ট্রিগার প্যানেলে URL দেখা যাবে। সেখানে একটি টেস্ট ইভেন্ট পাঠান:

curl -X POST https://flows.example.com/api/v1/webhooks/YOUR_FLOW_ID \
  -H 'content-type: application/json' \
  -d '{"event":"payment.paid","amount":16}'

আপনার 200 পাওয়ার কথা, আর রানটি Runs-এ সফল হিসেবে দেখা যাবে। বদলে 404 পেলে ফিরে গিয়ে AP_FRONTEND_URL দেখুন।

পরের জন্য

  • আপডেট। compose ফাইল একটি নির্দিষ্ট ভার্সন পিন করে (লেখার সময় 0.92.2)। docker-compose.yml-এ ট্যাগ বদলান, তারপর docker compose -p activepieces pull && docker compose -p activepieces up -d। আগে release notes একবার দেখে নিন; অটোমেশন টুলগুলো জিনিসের নাম বদলাতে ভালোবাসে।
  • ব্যাকআপ। ফ্লো, কানেকশন আর রানের ইতিহাস থাকে Postgres ভলিউমে। নির্দিষ্ট সময়সূচিতে ডাম্প নিন আর কপি সার্ভারের বাইরে রাখুন — কানেকশনে অন্য সার্ভিসের জন্য আপনার API টোকেন থাকে।
  • কোড স্টেপ sandbox-এ চলে না এই সেটআপে (AP_EXECUTION_MODE=UNSANDBOXED)। সার্ভার আপনার, ফ্লোও আপনার, তাই এটা গ্রহণযোগ্য। যে মুহূর্তে অবিশ্বস্ত লোকদের ফ্লো বানাতে দেন, তখন আর গ্রহণযোগ্য থাকে না।

n8n আগে থেকে জানলে ধারণাটা একই — দেখুন n8n-এর জন্য VPS। যে এডিটরে ভাবতে সহজ লাগে সেটাই বেছে নিন; দুটোই একই প্ল্যানে ভালো চলে।

সম্পর্কিত

স্থাপন করতে প্রস্তুত? ক্রিপ্টোতে পরিশোধ করুন, KYC ছাড়াই — প্রায় এক মিনিটে লাইভ।

এখনই ডেপ্লয় করুন →

সাধারণ প্রশ্ন

Activepieces-এর কত RAM লাগে?

ডিফল্ট docker-compose.yml অ্যাপ আর পাঁচটি worker চালায়; আমাদের টেস্ট সার্ভারে Postgres আর Redis-সহ তা প্রায় 2.6–3 GB হয়েছে। একটি worker-এ প্রায় 1.6 GB। Small-IP (4 GB) ডিফল্ট সেটআপ স্বচ্ছন্দে চালায়; Micro-IP (2 GB) কেবল একটি worker আর swap ফাইল দিয়ে চলে।

আমার ফ্লো পাবলিশ হচ্ছে না, webhook 404 দিচ্ছে। সমস্যা কোথায়?

AP_FRONTEND_URL দেখুন। worker-রা এই ঠিকানা দিয়েই অ্যাপে পৌঁছায়, আর এটা http://localhost:8080 রয়ে গেলে worker কন্টেইনারের ভেতরে «localhost» মানে worker নিজেই। তারা সংযোগ করতে পারে না, পাবলিশ আটকে যায়, webhook 404 ফেরত দেয়। প্রথমবার চালুর আগেই নিজের আসল https:// ডোমেন বসান।

আমার কি নিজস্ব IP লাগবে?

হ্যাঁ, যদি webhook ব্যবহার করেন — আর বেশিরভাগ মানুষই করেন। যেসব সার্ভিস আপনার ফ্লো কল করে, তাদের আপনার ডোমেনের 80 আর 443 পোর্টে পৌঁছাতে হয়, আর NAT প্ল্যান বাইরে থেকে কেবল আপনার SSH পোর্ট গ্রহণ করে।

যে কেউ কি আমার ইনস্ট্যান্সে সাইন আপ করতে পারে?

কেবল প্রথম জন। আমাদের পরীক্ষায় প্রথম সাইন-আপ হয়ে গেছে, আর দ্বিতীয়টি পেয়েছে «User is not invited to the platform»: প্রথম অ্যাকাউন্টের পর সাইন-আপ কেবল আমন্ত্রণে। তাই সাইট চালু হওয়ামাত্র, অন্য কেউ পেজে পৌঁছানোর আগেই, নিজের অ্যাকাউন্ট খুলে ফেলুন।

কোড স্টেপ কি আলাদা করে চলে?

ডিফল্টে না: compose সেটআপ কোড স্টেপ AP_EXECUTION_MODE=UNSANDBOXED দিয়ে সরাসরি worker-এর ভেতরে চালায়। যতক্ষণ কেবল আপনি আর আপনার বিশ্বস্ত লোকেরা ফ্লো বানাচ্ছেন, ততক্ষণ ঠিক আছে। এই সেটআপে অপরিচিতদের এডিটরে ঢুকতে দেবেন না।

মন্তব্য

এখনো কোনো মন্তব্য নেই। প্রথম হোন।

একটি মন্তব্য দিন

মন্তব্য প্রকাশের আগে মডারেট করা হয়।