−25%

Windows 연간 결제, 10월 31일까지. 요금제 보기

EQVPS
시작하기

Activepieces용 VPS: 직접 운영하는 자동화

오픈소스 자동화 빌더 Activepieces를 내 서버에서 실행하세요. 작업당 과금 없음, 웹훅은 내 도메인에서. 검증된 설치 방법과 URL 함정.

호스팅형 자동화 서비스는 작업당 요금을 받고, 미터기는 일이라고 부르기도 어려운 것에도 돌아갑니다. 5분마다 피드를 확인하는 플로 하나가 쓸모 있는 일을 하기도 전에 한 달 8,640회 실행입니다. 같은 플로를 내 서버에서 돌리면 청구서는 서버 요금뿐입니다.

Activepieces는 오픈소스 자동화 빌더입니다. 트리거, 단계, 분기, 수백 개의 기성 통합이 있고, 기성품으로 부족할 때는 코드 단계를 씁니다. 커뮤니티 에디션은 MIT 라이선스이며 Docker Compose로 작은 서버 한 대에서 문제없이 돌아갑니다.

어떤 요금제

테스트 서버에 설치하고 측정했습니다. 기본 compose 파일은 앱과 worker 5개를 실행하며, Postgres와 Redis를 합쳐 약 2.6–3 GB RAM을 씁니다. worker를 하나로 줄이면 약 1.6 GB로 내려갑니다.

실행하는 것요금제
개인 플로 몇 개, worker 1개Micro-IP: 2 vCPU, 2 GB, 25 GB (월 $10), swap 추가
기본 구성: worker 5개, 팀 플로, 웹훅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)을 서버로 지정합니다. 그다음 Ubuntu 24.04 또는 Debian 12에서 root로:

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 컨테이너가 자기 안에서 앱을 찾다가 못 찾고, 플로는 영영 게시되지 않습니다. 저희가 정확히 그 일을 겪었습니다. worker 로그의 «Socket.IO connection error», 멈춘 게시 요청, 404를 반환하는 웹훅. 실제 도메인을 넣자 같은 플로가 게시되고 웹훅이 실행됐습니다.

docker-compose.yml에 대한 sed는 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

30초쯤 기다린 뒤 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를 실행하세요. 먼저 릴리스 노트를 훑어보세요. 자동화 도구는 이름 바꾸기를 좋아합니다.
  • 백업. 플로, 연결, 실행 기록은 Postgres 볼륨에 있습니다. 일정에 따라 덤프를 뜨고 사본은 서버 밖에 보관하세요. 연결에는 다른 서비스의 API 토큰이 들어 있습니다.
  • 코드 단계는 샌드박스에서 실행되지 않습니다(이 구성은 AP_EXECUTION_MODE=UNSANDBOXED). 내 서버에 내 플로이니 받아들일 만합니다. 신뢰하지 않는 사람에게 플로를 만들게 하는 순간 그렇지 않게 됩니다.

n8n을 이미 안다면 개념은 같습니다. n8n용 VPS를 보세요. 더 생각하기 편한 편집기를 고르면 되고, 둘 다 같은 요금제에서 잘 돌아갑니다.

관련 글

배포할 준비가 되셨나요? 암호화폐로 결제, KYC 없음 — 약 1분 만에 온라인.

지금 배포 →

FAQ

Activepieces에는 RAM이 얼마나 필요한가요?

기본 docker-compose.yml은 앱과 worker 5개를 실행합니다. 저희 테스트 서버에서는 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 그대로라면 worker 컨테이너 안의 «localhost»는 worker 자신입니다. 접속하지 못하니 게시가 멈추고 웹훅은 404를 반환합니다. 처음 실행하기 전에 실제 https:// 도메인을 넣으세요.

전용 IP가 필요한가요?

웹훅을 쓴다면 필요합니다. 그리고 대부분 씁니다. 플로를 호출하는 서비스가 도메인의 80번과 443번 포트에 닿아야 하는데, NAT 요금제는 외부에서 SSH 포트만 받습니다.

아무나 내 인스턴스에 가입할 수 있나요?

맨 처음 한 사람만 가능합니다. 저희 테스트에서 첫 가입은 통과했고 두 번째는 «User is not invited to the platform»을 받았습니다. 첫 계정 이후에는 초대로만 가입할 수 있습니다. 그러니 사이트가 뜨자마자, 다른 누군가가 페이지를 찾기 전에 계정을 만드세요.

코드 단계는 격리되어 있나요?

기본값으로는 아닙니다. compose 구성은 코드 단계를 AP_EXECUTION_MODE=UNSANDBOXED로 worker 안에서 바로 실행합니다. 플로를 만드는 사람이 나와 신뢰하는 사람뿐이라면 괜찮습니다. 이 구성에서 모르는 사람에게 편집기 접근 권한을 주지 마세요.

댓글

아직 댓글이 없습니다. 첫 번째가 되세요.

댓글 남기기

댓글은 표시되기 전에 검토됩니다.