# Flowmaster Server

> FlowMaster server configuration and infrastructure

- Skill: `eron1703/flowmaster-server` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add eron1703/flowmaster-server`
- Raw SKILL.md: https://api.skillmd.com/api/skills/eron1703/flowmaster-server/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: eron1703 (https://skillmd.com/u/eron1703)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/eron1703/flowmaster-server

---


# 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:
1. Code written locally (macOS arm64)
2. Docker images built with `--platform linux/amd64`
3. Images transferred via `docker save | gzip | scp`
4. Loaded on server via `docker load`
5. Pushed to K3S local registry (`localhost:30500`)
6. 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
```bash
# Check all pods
kubectl get pods -n flowmaster

# Check specific pod logs
kubectl logs -n flowmaster deployment/api-gateway --tail 100

# Restart a deployment
kubectl rollout restart deployment/api-gateway -n flowmaster

# Update image
kubectl set image deployment/api-gateway api-gateway=localhost:30500/flowmaster/api-gateway:<tag> -n flowmaster

# Check services and ClusterIPs
kubectl get svc -n flowmaster

# Check resource usage
kubectl top pods -n flowmaster
```

### Nginx
```bash
# Test config
sudo nginx -t

# Reload
sudo systemctl reload nginx

# View config
cat /etc/nginx/sites-enabled/flowmaster
```

### Docker (Plane/SDX)
```bash
# Check Plane containers
docker ps | grep plane

# Check SDX containers
docker ps | grep sdx

# Check ArangoDB
docker ps | grep arango
```

---

## When to Use This Skill

1. **Deploying FlowMaster** — understanding K3S cluster, image pipeline
2. **Managing infrastructure** — nginx, SSL, port allocation
3. **Debugging container issues** — pod logs, restarts, ClusterIP changes
4. **CI/CD pipeline work** — GitLab runner, deployment jobs
5. **Server access** — SSH patterns, directory structure

> For live server IPs, service status, and image tags, use commander-mcp: get_context_servers, get_context_services

