Para instalar o Hasura, copie os dados da stack abaixo e faça as alterações de acordo com a sua realidade. Em caso de atualizações e melhorias, você pode retornar a esta página para conferir o código atualizado.
Neste primeiro exemplo, você pode fazer o deploy do Hasura utilizando apenas as portas do serviço. Basta liberar a porta 8585 do navegador para a porta 8080 do container.
version: '3.8'
services:
graphql_engine:
image: hasura/graphql-engine:latest
ports:
- "8585:8080"
environment:
HASURA_GRAPHQL_DATABASE_URL: postgresql://postgres:[SENHA_AQUI]@[HOST]:5432/postgres
HASURA_GRAPHQL_ENABLE_CONSOLE: "true"
## uncomment next line to set an admin secret
# HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: '0.5'
memory: 512M
Lembrando, estou usando este exemplo com um banco do Supabase. Se você criou um banco de dados seguindo o vídeo sobre banco de dados, você precisará adicionar a rede app_network a esta Stack para que o Hasura possa se conectar ao seu postgres.
Você pode fazer o deploy com o Traefik utilizando apenas a rede do Docker criada para interagir com o Traefik e definir um domínio com SSL.
version: '3.8'
services:
graphql_engine:
image: hasura/graphql-engine:latest
environment:
HASURA_GRAPHQL_DATABASE_URL: postgresql://postgres:[SENHA_AQUI]@[HOST]:5432/postgres
HASURA_GRAPHQL_ENABLE_CONSOLE: "true"
## uncomment next line to set an admin secret
# HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: '0.5'
memory: 512M
labels:
- traefik.enable=true
#SSL
- traefik.http.routers.graphql_engine.rule=Host(`graphql.SEU_DOMINIO.com.br`)
- traefik.http.services.graphql_engine.loadbalancer.server.port=8080
- traefik.http.routers.graphql_engine.service=graphql_engine
- traefik.http.routers.graphql_engine.tls.certresolver=le
- traefik.http.routers.graphql_engine.entrypoints=websecure
- traefik.http.routers.graphql_engine.tls=true
networks:
- traefik_public
networks:
traefik_public:
external: true
Se estiver utilizando o Banco de dados Postgres com Docker, não se esqueça de adicionar na rede do mesmo, conforme no vídeo sobre banco de dados. Mais detalhes logo abaixo.
Não se esqueça de substituir as informações do arquivo pelas suas próprias. Você pode colar diretamente no Portainer ou fazer o upload manualmente por linha de comando. Também é importante verificar os detalhes dessa estrutura, pois pode ser diferente no seu caso.
Se você está utilizando nossa estrutura com docker, o banco ele foi criado em uma rede especifica. Adicione o Hasura na rede app_network para reconhecer seu banco postgres.
networks:
- traefik_public
- app_network
Depois declare a rede logo em seguida:
networks:
traefik_public:
external: true
app_network:
external: true