হোস্টেড অটোমেশন সার্ভিসগুলো প্রতি টাস্কে টাকা নেয়, আর মিটার এমন জিনিসেও চলে যেগুলো আসলে কাজই নয়। প্রতি পাঁচ মিনিটে একটি ফিড দেখা একটি ফ্লো কাজের কিছু করার আগেই মাসে 8,640 বার রান হয়ে যায়। একই ফ্লো নিজের সার্ভারে চালান, বিল হবে শুধু সার্ভারের।
Activepieces একটি ওপেন-সোর্স অটোমেশন বিল্ডার: ট্রিগার, স্টেপ, শাখা, কয়েকশো তৈরি ইন্টিগ্রেশন, আর তৈরিগুলো না কুলোলে কোড স্টেপ। কমিউনিটি সংস্করণ MIT লাইসেন্সে, আর Docker Compose দিয়ে একটি ছোট সার্ভারেই দিব্যি চলে।
কোন প্ল্যান
আমরা এটি একটি টেস্ট সার্ভারে বসিয়ে মেপেছি। ডিফল্ট compose ফাইল অ্যাপ আর পাঁচটি worker চালায়: Postgres আর Redis মিলিয়ে প্রায় 2.6–3 GB RAM। একটি worker-এ নামালে প্রায় 1.6 GB-তে নেমে আসে।
| আপনি কী চালান | প্ল্যান |
|---|---|
| কয়েকটি ব্যক্তিগত ফ্লো, একটি worker | Micro-IP: 2 vCPU, 2 GB, 25 GB (মাসে $10), swap যোগ করুন |
| ডিফল্ট সেটআপ: পাঁচটি worker, টিমের ফ্লো, webhook | Small-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। যে এডিটরে ভাবতে সহজ লাগে সেটাই বেছে নিন; দুটোই একই প্ল্যানে ভালো চলে।
সম্পর্কিত
- n8n-এর জন্য VPS: নিজে হোস্ট করা আরেকটি বড় অটোমেশন টুল
- এক VPS-এ একাধিক সার্ভিস: আপনার অ্যাপ আর ড্যাশবোর্ডের পাশে Activepieces, একটি IP
- Docker-এর জন্য VPS
- VPS-এ swap কীভাবে যোগ করবেন
- ufw ফায়ারওয়াল কীভাবে কনফিগার করবেন
মন্তব্য
এখনো কোনো মন্তব্য নেই। প্রথম হোন।