version: "3"
services:
  db:
    image: postgres:13.4
    environment:
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - db_data:/var/lib/postgresql/data
  hasura:
    image: hasura/graphql-engine:v2.0.9.cli-migrations-v3
    depends_on: [db]
    environment:
      HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD}@db:5432/postgres
      HASURA_GRAPHQL_ENABLE_CONSOLE: "true"
      HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anonymous
      HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET}
      HASURA_GRAPHQL_JWT_SECRET: ${HASURA_GRAPHQL_JWT_SECRET}
    volumes:
      - ./migrations:/hasura-migrations
      - ./metadata:/hasura-metadata
    ports:
      - "8080:8080"
  postgrest:
    image: postgrest/postgrest:v8.0.0
    depends_on: [db]
    environment:
      PGRST_DB_URI: postgres://postgres:${POSTGRES_PASSWORD}@db:5432/postgres
      PGRST_DB_SCHEMA: public
      PGRST_DB_ANON_ROLE: anonymous
      PGRST_JWT_SECRET: ${JWT_SECRET}
    ports:
      - "3000:3000"
volumes:
  db_data: