generated from atu/saiop-infrastructure
2.0 KiB
2.0 KiB
name, description, version, author, license, platforms, prerequisites, metadata
| name | description | version | author | license | platforms | prerequisites | metadata | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| saiop-automation-stack | Deploying n8n, Flowise, and NATS on the SAIOP stack — pre-provisioned secrets, UID quirks, and why some service images are far larger than they first appear. | 1.0.0 | Claude Code (SAIOP ops session) | MIT |
|
|
|
n8n, Flowise, NATS on SAIOP
When to use
Deploying or troubleshooting the automation layer (Deployment Guide §4.4).
Key facts
- n8n already has a pre-provisioned Postgres DB/role (
n8n) and secrets (N8N_DB_PASSWORD,N8N_BASIC_AUTH_USER/PASSWORD,N8N_ENCRYPTION_KEY) in.env.masterfrom earlier setup — check before generating new ones. - n8n's official image runs as uid 1000 (
nodeuser inside the container) — the host data directory needschown 1000:1000, not whatever the host's own primary admin user is. - Flowise runs as root inside its container — no UID matching needed for its volume.
flowiseai/flowiseDocker tags are not layer-compatible across versions — pinning a specific version tag (e.g.3.1.2) instead oflatestcan mean a ~500MB fresh pull even iflatestwas already cached locally. Don't assume a "hung"docker compose upis actually stuck; checkdocker ps -aand the pull progress before killing it.- NATS needs no public Traefik route — it's a backend event bus
(
nats://protocol, not HTTP). Run with-jsfor JetStream persistence and mount a data volume so streams survive restarts. - None of these had a real
automation-compose.ymlin the reference bundle despite the Deployment Guide referencing one — built from scratch following house compose conventions (pinned versions, resource limits,proxynetwork + relevant internal network only).