Chmurowe usługi automatyzacji liczą za każde zadanie, a licznik kręci się nawet przy czymś, co trudno nazwać pracą. Przepływ, który co pięć minut sprawdza kanał, to 8640 uruchomień miesięcznie, zanim zrobi cokolwiek pożytecznego. Uruchom ten sam przepływ na własnym serwerze, a rachunkiem będzie sam serwer.
Activepieces to otwarty kreator automatyzacji: wyzwalacze, kroki, rozgałęzienia, kilkaset gotowych integracji i kroki z kodem, gdy gotowe nie wystarczają. Edycja community ma licencję MIT i spokojnie działa na jednym małym serwerze z Docker Compose.
Jaki plan
Zainstalowaliśmy go na serwerze testowym i zmierzyliśmy. Standardowy plik compose uruchamia aplikację i pięć workerów: razem z Postgres i Redis około 2,6–3 GB RAM. Z jednym workerem spada to do około 1,6 GB.
| Co uruchamiasz | Plan |
|---|---|
| Kilka osobistych przepływów, jeden worker | Micro-IP: 2 vCPU, 2 GB, 25 GB ($10/mies.), plus swap |
| Standardowa konfiguracja: pięć workerów, przepływy zespołu, webhooki | Small-IP: 4 vCPU, 4 GB, 35 GB ($16/mies.) |
| Wiele uruchomień naraz, ciężkie kroki z kodem | Medium-IP: 6 vCPU, 6 GB, 45 GB ($20/mies.) |
Weź plan z własnym IPv4. Webhooki to główny powód, by trzymać to u siebie, a usługi, które je wywołują, muszą dosięgnąć portów 80 i 443; na planach NAT z zewnątrz dostępny jest tylko port SSH. Lokalizacje to Niemcy i Finlandia; dostępność widać przy zamówieniu. Możesz zapłacić kryptowalutą, bez KYC.
Instalacja
Najpierw skieruj domenę — powiedzmy flows.example.com — na serwer. Potem jako root na Ubuntu 24.04 lub Debianie 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 kopiuje .env.example do .env i wpisuje losowe sekrety. Przed pierwszym uruchomieniem zmień dwie linie w .env i jedną w pliku 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
Liczy się pierwsza linia. AP_FRONTEND_URL służy nie tylko do linków w interfejsie: przez ten adres workery łączą się z aplikacją. Zostaw http://localhost:8080, a każdy kontener workera będzie szukał aplikacji w sobie, nie znajdzie jej i Twoje przepływy nigdy się nie opublikują. Dokładnie na to trafiliśmy: „Socket.IO connection error” w logach workera, zawieszona publikacja i webhooki odpowiadające 404. Z prawdziwą domeną ten sam przepływ się opublikował, a webhook zadziałał.
sed na docker-compose.yml zostawia port 8080 na localhost. Porty publikowane przez Dockera omijają ufw, więc bez tego aplikacja byłaby otwarta na gołym porcie obok Twojego HTTPS.
Na Micro-IP zejdź też do jednego workera:
sed -i 's/replicas: 5/replicas: 1/' docker-compose.yml
Teraz HTTPS i start:
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
Odczekaj pół minuty, otwórz https://flows.example.com i od razu załóż konto. Kto zarejestruje się pierwszy, ten jest właścicielem platformy; potem rejestracja jest wyłącznie na zaproszenie.
Sprawdź, czy webhooki działają
Utwórz przepływ z wyzwalaczem Webhook (Catch Webhook), dodaj dowolny krok i opublikuj go. W panelu wyzwalacza będzie URL. Wyślij na niego testowe zdarzenie:
curl -X POST https://flows.example.com/api/v1/webhooks/YOUR_FLOW_ID \
-H 'content-type: application/json' \
-d '{"event":"payment.paid","amount":16}'
Powinno przyjść 200, a uruchomienie pojawi się w Runs jako udane. Jeśli zamiast tego dostaniesz 404, wróć i sprawdź AP_FRONTEND_URL.
Na co dzień
- Aktualizacje. Plik compose przypina dokładną wersję (w chwili pisania
0.92.2). Zmień tag wdocker-compose.yml, potemdocker compose -p activepieces pull && docker compose -p activepieces up -d. Najpierw przejrzyj release notes; narzędzia do automatyzacji uwielbiają zmieniać nazwy. - Kopie zapasowe. Przepływy, połączenia i historia uruchomień leżą w wolumenie Postgres. Rób zrzut według harmonogramu i trzymaj kopię poza serwerem — w połączeniach są Twoje tokeny API do innych usług.
- Kroki z kodem nie działają w sandboksie w tej konfiguracji (
AP_EXECUTION_MODE=UNSANDBOXED). To Twój serwer i Twoje przepływy, więc jest to do przyjęcia. Przestaje być w chwili, gdy pozwalasz budować przepływy osobom, którym nie ufasz.
Jeśli znasz już n8n, idea jest ta sama — zobacz VPS dla n8n. Wybierz edytor, w którym łatwiej Ci myśleć; oba dobrze czują się na tych samych planach.
Powiązane
- VPS dla n8n — drugie duże narzędzie do automatyzacji na własnym serwerze
- Kilka usług na jednym VPS — Activepieces obok Twojej aplikacji i dashboardu, jeden IP
- VPS dla Dockera
- Jak dodać swap na VPS
- Jak skonfigurować zaporę ufw
Komentarze
Brak komentarzy. Bądź pierwszy.