−25%

за Windows при годишно плащане, до 31.10. Към плановете

EQVPS
Започни

VPS за Activepieces: собствена автоматизация

Отвореният конструктор на автоматизации Activepieces на ваш сървър: без плащане за всяка задача, уебхукове на вашия домейн. Проверена инсталация и капан с URL.

Облачните услуги за автоматизация таксуват всяка задача, а броячът се върти дори за неща, които трудно бихте нарекли работа. Поток, който на всеки пет минути проверява емисия, прави 8640 изпълнения на месец, преди да е свършил нещо полезно. Пуснете същия поток на свой сървър — и ще плащате само за сървъра.

Activepieces е отворен конструктор на автоматизации: тригери, стъпки, разклонения, няколкостотин готови интеграции и стъпки с код, когато готовите не стигат. Community версията е под лиценз 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-а, потоци на екипа, уебхуковеSmall-IP: 4 vCPU, 4 GB, 35 GB ($16/месец)
Много изпълнения едновременно, тежки стъпки с кодMedium-IP: 6 vCPU, 6 GB, 45 GB ($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 не е само за връзките в интерфейса: през него worker-ите се свързват с приложението. Оставите ли http://localhost:8080, всеки контейнер на worker търси приложението в себе си, не го намира и потоците ви така и не се публикуват. Точно на това попаднахме: „Socket.IO connection error“ в логовете на worker-а, увиснала заявка за публикуване и уебхукове, които отговаряха 404. С истинския домейн същият поток се публикува и уебхукът сработи.

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 като успешно. Ако вместо това дойде 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. Изберете редактора, в който ви е по-лесно да мислите; и двата се чувстват добре на същите планове.

Свързано

Готов за deploy? Плати в crypto, без KYC — онлайн за около минута.

Deploy-ни сега →

Въпроси

Колко RAM трябва на Activepieces?

Стандартният docker-compose.yml пуска приложението и пет worker-а; на тестовия ни сървър заедно с Postgres и Redis това излезе около 2,6–3 GB. С един worker — около 1,6 GB. Small-IP (4 GB) движи стандартната схема със запас; Micro-IP (2 GB) става само с един worker и swap файл.

Потокът не се публикува, а уебхукът отговаря 404. Какво не е наред?

Проверете AP_FRONTEND_URL. Worker-ите се свързват с приложението по този адрес и ако там е останало http://localhost:8080, то „localhost“ вътре в контейнера на worker-а е самият worker. Не успяват да се свържат, публикуването увисва, уебхуковете връщат 404. Задайте истинския си домейн с https:// преди първото пускане.

Трябва ли ми собствен IP адрес?

Да, ако ползвате уебхукове — а ги ползват почти всички. Услугите, които викат вашите потоци, трябва да стигат до портове 80 и 443 на домейна ви, а план с NAT приема отвън само вашия SSH порт.

Може ли всеки да се регистрира на моя сървър?

Само най-първият. В нашия тест първата регистрация мина, а втората получи „User is not invited to the platform“: след първия акаунт регистрацията е само с покана. Затова създайте акаунта си веднага щом сайтът тръгне — преди някой друг да е намерил страницата.

Изолирани ли са стъпките с код?

По подразбиране не: в тази схема те се изпълняват с AP_EXECUTION_MODE=UNSANDBOXED, направо в worker-а. Това е наред, докато потоците ги сглобявате вие и хора, на които имате доверие. Не давайте достъп до редактора на непознати при такава инсталация.

Коментари

Още няма коментари. Бъди първият.

Остави коментар

Коментарите се модерират преди да се появят.