Architecture
Deployment Architecture
How to deploy EasyFlow for a public demo or self-hosted business setup, and what each service does.
Recommended demo architecture
For a beginner-friendly public demo, the simplest architecture is one VM running the full stack with Docker Compose. This keeps cost at zero on Oracle Always Free and avoids complicated multi-service hosting.
text
Internet
↓
EasyFlow web (Next.js) :3000
EasyFlow API (FastAPI) :8000
n8n :5678
RabbitMQ :5672 / :15672
Postgres internal Docker networkWhat runs where
| Service | Purpose | Why it exists |
|---|---|---|
| web | Frontend product UI | Landing page, dashboards, workflow canvas, settings, docs |
| api | Backend business logic | Access control, tenants, workflows, connectors, webhooks |
| postgres | Database | Stores tenant, user, workflow, and integration data |
| rabbitmq | Async messaging | Moves events from API to worker-style processing paths |
| n8n | Integration automation | Pulls from ERP APIs and pushes normalised events to EasyFlow |
Public URLs for a demo
- EasyFlow app: http://YOUR_SERVER_IP:3000
- API health check: http://YOUR_SERVER_IP:8000/health
- n8n: http://YOUR_SERVER_IP:5678
- RabbitMQ management: http://YOUR_SERVER_IP:15672
Free Oracle VM path
If you want a completely free demo, Oracle Cloud Always Free is the easiest choice. One Ubuntu VM can host the whole stack. Create the VM, open the ports, copy the project, set the .env values, and run docker compose up -d --build.
✦Use the DEPLOY_ORACLE_FREE.md guide in the repo for the exact step-by-step commands. It is the fastest path to getting a public demo live.
What to harden later
- Add HTTPS with a reverse proxy such as Caddy or Nginx
- Move from raw server IP to a proper domain
- Set strong secrets for auth and webhooks
- Restrict public ports you do not need
- Back up the Postgres volume regularly