سرویسهای اتوماسیون میزبانیشده برای هر تسک پول میگیرند و کنتور حتی روی چیزهایی که اصلاً کار نیستند هم میچرخد. جریان کاری که هر پنج دقیقه یک فید را چک میکند، پیش از آنکه کار مفیدی بکند ماهانه ۸۶۴۰ اجرا میشود. همان جریان را روی سرور خودتان اجرا کنید تا صورتحساب فقط خود سرور باشد.
Activepieces یک سازندهٔ اتوماسیون متنباز است: تریگرها، گامها، انشعابها، چند صد یکپارچهسازی آماده و گامهای کد برای وقتی که آمادهها کافی نیستند. نسخهٔ community مجوز MIT دارد و روی یک سرور کوچک با Docker Compose بیدردسر اجرا میشود.
کدام پلن
آن را روی یک سرور آزمایشی نصب کردیم و اندازه گرفتیم. فایل compose پیشفرض اپ و پنج worker را بالا میآورد: همراه با Postgres و Redis حدود ۲٫۶ تا ۳ گیگابایت RAM. با یک worker به حدود ۱٫۶ گیگابایت میرسد.
| چه اجرا میکنید | پلن |
|---|---|
| چند جریان کار شخصی، یک worker | Micro-IP: ۲ vCPU، ۲ گیگابایت، ۲۵ گیگابایت (۱۰ دلار در ماه)، swap اضافه کنید |
| چیدمان پیشفرض: پنج worker، جریانهای تیمی، وبهوک | Small-IP: ۴ vCPU، ۴ گیگابایت، ۳۵ گیگابایت (۱۶ دلار در ماه) |
| اجراهای همزمان زیاد، گامهای کد سنگین | Medium-IP: ۶ vCPU، ۶ گیگابایت، ۴۵ گیگابایت (۲۰ دلار در ماه) |
پلنی با IPv4 اختصاصی بگیرید. وبهوکها دلیل اصلی میزبانی این ابزار توسط خودتان هستند و سرویسهایی که آنها را صدا میزنند باید به پورتهای 80 و 443 برسند؛ در پلنهای NAT از بیرون فقط پورت SSH در دسترس است. موقعیتها آلمان و فنلاند هستند و موجودی هنگام سفارش دیده میشود. میتوانید با رمزارز پرداخت کنید، بدون KYC.
نصب
اول یک دامنه — مثلاً flows.example.com — را به سرور اشاره دهید. سپس با root روی Ubuntu 24.04 یا Debian 12:
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 اپ را درون خودش جستوجو میکند، پیدایش نمیکند و جریانهای کار شما هرگز منتشر نمیشوند. دقیقاً همین برای ما پیش آمد: «Socket.IO connection error» در لاگهای worker، یک درخواست انتشار که گیر کرد و وبهوکهایی که ۴۰۴ میدادند. با دامنهٔ واقعی، همان جریان منتشر شد و وبهوک اجرا شد.
دستور sed روی docker-compose.yml پورت 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 (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 بهعنوان موفق دیده شود. اگر بهجای آن ۴۰۴ گرفتید، برگردید و AP_FRONTEND_URL را بررسی کنید.
برای روزهای بعد
- بهروزرسانیها. فایل compose یک نسخهٔ دقیق را ثابت میکند (هنگام نوشتن
0.92.2). برچسب را درdocker-compose.ymlعوض کنید، سپسdocker compose -p activepieces pull && docker compose -p activepieces up -d. اول نگاهی به یادداشتهای انتشار بیندازید؛ ابزارهای اتوماسیون عاشق تغییر نام چیزها هستند. - پشتیبانگیری. جریانهای کار، اتصالها و تاریخچهٔ اجرا در volume پایگاه Postgres است. طبق برنامه از آن dump بگیرید و نسخه را بیرون از سرور نگه دارید — اتصالها توکنهای API شما برای سرویسهای دیگر را در خود دارند.
- گامهای کد در sandbox اجرا نمیشوند در این چیدمان (
AP_EXECUTION_MODE=UNSANDBOXED). سرور مال شماست و جریانهای کار هم، پس قابل قبول است. از لحظهای که اجازه دهید افرادی که به آنها اعتماد ندارید جریان کار بسازند، دیگر قابل قبول نیست.
اگر n8n را میشناسید، ایده همان است — سرور VPS برای n8n را ببینید. ویرایشگری را انتخاب کنید که در آن راحتتر فکر میکنید؛ هر دو روی همین پلنها خوب کار میکنند.
مرتبط
- سرور VPS برای n8n: ابزار بزرگ دیگر اتوماسیون خودمیزبان
- چند سرویس روی یک VPS: Activepieces کنار اپ شما و یک داشبورد، با یک IP
- سرور VPS برای Docker
- چگونه روی VPS فایل swap اضافه کنیم
- چگونه فایروال ufw را پیکربندی کنیم
نظرات
هنوز نظری نیست. اولین نفر باشید.