−25%

на річну оплату Windows, до 31.10. До тарифів

EQVPS
Почати

VPS для Activepieces: своя автоматизація

Відкритий конструктор автоматизацій Activepieces на своєму сервері: без оплати за кожне завдання, вебхуки на вашому домені. Перевірене встановлення.

Хмарні сервіси автоматизацій беруть гроші за кожне завдання, і лічильник крутиться навіть на тому, що роботою назвати важко. Потік, який раз на п'ять хвилин перевіряє стрічку, — це 8 640 запусків на місяць ще до того, як він зробив щось корисне. Запустіть той самий потік на своєму сервері — і платити ви будете тільки за сервер.

Activepieces — відкритий конструктор автоматизацій: тригери, кроки, розгалуження, кілька сотень готових інтеграцій і кроки з кодом, коли готових не вистачає. Community-версія під ліцензією MIT, і на одному невеликому сервері з Docker Compose вона живе спокійно.

Який тариф

Ми поставили його на тестовий сервер і заміряли. Стандартний compose-файл запускає застосунок і п'ять воркерів: разом із Postgres і Redis виходить близько 2,6–3 ГБ RAM. З одним воркером — приблизно 1,6 ГБ.

Що запускаєтеТариф
Кілька особистих потоків, один воркерMicro-IP — 2 vCPU, 2 ГБ, 25 ГБ ($10/міс), плюс swap
Стандартна схема: п'ять воркерів, потоки команди, вебхукиSmall-IP — 4 vCPU, 4 ГБ, 35 ГБ ($16/міс)
Багато запусків одночасно, важкі кроки з кодомMedium-IP — 6 vCPU, 6 ГБ, 45 ГБ ($20/міс)

Беріть тариф зі своєю 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 потрібен не лише для посилань в інтерфейсі: через нього воркери підключаються до застосунку. Залиште http://localhost:8080 — і кожен контейнер воркера шукатиме застосунок усередині себе, не знайде, і ваші потоки так і не опублікуються. Ми саме на це й натрапили: «Socket.IO connection error» у логах воркера, запит на публікацію, що завис, і вебхуки, які відповідали 404. Зі справжнім доменом той самий потік опублікувався, і вебхук спрацював.

sed по docker-compose.yml лишає порт 8080 на localhost. Порти, які публікує Docker, проходять повз ufw, тож без цього застосунок був би відкритий на голому порту поряд із вашим HTTPS.

На Micro-IP також залиште один воркер:

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 як успішний. Якщо замість цього 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-токени від інших сервісів.
  • Кроки з кодом не ізольовані в цій схемі (AP_EXECUTION_MODE=UNSANDBOXED). Сервер ваш і потоки ваші, тож це прийнятно. Перестає бути прийнятним тієї миті, коли ви пускаєте збирати потоки людей, яким не довіряєте.

Якщо ви вже знаєте n8n, ідея та сама — див. VPS для n8n. Обирайте редактор, у якому вам легше думати; обидва добре почуваються на тих самих тарифах.

За темою

Готові розгорнути? Оплата криптою, без KYC — сервер за хвилину.

Розгорнути →

Часті питання

Скільки пам'яті потрібно Activepieces?

Стандартний docker-compose.yml запускає застосунок і п'ять воркерів; на нашому тестовому сервері разом із Postgres і Redis це зайняло приблизно 2,6–3 ГБ. З одним воркером — близько 1,6 ГБ. Small-IP (4 ГБ) тягне стандартну схему із запасом; на Micro-IP (2 ГБ) — лише з одним воркером і swap-файлом.

Потік не публікується, а вебхук відповідає 404. Що не так?

Перевірте AP_FRONTEND_URL. Воркери підключаються до застосунку за цією адресою, і якщо там лишилося http://localhost:8080, то «localhost» усередині контейнера воркера — це сам воркер. Підключитися не виходить, публікація зависає, вебхуки відповідають 404. Пропишіть свій справжній домен з https:// до першого запуску.

Чи потрібна виділена IP-адреса?

Так, якщо ви користуєтеся вебхуками — а користуються майже всі. Сервіси, які викликають ваші потоки, мають достукатися до портів 80 і 443 на вашому домені, а тариф NAT ззовні приймає тільки ваш SSH-порт.

Чи може будь-хто зареєструватися на моєму сервері?

Лише найперший. У нашому тесті перша реєстрація пройшла, а друга отримала «User is not invited to the platform»: після першого акаунта вхід тільки за запрошеннями. Тож створіть свій акаунт одразу, щойно підніметься сайт, — поки сторінку не знайшов хтось інший.

Кроки з кодом ізольовані?

За замовчуванням ні: у цій схемі вони виконуються з AP_EXECUTION_MODE=UNSANDBOXED, просто всередині воркера. Це нормально, поки потоки збираєте ви й люди, яким ви довіряєте. Давати доступ до редактора стороннім на такому встановленні не варто.

Коментарі

Поки немає коментарів. Будьте першим.

Залишити коментар

Коментарі проходять модерацію перед публікацією.