Skip to content

Server requirements

ProfileCPURAMDisk
Default (runtime + designer + docs)2 cores4 GB30 GB
--profile mesh (+ Kafka + Pulsar)4 cores8 GB50 GB
--profile multi-broker (+ second Pulsar)4 cores12 GB80 GB

These are minimums for development / small-team use. Production deployments serving real traffic should size up — Camel routes plus the JVM happily use 2-4 GB of RAM each under load.

  • Docker Engine 24.0+ (Compose v2 plugin included)
  • Linux — any modern distro. We test on Ubuntu 24.04.
  • macOS / Windows work for development via Docker Desktop, but Let’s Encrypt provisioning needs port 80/443 reachable from the public internet, which most laptops aren’t.

The stack binds nothing on the host directly — Traefik is the only ingress. Make sure these are open:

PortProtocolSourcePurpose
80TCP0.0.0.0/0Let’s Encrypt HTTP-01 + HTTP→HTTPS redirect
443TCP0.0.0.0/0TLS-terminated traffic to all services

If you’re behind a load balancer (AWS ALB, Cloudflare etc.), terminate TLS at the LB and forward port 80+443 to your server.

The stack expects an external network named coolify. Coolify creates this automatically on first deploy. For non-Coolify hosts:

Terminal window
docker network create coolify

Once. The compose file declares it as external: true so it survives stack rebuilds without losing IPs.

Two external Docker volumes hold persistent data:

  • ipaas_ipaas-runtime-routes — deployed Camel YAML files
  • ipaas_ipaas-designer-flows — designer’s flow definitions + layouts

init.sh doesn’t create these — Compose creates them on first up. The ipaas_* prefix is a Compose convention (it prepends the project name); the ipaas-* mid-fix is preserved on the legacy live deployment and harmless for new installs.

If you ever rebuild from scratch (docker compose down -v), the volumes survive because they’re tagged external: true.