−25%

op Windows bij jaarbetaling, tot 31/10. Naar de pakketten

EQVPS
Aan de slag

VPS voor Activepieces: automatisering zelf hosten

Activepieces, de opensource-bouwer voor automatiseringen, op je eigen server: geen kosten per taak, webhooks op je domein. Geteste installatie.

Gehoste automatiseringsdiensten rekenen per taak, en de meter loopt ook bij dingen die eigenlijk geen werk zijn. Een flow die elke vijf minuten een feed controleert, komt op 8.640 runs per maand voordat hij ook maar iets nuttigs heeft gedaan. Draai dezelfde flow op je eigen server en de rekening is de server.

Activepieces is een opensource-bouwer voor automatiseringen: triggers, stappen, vertakkingen, een paar honderd kant-en-klare integraties en codestappen voor als die niet volstaan. De community-editie valt onder de MIT-licentie en draait prima op één kleine server met Docker Compose.

Welk plan

We installeerden het op een testserver en maten. Het standaard compose-bestand start de app en vijf workers: samen met Postgres en Redis zo'n 2,6–3 GB RAM. Met één worker zakt het naar ongeveer 1,6 GB.

Wat je draaitPlan
Een paar persoonlijke flows, één workerMicro-IP: 2 vCPU, 2 GB, 25 GB ($10/mnd), plus swap
De standaardopzet: vijf workers, teamflows, webhooksSmall-IP: 4 vCPU, 4 GB, 35 GB ($16/mnd)
Veel runs tegelijk, zware codestappenMedium-IP: 6 vCPU, 6 GB, 45 GB ($20/mnd)

Neem een plan met een eigen IPv4. Webhooks zijn de belangrijkste reden om dit zelf te hosten, en de diensten die ze aanroepen moeten poort 80 en 443 bereiken; op NAT-plannen is van buitenaf alleen de SSH-poort bereikbaar. De locaties zijn Duitsland en Finland; de beschikbaarheid zie je bij het bestellen. Betalen met crypto kan, zonder KYC.

Installatie

Laat eerst een domein, bijvoorbeeld flows.example.com, naar de server wijzen. Dan, als root op Ubuntu 24.04 of 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 kopieert .env.example naar .env en vult willekeurige geheimen in. Pas vóór de eerste start twee regels in .env en één in het compose-bestand aan:

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

De eerste regel is degene die ertoe doet. AP_FRONTEND_URL is niet alleen voor links in de interface: de workers verbinden via dat adres met de app. Laat je het op http://localhost:8080 staan, dan zoekt elke workercontainer de app in zichzelf, vindt hem niet, en je flows worden nooit gepubliceerd. Precies dat overkwam ons: „Socket.IO connection error” in de workerlogs, een publicatie die bleef hangen en webhooks die 404 gaven. Met het echte domein werd dezelfde flow gepubliceerd en liep de webhook.

De sed op docker-compose.yml houdt poort 8080 op localhost. Door Docker gepubliceerde poorten gaan langs ufw heen; zonder deze regel zou de app naast je HTTPS open staan op een kale poort.

Ga op Micro-IP ook terug naar één worker:

sed -i 's/replicas: 5/replicas: 1/' docker-compose.yml

Nu HTTPS en de 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

Wacht een halve minuut, open https://flows.example.com en maak meteen je account aan. Wie zich als eerste aanmeldt, is eigenaar van het platform; daarna kan aanmelden alleen nog op uitnodiging.

Controleer of webhooks werken

Maak een flow met de trigger Webhook (Catch Webhook), voeg een willekeurige stap toe en publiceer hem. Het triggerpaneel toont de URL. Stuur er een testevent naartoe:

curl -X POST https://flows.example.com/api/v1/webhooks/YOUR_FLOW_ID \
  -H 'content-type: application/json' \
  -d '{"event":"payment.paid","amount":16}'

Je zou een 200 moeten krijgen, en de run verschijnt onder Runs als geslaagd. Krijg je in plaats daarvan 404, controleer dan opnieuw AP_FRONTEND_URL.

Voor daarna

  • Updates. Het compose-bestand pint een exacte versie (0.92.2 op het moment van schrijven). Pas de tag in docker-compose.yml aan en draai dan docker compose -p activepieces pull && docker compose -p activepieces up -d. Lees eerst even de release notes; automatiseringstools hernoemen graag dingen.
  • Back-ups. Flows, verbindingen en runhistorie staan in het Postgres-volume. Maak volgens een schema een dump en bewaar de kopie buiten de server: de verbindingen bevatten je API-tokens voor andere diensten.
  • Codestappen draaien niet in een sandbox in deze opzet (AP_EXECUTION_MODE=UNSANDBOXED). Het is jouw server en het zijn jouw flows, dus dat is acceptabel. Dat houdt op zodra je mensen die je niet vertrouwt flows laat bouwen.

Ken je n8n al, dan is het idee hetzelfde: zie VPS voor n8n. Kies de editor waarin je het makkelijkst denkt; beide draaien prima op dezelfde plannen.

Gerelateerd

Klaar om te implementeren? Betaal met crypto, geen KYC — live in ongeveer een minuut.

Nu implementeren →

FAQ

Hoeveel RAM heeft Activepieces nodig?

De standaard docker-compose.yml start de app plus vijf workers; op onze testserver kwam dat met Postgres en Redis op ongeveer 2,6–3 GB. Met één worker was het zo'n 1,6 GB. Small-IP (4 GB) draait de standaardopzet met ruimte over; Micro-IP (2 GB) werkt alleen met één worker en een swapbestand.

Mijn flow wil niet publiceren en de webhook geeft 404. Wat is er mis?

Controleer AP_FRONTEND_URL. De workers bereiken de app via dat adres, en staat het nog op http://localhost:8080, dan is „localhost” in een workercontainer de worker zelf. De workers kunnen niet verbinden, publiceren blijft hangen en webhooks geven 404. Zet je echte https://-domein erin vóór de eerste start.

Heb ik een eigen IP-adres nodig?

Ja, als je webhooks gebruikt, en dat doen de meeste mensen. Diensten die je flows aanroepen moeten poort 80 en 443 op je domein kunnen bereiken, en een NAT-plan accepteert van buitenaf alleen je SSH-poort.

Kan iedereen zich op mijn instance aanmelden?

Alleen de allereerste persoon. In onze test ging de eerste aanmelding door en kreeg de tweede „User is not invited to the platform”: na het eerste account kan aanmelden alleen nog op uitnodiging. Maak je account dus meteen aan zodra de site draait, voordat iemand anders de pagina vindt.

Zijn codestappen geïsoleerd?

Standaard niet: de compose-opzet voert codestappen uit met AP_EXECUTION_MODE=UNSANDBOXED, gewoon in de worker. Dat is prima zolang alleen jij en mensen die je vertrouwt flows bouwen. Geef op deze installatie geen editortoegang aan vreemden.

Reacties

Nog geen reacties. Wees de eerste.

Laat een reactie achter

Reacties worden gemodereerd voordat ze verschijnen.