Open-source Planning & Shop Floor Execution for Job Shops
Hosted Version · Docs · Issues
Eryxon Flow is an open-source MES for metalworking job shops. It runs as a self-hosted platform and installs as a desktop app straight from your browser, no Electron or extra runtime. It's free under Apache 2.0: use it, fork it, adapt it however you like.
Track jobs through production, give operators tablet-friendly work queues, view 3D CAD models in the browser, and connect it to your ERP or planning system.
See the Architecture docs to learn how it fits together, and the Changelog for what's new.
Built for high-mix, low-volume production: sheet metal, machine shops, custom fabrication. If you're tracking thousands of unique parts through cutting, bending, welding, and assembly, this is for you.
Shop Floor
- Touch-friendly operator terminals (tablets, kiosks)
- Kanban work queues organized by production cell
- Real-time tracking via WebSockets
- Time tracking with one-tap clock in/out
Management
- Job and part tracking with full production visibility
- 3D STEP viewer — browser-based CAD, no software install
- QRM dashboard with WIP limits and capacity overview
- Issue tracking and quality management (NCR)
Integration
- REST API with 30+ endpoints (jobs, parts, operations, time entries, webhooks)
- Planning adapters (FrePPLe, Odoo MRP) for scheduling integration
- ERP sync with incremental change detection
- MQTT connectivity with retry, circuit breaker, dead letter queue
- Webhook notifications for lifecycle events
- MCP server for AI assistant integration
Platform
- Multi-language (English, Dutch, German)
- Multi-tenant SaaS with row-level security
- Self-hostable via Docker Compose
- Apache 2.0 license — fully open source, free for any use
git clone https://github.com/SheetMetalConnect/eryxon-flow.git
cd eryxon-flow
cp .env.example .env # Add your Supabase credentials
npm install
npm run dev # http://localhost:8080Requires: Node.js 20+, Supabase project
React 18 + Vite + Tailwind + shadcn/ui
|
Supabase Client
|
PostgreSQL + Auth + RLS + Realtime + Storage
|
Edge Functions (Deno) ── 30+ REST API endpoints
|
Webhooks + MQTT + MCP Server
| Layer | Tech |
|---|---|
| Frontend | React 18, TypeScript, Vite, Tailwind CSS, shadcn/ui |
| Backend | Supabase (PostgreSQL 17, Edge Functions, Realtime) |
| 3D Viewer | Three.js with browser-side STEP parsing |
| Deployment | Vercel (frontend), Supabase (backend), Docker (self-hosted) |
| API | REST with API key auth, rate limiting, webhook dispatch |
Eryxon Flow ships as an installable Progressive Web App, so it runs as a standalone desktop application with its own Dock/Launchpad/Start-menu tile — no Electron, no extra runtime.
macOS — Safari 17+ (Sonoma): open the app, then File → Add to Dock…. The app appears in Launchpad and Applications.
macOS / Windows / Linux — Chrome, Edge, Brave: click the install icon at the right of the address bar (or ⋮ → Install / Apps → Install this site). On macOS the resulting .app bundle shows up in Launchpad with the Eryxon icon.
iOS / iPadOS — Safari: Share → Add to Home Screen.
Android — Chrome: ⋮ → Install app.
The installed app launches in a standalone window with its own icon and works offline for assets it has already loaded. Runtime config (/env.js) and API calls always go to the network. When a new version ships, a toast prompts the operator to reload — no forced mid-shift reloads on shop-floor terminals.
If you change the brand mark, edit public/pwa-icon.svg and rerun:
npm run pwa:assetsThis regenerates pwa-{64,192,512}.png, maskable-icon-512x512.png, apple-touch-icon-180x180.png, and favicon.ico from the SVG source.
Full self-hosting guide: eryxon.eu/guides/self-hosting
docker compose up -d30+ REST endpoints with filtering, pagination, search, and webhook notifications.
# List jobs
curl https://your-project.supabase.co/functions/v1/api-jobs \
-H "Authorization: Bearer ery_live_your_api_key"
# Create a job with nested parts and operations
curl -X POST https://your-project.supabase.co/functions/v1/api-jobs \
-H "Authorization: Bearer ery_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{"job_number":"WO-001","customer":"Acme","parts":[...]}'Full API reference: eryxon.eu/api/rest-api-reference
Full docs at eryxon.eu — run locally with cd website && npm run dev.
| Section | Link |
|---|---|
| Introduction | eryxon.eu/introduction |
| Quick Start | eryxon.eu/guides/quick-start |
| Architecture | eryxon.eu/architecture/app-architecture |
| REST API Reference | eryxon.eu/api/rest-api-reference |
| MCP Server | eryxon.eu/api/mcp-server-reference |
| Deployment | eryxon.eu/guides/deployment |
| Self Hosting | eryxon.eu/guides/self-hosting |
| Operator Manual | eryxon.eu/guides/operator-manual |
| Changelog | eryxon.eu/guides/changelog |
| Surface | Setup | Deploy + test guide |
|---|---|---|
| iOS / iPadOS | docs/IOS.md |
docs/DEPLOY_AND_TEST.md |
| Android | docs/ANDROID.md |
docs/DEPLOY_AND_TEST.md |
| Installable PWA (web + desktop) | n/a — npm run build |
docs/DEPLOY_AND_TEST.md |
This repo is optimized for AI coding assistants:
| Tool | Config File |
|---|---|
| Claude Code | CLAUDE.md |
| GitHub Copilot | .github/copilot-instructions.md |
| Cursor | .cursorrules |
| Codex / Windsurf / Cline | AGENTS.md |
Specialized sub-agents in .agents/ for database, tech stack, and repo operations.
The codebase is indexed into a queryable knowledge graph via OpenTrace. The current local index reports 1,019 functions, 45 classes, 822 files, 144 directories, 143 packages, and 3,341 graph edges for AI-assisted development.
pip install opentraceai # One-time install
opentraceai index . # Index the codebase (~3s)
opentraceai stats # View what's indexedClaude Code commands: /explore <name>, /graph-status, /interrogate <question>. Agents: @opentrace, @code-explorer, @dependency-analyzer, @find-usages, @explain-service.
Developer docs (in docs/): Architecture | API Catalog | Routes | Hooks | Conventions | Glossary | Troubleshooting | ADRs | MCP Setup
Apache License 2.0
- Fully open source — free for any use, including commercial
- Use, modify, fork, and self-host without restriction
- Patent grant included
See LICENSE for full terms.
- Issues: GitHub Issues
- Docs: eryxon.eu
- Professional services: vanenkhuizen.com
Made in Europe by Van Enkhuizen · Sheet Metal Connect