|
1 | | -# Eryxon MES |
| 1 | +# Eryxon Flow |
2 | 2 |
|
3 | | -**The simple, elegant and powerful manufacturing execution system that your people will love to use. Made for SMB metal fabrication.** |
| 3 | +Open source Manufacturing Execution System (MES) for job shops and make-to-order manufacturers. |
4 | 4 |
|
5 | | -<div align="center"> |
| 5 | +## Features |
6 | 6 |
|
7 | | -[](LICENSE) |
8 | | -[](https://reactjs.org/) |
9 | | -[](https://www.typescriptlang.org/) |
10 | | -[](https://vite.dev/) |
11 | | -[](https://supabase.com/) |
| 7 | +- Job and part tracking with real-time status updates |
| 8 | +- Production planning and scheduling |
| 9 | +- Multi-tenant SaaS architecture with row-level security |
| 10 | +- Analytics and reporting (OEE, QRM, quality metrics) |
| 11 | +- REST API with webhooks for ERP integration |
| 12 | +- Shipping and logistics management |
| 13 | +- Multi-language support (English, Dutch, German) |
12 | 14 |
|
13 | | -</div> |
| 15 | +## Quick Deploy |
14 | 16 |
|
15 | | ---- |
| 17 | +See **[DEPLOY.md](DEPLOY.md)** for complete deployment instructions. |
16 | 18 |
|
17 | | -## About This Project |
| 19 | +## Prerequisites |
18 | 20 |
|
19 | | -Eryxon MES is built by [Sheet Metal Connect e.U.](https://www.sheetmetalconnect.com/), founded by Luke van Enkhuizen, for digital transformation of SMB metals companies. |
| 21 | +- [Supabase](https://supabase.com) account |
| 22 | +- [Cloudflare](https://cloudflare.com) account |
| 23 | +- Node.js 20+ |
20 | 24 |
|
21 | | -This is a starting point. Each shop is unique - fork it, customize it, make it yours. Sheet Metal Connect e.U. can help you self-host and adapt it to your specific needs. |
22 | | - |
23 | | -**Recommended:** Self-host with your own Supabase instance or Docker. |
24 | | - |
25 | | ---- |
26 | | - |
27 | | -## What Makes This Different |
28 | | - |
29 | | -- **MCP Server** - AI/automation ready out of the box |
30 | | -- **API-first** - Send data from any system |
31 | | -- **Webhooks** - Link to any other system |
32 | | -- **Event-driven, real-time** - Industry 4.0 ready |
33 | | -- **Modern UI** - Operators actually want to use it |
34 | | - |
35 | | -It's opinionated. Built for sheet metal manufacturing. Not for everyone. |
36 | | - |
37 | | -## ✨ Key Features |
38 | | - |
39 | | -- **Production Management** - Job tracking, parts routing, operation assignments, and issue tracking |
40 | | -- **QRM Capacity Management** - WIP limits, capacity warnings, and bottleneck prevention |
41 | | -- **Operator Terminal** - Real-time production interface with time tracking and 3D CAD viewer |
42 | | -- **Admin Dashboard** - Live production metrics, job wizard, and activity monitoring |
43 | | -- **Multi-tenant SaaS** - Complete tenant isolation with row-level security |
44 | | -- **REST API & Webhooks** - Full integration capabilities with external systems |
45 | | -- **MCP Server** - AI-powered automation via Model Context Protocol |
46 | | -- **Multi-language** - English, Dutch, German with dark mode support |
47 | | - |
48 | | -## 🚀 Quick Start |
| 25 | +## Local Development |
49 | 26 |
|
50 | 27 | ```bash |
51 | | -# Install dependencies |
52 | | -npm install |
| 28 | +git clone https://github.com/SheetMetalConnect/eryxon-flow.git |
| 29 | +cd eryxon-flow |
53 | 30 |
|
54 | | -# Set up environment variables |
55 | 31 | cp .env.example .env |
56 | 32 | # Edit .env with your Supabase credentials |
57 | 33 |
|
58 | | -# Start development server |
| 34 | +npm install |
59 | 35 | npm run dev |
60 | 36 | ``` |
61 | 37 |
|
62 | | -Visit `http://localhost:8080` to access the application. |
63 | | - |
64 | | -## 📚 Documentation |
65 | | - |
66 | | -Comprehensive documentation is available in the [`/docs`](./docs) folder: |
67 | | - |
68 | | -- **[HOW-THE-APP-WORKS.md](docs/HOW-THE-APP-WORKS.md)** - Complete functional guide |
69 | | -- **[API_DOCUMENTATION.md](docs/API_DOCUMENTATION.md)** - REST API reference |
70 | | -- **[DESIGN_SYSTEM.md](docs/DESIGN_SYSTEM.md)** - Design tokens and styling |
71 | | -- **[EDGE_FUNCTIONS_SETUP.md](docs/EDGE_FUNCTIONS_SETUP.md)** - Edge Functions guide |
72 | | -- **[CICD_DEPLOYMENT_PLAN.md](docs/CICD_DEPLOYMENT_PLAN.md)** - CI/CD pipeline and Docker deployment |
73 | | -- **[CLAUDE.md](CLAUDE.md)** - AI assistant guide for contributors |
74 | | - |
75 | | -Additional documentation: |
76 | | -- [3D Viewer](docs/3d-viewer.md) |
77 | | -- [Notifications System](docs/NOTIFICATIONS_SYSTEM.md) |
78 | | -- [Data Export](docs/DATA_EXPORT_FEATURE.md) |
79 | | -- [Integrations Marketplace](docs/INTEGRATIONS_MARKETPLACE.md) |
80 | | -- [MCP Server Setup](mcp-server/README.md) |
81 | | - |
82 | | -## 🏗️ Tech Stack |
83 | | - |
84 | | -- **Frontend**: React 18, TypeScript 5.8, Vite 7, TailwindCSS 3 |
85 | | -- **UI**: shadcn/ui (54+ components), Material-UI, Lucide icons |
86 | | -- **State**: React Query, React Context |
87 | | -- **Backend**: Supabase (PostgreSQL, Realtime, Edge Functions, Storage) |
88 | | -- **Forms**: react-hook-form, Zod validation |
89 | | -- **3D**: Three.js for STEP file viewing |
90 | | -- **Charts**: Recharts |
91 | | -- **i18n**: i18next with en/nl/de support |
92 | | - |
93 | | -## 📁 Project Structure |
| 38 | +## Environment Variables |
94 | 39 |
|
95 | 40 | ``` |
96 | | -├── src/ |
97 | | -│ ├── components/ # UI components (admin, operator, terminal, qrm, etc.) |
98 | | -│ ├── pages/ # Route pages (admin, operator, common) |
99 | | -│ ├── hooks/ # Custom React hooks |
100 | | -│ ├── lib/ # Utility libraries |
101 | | -│ └── integrations/ # Supabase client |
102 | | -├── supabase/ |
103 | | -│ ├── functions/ # 23 Edge Functions |
104 | | -│ └── migrations/ # Database schema |
105 | | -├── mcp-server/ # Model Context Protocol server |
106 | | -└── docs/ # Documentation |
| 41 | +VITE_SUPABASE_URL |
| 42 | +VITE_SUPABASE_PUBLISHABLE_KEY |
| 43 | +VITE_SUPABASE_PROJECT_ID |
107 | 44 | ``` |
108 | 45 |
|
109 | | -## 🔒 Security |
110 | | - |
111 | | -- **Multi-Tenancy**: PostgreSQL Row-Level Security for complete data isolation |
112 | | -- **Authentication**: Supabase Auth with JWT tokens |
113 | | -- **API Security**: Bearer token auth with bcrypt-hashed keys |
114 | | -- **Webhooks**: HMAC-SHA256 signatures for verification |
115 | | - |
116 | | -## Getting Started |
| 46 | +See `.env.example` for complete list. |
117 | 47 |
|
118 | | -| | Hosted Demo | Self-Hosted (Recommended) | |
119 | | -|---|---|---| |
120 | | -| **Where** | Our infrastructure | Your infrastructure | |
121 | | -| **Usage** | Limited | Unlimited | |
122 | | -| **API** | Limited | Full | |
123 | | -| **Webhooks** | Limited | Full | |
124 | | -| **MCP Server** | Limited | Full | |
125 | | -| **Support** | Docs only | Community + Consulting | |
| 48 | +## Architecture |
126 | 49 |
|
127 | | -- **Hosted Demo** — Try it online, limited usage for evaluation and educational purposes |
128 | | -- **Self-Hosted** — Full features, unlimited usage, bring your own Supabase or Docker |
| 50 | +**Frontend**: React + TypeScript + Vite |
| 51 | +**UI**: shadcn/ui + Tailwind CSS |
| 52 | +**Backend**: Supabase (PostgreSQL + Edge Functions) |
| 53 | +**Deployment**: Cloudflare Pages |
| 54 | +**Database**: 85 migrations, multi-tenant schema |
| 55 | +**API**: 28 Edge Functions |
129 | 56 |
|
130 | | -**Recommended:** Self-host with your own Supabase instance. See the [Self-Hosting Guide](docs/SELF_HOSTING_GUIDE.md) for database setup, migrations, and deployment. |
| 57 | +## Documentation |
131 | 58 |
|
132 | | -Need help setting up or customizing? [Contact Sheet Metal Connect e.U. ](mailto:[email protected]) |
133 | | - |
134 | | -## Deployment |
135 | | - |
136 | | -### Self-Hosted |
137 | | - |
138 | | -```bash |
139 | | -# Clone and configure |
140 | | -git clone https://github.com/SheetMetalConnect/eryxon-flow.git |
141 | | -cd eryxon-flow |
142 | | -cp .env.example .env |
143 | | -# Edit .env with your Supabase credentials |
144 | | - |
145 | | -# Run with Docker |
146 | | -docker-compose up -d |
147 | | -``` |
148 | | - |
149 | | -See **[docs/SELF_HOSTING_GUIDE.md](docs/SELF_HOSTING_GUIDE.md)** for complete setup instructions. |
150 | | - |
151 | | -### Docker Quick Start |
152 | | - |
153 | | -```bash |
154 | | -docker pull ghcr.io/sheetmetalconnect/eryxon-flow:latest |
155 | | -docker run -p 8080:80 \ |
156 | | - -e VITE_SUPABASE_URL=your-url \ |
157 | | - -e VITE_SUPABASE_PUBLISHABLE_KEY=your-key \ |
158 | | - ghcr.io/sheetmetalconnect/eryxon-flow:latest |
159 | | -``` |
| 59 | +- [DEPLOY.md](DEPLOY.md) - Deployment guide |
| 60 | +- [docs/API_DOCUMENTATION.md](docs/API_DOCUMENTATION.md) - API reference |
| 61 | +- [docs/SELF_HOSTING_GUIDE.md](docs/SELF_HOSTING_GUIDE.md) - Self-hosting |
| 62 | +- [docs/DATABASE.md](docs/DATABASE.md) - Database schema |
| 63 | +- [docs/](docs/) - Complete documentation |
160 | 64 |
|
161 | 65 | ## License |
162 | 66 |
|
163 | | -**Business Source License 1.1 (BSL 1.1)** - Source Available |
| 67 | +**Business Source License 1.1** |
164 | 68 |
|
165 | | -This is an **open source repository** under the BSL 1.1 license, which allows source code access while preventing competitive SaaS offerings. |
166 | | - |
167 | | -**TL;DR:** Use it, modify it, self-host it - all free. Just don't host it and charge others for access. |
168 | | - |
169 | | -- ✅ Self-host for your own manufacturing operations - free, unlimited |
170 | | -- ✅ Fork it, modify it, make it yours - each shop is unique |
171 | | -- ✅ Use for internal business, development, testing, education |
172 | | -- ❌ Cannot host it and sell access as a SaaS to others |
173 | | -- 🔄 Converts to Apache 2.0 after 4 years |
| 69 | +- Free to use for your own manufacturing business |
| 70 | +- Source available for modification and improvement |
| 71 | +- Self-host unlimited instances |
| 72 | +- Cannot offer as competing hosted service |
174 | 73 |
|
175 | 74 | See [LICENSE](LICENSE) for full terms. |
176 | 75 |
|
177 | | -### External Components (Feature Flags) |
178 | | - |
179 | | -Some features require external services that must be deployed separately: |
180 | | - |
181 | | -| Feature | Service | Description | Feature Flag | |
182 | | -|---------|---------|-------------|--------------| |
183 | | -| Advanced CAD (PMI/MBD) | `services/eryxon3d` | Server-side CAD processing with PMI extraction | `advancedCAD` | |
184 | | - |
185 | | -These external components are: |
186 | | -- **Disabled by default** - must be explicitly enabled via feature flags in Organization Settings |
187 | | -- **Self-hosted** - you deploy and control the service |
188 | | -- **Optional** - core MES functionality works without them |
189 | | - |
190 | | -To enable an external feature: |
191 | | -1. Deploy the required service (see `services/` directory) |
192 | | -2. Configure environment variables (see `.env.example`) |
193 | | -3. Enable the feature flag in Admin → Settings → Organization Settings |
194 | | - |
195 | | ---- |
196 | | - |
197 | | -## Contributing & Support |
198 | | - |
199 | | -- **Website**: [sheetmetalconnect.com](https://www.sheetmetalconnect.com/) |
200 | | -- **Issues & PRs**: [GitHub](https://github.com/SheetMetalConnect/eryxon-flow) |
201 | | -- **Consulting & Custom Setup **: [[email protected]](mailto:[email protected]) |
202 | | - |
203 | | -No guarantees of continued development, but likely will be updated with latest features. |
204 | | - |
205 | | ---- |
| 76 | +**Change Date**: 2029-01-01 (converts to Apache 2.0) |
206 | 77 |
|
207 | | -Copyright © 2025 Sheet Metal Connect e.U. |
| 78 | +## Support |
208 | 79 |
|
209 | | -**Built with** React + TypeScript + Supabase | **Region**: EU (Netherlands) |
| 80 | +- Documentation: [docs/](docs/) |
| 81 | +- Issues: [GitHub Issues](https://github.com/SheetMetalConnect/eryxon-flow/issues) |
| 82 | +- Commercial support: [email protected] |
0 commit comments