Self-Hosted Internal Stack (Hasura, n8n, Metabase)
Overview
Docker Compose definitions for the studio’s self-hosted internal stack: a Hasura GraphQL API (with separate dev and prod), n8n for workflow automation, and Metabase for analytics, each fronted by NGINX.
Why It Exists
The team wanted to run its own GraphQL API layer, automation engine, and BI tool rather than pay for and depend on multiple SaaS vendors. Centralizing them as reproducible compose files makes the environment portable and easy to recover.
What We Built
Four service directories, each with a docker-compose definition: hasura-dev and hasura-prod (the latter with an nginx.conf reverse proxy) for instant GraphQL over Postgres, n8n (compose + .env + nginx) for workflow automation, and metabase (compose + nginx) for dashboards and queries. The dev/prod split for Hasura keeps iterative development isolated from the production API.
Technologies & Approach
Declarative Docker Compose with per-service NGINX reverse proxies for TLS/routing. Hasura provides instant GraphQL + RBAC over PostgreSQL, n8n handles automation, and Metabase delivers self-serve analytics, a lean, fully open-source internal platform.
Outcome / Impact
A reproducible, self-owned internal toolchain covering API, automation, and analytics. Demonstrates the ability to assemble and operate a multi-service open-source stack with clean environment separation.
Capabilities Demonstrated
- Self-hosting Hasura, n8n, and Metabase with Docker Compose
- NGINX reverse-proxy configuration per service
- Dev/prod environment separation
- Building internal platforms from open-source components