Skip to content

Self-Hosting Guide

This guide covers how to self-host Eryxon Flow on your own infrastructure. Self-hosting is free, unlimited, and you manage everything yourself.

[!IMPORTANT] License & Usage: Eryxon Flow is licensed under BSL 1.1. This means you are free to self-host, modify, and use it for your own business operations. However, you are not permitted to commercially resell the software or provide it as a competing SaaS offering. The license converts to Apache 2.0 after 4 years.


OptionComplexityBest For
Supabase Cloud + DockerEasyMost users, quick setup
Self-Hosted SupabaseAdvancedFull control, air-gapped environments

The fastest way to get started. Supabase offers a free tier that works for evaluation and small deployments.

  • Node.js 18+ and npm (or Docker)
  • A Supabase account (supabase.com)
  • Git
  1. Go to supabase.com and sign in
  2. Click New Project
  3. Choose your organization
  4. Enter project details:
    • Name: eryxon-flow (or your preference)
    • Database Password: Generate a strong password (save it!)
    • Region: Choose closest to your users
  5. Click Create new project
  6. Wait for project to be ready (~2 minutes)

From your Supabase project dashboard:

  1. Go to Settings -> API
  2. Copy these values:
    • Project URL (e.g., https://abcdefgh.supabase.co)
    • anon/public key (starts with eyJ...)
    • service_role key (for edge functions - keep this secret!)

Using Supabase CLI:

Terminal window
npm install -g supabase
git clone https://github.com/SheetMetalConnect/eryxon-flow.git
cd eryxon-flow
supabase link --project-ref your-project-id
supabase db push

Or manually:

  1. Go to SQL Editor in your Supabase dashboard
  2. Run the migrations from supabase/migrations/ in order
Terminal window
cd eryxon-flow
supabase login
supabase functions deploy

Verify in Storage that these buckets exist:

  • parts-images - For CAD files and part photos
  • issues - For issue attachments

If missing, create them with:

  • Public: No
  • File size limit: 50MB
  • Allowed MIME types: image/*, application/pdf, model/step

Option A: Docker (Recommended)

Terminal window
cat > .env << EOF
VITE_SUPABASE_URL=https://your-project-id.supabase.co
VITE_SUPABASE_PUBLISHABLE_KEY=your-anon-key
EOF
docker-compose up -d

Option B: Development mode

Terminal window
cp .env.example .env
npm install
npm run dev

Option C: Production build

Terminal window
npm run build
  1. Open the application in your browser
  2. Click Sign Up
  3. Enter your email and password
  4. Check your email for verification link
  5. First user automatically becomes admin

For organizations requiring complete control over all infrastructure.

  • Docker and Docker Compose
  • 4GB+ RAM
  • 20GB+ disk space
  • Domain name (for production)
  • SSL certificates
+----------------------------------------------------------+
| Your Server |
+----------------------------------------------------------+
| +---------+ +---------+ +----------+ +----------+ |
| | Postgres| | GoTrue | |PostgREST | | Realtime | |
| | DB | | Auth | | API | | WS | |
| +---------+ +---------+ +----------+ +----------+ |
| +---------+ +---------+ +----------+ |
| | Storage | | Kong | | Studio | |
| | API | | Gateway | | (Admin) | |
| +---------+ +---------+ +----------+ |
+----------------------------------------------------------+
| +------------------------------------------------------+|
| | Eryxon Flow (Frontend) ||
| +------------------------------------------------------+|
+----------------------------------------------------------+
Terminal window
git clone --depth 1 https://github.com/supabase/supabase
cd supabase/docker
cp .env.example .env

Edit .env:

POSTGRES_PASSWORD=your-secure-password
JWT_SECRET=your-jwt-secret-min-32-chars
ANON_KEY=your-anon-key
SERVICE_ROLE_KEY=your-service-role-key
SITE_URL=https://your-domain.com
API_EXTERNAL_URL=https://your-domain.com
SMTP_HOST=smtp.your-provider.com
SMTP_PORT=587
SMTP_USER=your-smtp-user
SMTP_PASS=your-smtp-password
SMTP_SENDER_NAME=Eryxon Flow
Terminal window
docker compose up -d
docker compose ps # Verify all services running
Terminal window
cd /path/to/eryxon-flow
cat > .env << EOF
VITE_SUPABASE_URL=https://your-domain.com
VITE_SUPABASE_PUBLISHABLE_KEY=your-anon-key
EOF
docker build -t eryxon-flow .
docker run -p 3000:80 --env-file .env eryxon-flow
  • SSL/TLS configured (Let’s Encrypt)
  • PostgreSQL backups scheduled
  • Monitoring set up
  • Email delivery configured
  • Security review completed

version: '3.8'
services:
eryxon-flow:
build: .
ports:
- "8080:80"
environment:
- VITE_SUPABASE_URL=${SUPABASE_URL}
- VITE_SUPABASE_PUBLISHABLE_KEY=${SUPABASE_ANON_KEY}
restart: unless-stopped
Terminal window
export SUPABASE_URL=https://your-project.supabase.co
export SUPABASE_ANON_KEY=your-anon-key
docker-compose up -d

Enable AI assistants to interact with your manufacturing data.

Terminal window
cd mcp-server
npm install
npm run build

Create mcp-server/.env:

SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_KEY=your-service-role-key

Add to ~/.claude/config.json:

{
"mcpServers": {
"eryxon-flow": {
"command": "node",
"args": ["/path/to/eryxon-flow/mcp-server/dist/index.js"],
"env": {
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_SERVICE_KEY": "your-service-role-key"
}
}
}
}

“Invalid API key” error

  • Verify VITE_SUPABASE_PUBLISHABLE_KEY is correct
  • Use the anon key, not the service_role key

“Permission denied” on queries

  • Check RLS policies are applied
  • Verify user is authenticated
  • Check tenant_id matches

Edge functions not working

  • Verify deployment: supabase functions list
  • Check logs: supabase functions logs function-name

Storage uploads failing

  • Verify buckets exist with correct names
  • Check bucket policies allow authenticated uploads

Terminal window
git pull origin main
npm install
npm run build
docker-compose build
docker-compose up -d

For database schema updates:

Terminal window
supabase db push

Self-hosting is community-supported only:

  • GitHub Issues: Bug reports
  • Documentation: /docs folder

Need help with complex deployments? Check out vanenkhuizen.com for consulting services.


Licensed under BSL 1.1 - See LICENSE for terms