Skip to main content

Self-Hosting UIGraph

Run the full UIGraph platform on your own host. The uigraph-deploy repository ships a single Docker Compose stack that brings up every application service together with a bundled Postgres, Redis, and MinIO. No external accounts required.

The deployment tooling is intentionally small:

uigraph-deploy/
├── docker-compose.yml # the whole stack (app services + bundled infra)
├── Makefile # docker up / down / reset / ps helpers
├── README.md
└── LICENSE

The core stack

docker-compose.yml defines every service on one Docker network (uigraph). There are no profiles or optional infra; all of the following start together.

Application services

  • uigraph-api: the core backend. The screenshot worker runs inside this same image (no separate worker container). Published on port 8080.
  • uigraph-graphql: GraphQL API in front of uigraph-api. Port 8090.
  • uigraph-gateway: Node service that presigns storage uploads (docs, frame images). Published on host port 8081.
  • uigraph-ui: the static SPA + nginx. Published on port 3000.

Bundled infrastructure

These run as containers alongside the app and persist to Docker volumes:

ServiceImageHost portsVolume
postgrespostgres:16-alpine5432postgres-data
redisredis:7-alpine— (internal only)redis-data
miniominio/minio9000 (API), 9001 (console)minio-data

The uigraph-api, uigraph-graphql, and uigraph-gateway services declare depends_on health checks so they start only once their dependencies report healthy.


Container images

The application images are published on Docker Hub under the uigraph organization. The compose file pulls the latest tag for each.

ImageServicePurpose
uigraph/uigraph-apiuigraph-apiGo backend + embedded screenshot worker. Runs migrations and admin bootstrap on start.
uigraph/uigraph-graphqluigraph-graphqlGraphQL API layer.
uigraph/uigraph-gatewayuigraph-gatewayNode service that presigns object-storage uploads.
uigraph/uigraph-uiuigraph-uiStatic SPA + nginx.
uigraph/uigraph-mcpOptional. The MCP server consumed by the @uigraph/mcp client — not part of this compose stack. Run it separately; see Environment Variables → MCP server for its configuration.

Pull them directly:

docker pull uigraph/uigraph-api:latest
docker pull uigraph/uigraph-graphql:latest
docker pull uigraph/uigraph-gateway:latest
docker pull uigraph/uigraph-ui:latest
docker pull uigraph/uigraph-mcp:latest # optional MCP server

Support