| name | flowmaster-server |
| description | FlowMaster server configuration and infrastructure |
| disable-model-invocation | false |
FlowMaster Server Configuration Skill
Server Architecture
Servers Overview
| Server | Role | Deployment | Status |
|---|
| Dev-01 | Primary K3S cluster | K3S | UP |
| Dev-02 | High-perf dev, agent pods | K3S | UP |
| Production | app.flow-master.ai | Docker Compose | UP |
SSH Access: dev-01 (user: ben) or dev-01-root (user: root)
OS: Ubuntu 24.04.3 LTS
Dev-01 Server — PRIMARY
3 FlowMaster Environments on K3S
Production Environment (flowmaster namespace)
- Access: Direct kubectl only (nginx may point elsewhere)
- Status: Fully operational, separate from default nginx routing
Development Environment (flowmaster-dev namespace) — DEFAULT VIA NGINX
- Access: Public URL via server IP
- Status: Login working, dev credentials active
Test Environment (flowmaster-test namespace)
- Access: Port 8080 (may be blocked by firewall)
- Status: Isolated test environment with separate databases
K3S Shared Resources
- Local Registry:
localhost:30500 (K3S NodePort)
Deployed Services (29):
| Service | Port | Status |
|---|
| agent-service | 9016 | Running |
| ai-agent | 9006 | Running |
| api-gateway | 9000 | Running |
| auth-service | 8002 | Running |
| bac-marketplace | 9015 | Running |
| business-rules-engine | 8018 | Running |
| document-intelligence | 9002 | Running |
| dxg-service | 9011 | Running |
| engage-app | 3001 | Running |
| event-bus | 9013 | Running |
| execution-engine | 9005 | Running |
| external-integration | 9014 | Running |
| frontend | 3000 | Running |
| human-task | 9006 | Running |
| knowledge-hub | 8009 | Running |
| legal-entity-service | 8014 | Running |
| manager-app | 3001 | Running |
| mcp-server | 9000 | Running |
| notification | 9009 | Running |
| process-analytics | 9014 | Running |
| process-design | 9003 | Running |
| process-designer | 3002 | Running |
| process-linking | 8021 | Running |
| process-versioning | 8020 | Running |
| process-views | 8019 | Running |
| prompt-engineering | 8012 | Running |
| scheduling | 9008 | Running |
| service-registry | 8001 | Running |
| websocket-gateway | 9010 | Running |
ExternalName services: arangodb, postgres, redis (pointing to databases-test namespace)
SDX Platform (Part of FlowMaster, currently standalone Docker)
- Location:
/opt/sdx/
- Containers: 3 (backend, frontend, mcp-server)
- Note: Should be migrated into K3S cluster
Shared Infrastructure
- ArangoDB: Shared by FlowMaster + SDX
- Nginx: Reverse proxy on port 80 to K3S ClusterIPs
Plane CE (Separate — Project Management Tool, NOT part of product)
- Location:
/opt/plane/
- Containers: 13 (proxy, web, admin, space, live, api, worker, beat-worker, db, redis, mq, minio, mcp-server)
- Workspace:
flowmaster
Network Architecture
Routing Pattern:
Internet → Nginx (port 80) → target namespace
├── / → frontend ClusterIP (look up live)
├── /api/ → api-gateway ClusterIP (look up live)
└── /ws/ → websocket-gateway ClusterIP (look up live)
WARNING: ClusterIPs are hardcoded in /etc/nginx/sites-enabled/flowmaster. They will change if K3S services are recreated.
Nginx Config Location
/etc/nginx/sites-enabled/flowmaster
- Proxy timeouts: 3600s for API (AI operations), 86400s for WebSocket
Deployment Method (CURRENT)
How Services Were Deployed
Code was deployed via manual docker pipeline, NOT via GitLab CI/CD:
- Code written locally (macOS arm64)
- Docker images built with
--platform linux/amd64
- Images transferred via
docker save | gzip | scp
- Loaded on server via
docker load
- Pushed to K3S local registry (
localhost:30500)
- K3S deployments updated via
kubectl set image
Code has NOT been pushed to GitLab repositories.
CI/CD Pipeline (Available but not used for current deployment)
Platform: GitLab CI/CD
Pipeline Stages:
detect-changes -> test -> build -> deploy
Required GitLab CI/CD Variables:
SSH_PRIVATE_KEY — SSH key for server access (type: file)
DEMO_SERVER_1_HOST — Server IP
- Database vars:
ARANGO_HOST, POSTGRES_GLOBAL_HOST, REDIS_HOST + credentials
- Security vars:
JWT_SECRET, ENCRYPTION_KEY, SECRET_KEY
- API keys:
GEMINI_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY
All K3S deployments have imagePullPolicy: Always.
Directory Structure (Dev-01 Server)
/opt/flowmaster-deployments/ # Legacy staging compose (not actively used)
docker-compose.staging.yml
/opt/sdx/ # SDX deployment
docker-compose.yml
/opt/plane/ # Plane CE
docker-compose.yaml
/opt/plane-mcp-server/ # Plane MCP Server
docker-compose.yml
K3S manages FlowMaster services (not Docker Compose).
Production Server
- URL: app.flow-master.ai
- Status: UP (HTTP 200)
- Deployment: Docker Compose,
production branch
- SSL: Let's Encrypt
Common Troubleshooting Commands
K3S
kubectl get pods -n flowmaster
kubectl logs -n flowmaster deployment/api-gateway --tail 100
kubectl rollout restart deployment/api-gateway -n flowmaster
kubectl set image deployment/api-gateway api-gateway=localhost:30500/flowmaster/api-gateway:<tag> -n flowmaster
kubectl get svc -n flowmaster
kubectl top pods -n flowmaster
Nginx
sudo nginx -t
sudo systemctl reload nginx
cat /etc/nginx/sites-enabled/flowmaster
Docker (Plane/SDX)
docker ps | grep plane
docker ps | grep sdx
docker ps | grep arango
When to Use This Skill
- Deploying FlowMaster — understanding K3S cluster, image pipeline
- Managing infrastructure — nginx, SSL, port allocation
- Debugging container issues — pod logs, restarts, ClusterIP changes
- CI/CD pipeline work — GitLab runner, deployment jobs
- Server access — SSH patterns, directory structure
For live server IPs, service status, and image tags, use commander-mcp: get_context_servers, get_context_services