graphql-engine Docker & Self-Hosted Deployment

GitHub

Blazing fast, instant realtime GraphQL APIs on all your data with fine grained access control, also trigger webhooks on database events.

RAW Compose
1. Pull Image (DOCKERHUB) docker pull hasura/graphql-engine
2. Docker Run (1-Click Launch) docker run -d --name graphql-engine -p 65002:65002 --restart always hasura/graphql-engine:latest
3. Podman Run podman run -d --name graphql-engine -p 65002:65002 --restart always hasura/graphql-engine:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/hasura/graphql-engine:latest
5. ORAS Pull (OCI Artifact) oras pull hasura/graphql-engine:latest
6. Compose Deployment docker compose up -d
docker-compose.yaml
Download .yml
# This file extends the base Docker Compose files to make manual testing easy.
#
# Run the following to get started:
#
#     docker compose up -d
#
# That will start up services in the background. To take them down, you have to
# run:
#
#     docker compose down
#
# If you changed DB init scripts, then you should also run:
#
#     docker compose down -v
#
# That'll delete the volumes. Otherwise e.g. PostgreSQL will skip initializing
# if a DB already exists.
#
# If you omit `-d`, it'll run them all in the foreground, then you can stop them
# with your usual Ctrl-C terminal command.
#
# Facts:
#
# * The SERVICE PORTS numbering start at 65001, 65002, etc. to avoid bothering
#   existing instances of databases.
#
# * The login credentials are, where possible, all "hasura" to avoid unnecessary
#   mental overhead.
#
# * The SQL Server image will only work on macOS if you enable the relevant
#   settings. Open the Docker Desktop settings, enable "Use Virtualization
#   framework" in the "General" tab, and "Use Rosetta for x86/amd64 emulation on
#   Apple Silicon" in the "Features in development" tab.

name: hge-manual-tests

services:
  postgres:
    extends:
      file: docker-compose/databases.yaml
      service: postgres
    ports:
      - "65002:5432"
    environment:
      POSTGRES_USER: "hasura"
      POSTGRES_PASSWORD: "hasura"
      POSTGRES_DB: "hasura"
    volumes:
      - postgres-data:/var/lib/postgresql
      - ./docker-compose/postgres/init.sh:/docker-entrypoint-initdb.d/init-hasura.sh:ro

  citus:
    extends:
      file: docker-compose/databases.yaml
      service: citus
    ports:
      - "65004:5432"
    environment:
      POSTGRES_USER: "hasura"
      POSTGRES_PASSWORD: "hasura"
      POSTGRES_DB: "hasura"
    volumes:
      - citus-data:/var/lib/postgresql
      - ./docker-compose/postgres/init.sh:/docker-entrypoint-initdb.d/init-hasura.sh:ro

  cockroach:
    extends:
      file: docker-compose/databases.yaml
      service: cockroach
    ports:
      - "65008:26257"
    environment:
      COCKROACH_USER: "root"
      COCKROACH_DATABASE: "hasura"
    volumes:
      - cockroach-data:/cockroach/cockroach-data

  sqlserver:
    extends:
      file: docker-compose/databases.yaml
      service: sqlserver
    ports:
      - "65003:1433"
    volumes:
      - mssql-data:/var/opt/mssql

  dc-reference-agent:
    extends:
      file: dc-agents/docker-compose.yaml
      service: dc-reference-agent

  dc-sqlite-agent:
    extends:
      file: dc-agents/docker-compose.yaml
      service: dc-sqlite-agent

volumes:
  citus-data:
  cockroach-data:
  mssql-data:
  postgres-data: