Skip to content

Commit

Permalink
feat: self-hosted hasura for DataLayer graphql API
Browse files Browse the repository at this point in the history
  • Loading branch information
0xnigir1 committed Nov 5, 2024
1 parent 43b6574 commit 5989021
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 0 deletions.
13 changes: 13 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,19 @@ DATALAYER_PG_USER=postgres
DATALAYER_PG_DATABASE=datalayer-postgres
DATALAYER_POSTGRES_EXPOSED_PORT=5434

######################################################
############### DATALAYER HASURA API ###################
######################################################
DATALAYER_HASURA_ENABLE_CONSOLE=true
DATALAYER_HASURA_ADMIN_SECRET=my-admin-secret
DATALAYER_HASURA_UNAUTHORIZED_ROLE=public
DATALAYER_HASURA_CORS_DOMAIN=*
DATALAYER_HASURA_ENABLE_TELEMETRY=false
# HASURA_GRAPHQL_METADATA_DATABASE_EXTENSIONS_SCHEMA: "chain_data_schema_1"
## enable debugging mode. It is recommended to disable this in production
DATALAYER_HASURA_DEV_MODE=true
## uncomment next line to run console offline (i.e load console assets from server instead of CDN)
# HASURA_GRAPHQL_CONSOLE_ASSETS_DIR: /srv/console-assets

############################################################
############### ENVIO POSTGRES & INDEXER ###################
Expand Down
43 changes: 43 additions & 0 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,49 @@ services:
POSTGRES_PASSWORD: ${DATALAYER_POSTGRES_PASSWORD}
networks:
- datalayer
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DATALAYER_PG_USER}"]
interval: 5s
timeout: 5s
retries: 5

api-hasura:
image: hasura/graphql-engine:latest
ports:
- "8082:8080"
restart: always
env_file:
- .env
environment:
HASURA_GRAPHQL_DATABASE_URL: postgres://${DATALAYER_PG_USER}:${DATALAYER_POSTGRES_PASSWORD}@datalayer-postgres:5432/${DATALAYER_PG_DATABASE}
HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://${DATALAYER_PG_USER}:${DATALAYER_POSTGRES_PASSWORD}@datalayer-postgres:5432/${DATALAYER_PG_DATABASE}
HASURA_GRAPHQL_ENABLE_CONSOLE: ${DATALAYER_HASURA_ENABLE_CONSOLE:-true}
HASURA_GRAPHQL_ADMIN_SECRET: ${DATALAYER_HASURA_ADMIN_SECRET:-secret}
HASURA_GRAPHQL_UNAUTHORIZED_ROLE: ${DATALAYER_HASURA_UNAUTHORIZED_ROLE:-public}
HASURA_GRAPHQL_CORS_DOMAIN: ${DATALAYER_HASURA_CORS_DOMAIN:-*}
HASURA_GRAPHQL_ENABLE_TELEMETRY: ${DATALAYER_HASURA_ENABLE_TELEMETRY:-false}
HASURA_GRAPHQL_EXPERIMENTAL_FEATURES: bigquery_string_numeric_input
HASURA_GRAPHQL_BIGQUERY_STRING_NUMERIC_INPUT: true
# HASURA_GRAPHQL_METADATA_DATABASE_EXTENSIONS_SCHEMA: ${DATALAYER_HASURA_METADATA_DATABASE_EXTENSIONS_SCHEMA:-chain_data_schema_1}
## enable debugging mode. It is recommended to disable this in production
HASURA_GRAPHQL_DEV_MODE: ${DATALAYER_HASURA_DEV_MODE:-true}
HASURA_GRAPHQL_ENABLED_LOG_TYPES: "startup, http-log, webhook-log, websocket-log, query-log"
HASURA_GRAPHQL_ENABLED_APIS: "graphql,metrics"
HASURA_GRAPHQL_ADMIN_INTERNAL_ERRORS: "true"
## uncomment next line to run console offline (i.e load console assets from server instead of CDN)
# HASURA_GRAPHQL_CONSOLE_ASSETS_DIR: /srv/console-assets
depends_on:
datalayer-postgres:
condition: service_healthy
healthcheck:
test: timeout 1s bash -c ':> /dev/tcp/127.0.0.1/8080' || exit 1
interval: 5s
timeout: 2s
retries: 50
start_period: 5s
networks:
- datalayer

envio-postgres:
image: postgres:16
restart: always
Expand Down

0 comments on commit 5989021

Please sign in to comment.