HasuraをM1Macで動かす
HasuraはGraphQLを手軽行うためのGraphQLエンジンです。
Hausraを使えば簡単にGraphQLを体験することができます。
最近までHasuraの公式DockerイメージはM1非対応でしたが、
2021/12/10の時点でベータ版ではありますが、M1対応の公式イメージが発表されました。
詳しくはこちらにあります。
Hasuraには2種類ある(知っている人は飛ばしてね)
Hasuraを試したいと思ったらその方法は2つあります。
- Hasura Cloud を使う
- Docker Hasura を使う
Hasura Cloud とは
Hasura Cloud とは名前の通りクラウド上でHasuraを扱うためのもので、
Firebase的なものをイメージしてもらえれば良いかと思います。
こちらのURLからアカウントを新規作成し
プロジェクトをポチポチしながら作っていくと簡単に作成できます。
お手軽ですが、リクエスト行える回数に上限があり課金しないと無制限には使えません。
ただ、セキュリティのための追加機能とDBも併せて用意してくれると言う特典があります。
お金に余裕があるか、勉強のために使ってみたいだけの人におすすめです。
Hasura Docker とは
前述したHasura Cloud は手軽さの反面、課金が必要になりますが
こちらの「Hasura Docker」であれば無料で使うことができます。
こちらはDBも自分で用意する必要がありますが、
無料ですし導入方法も簡単なので個人的にはこっちの方がおすすめです。
Hasura Docker の始め方
先に書いた通り、HasuraはDockerでも始められるように公式イメージを配布してくれています。
以下のようにdocker-compose.ymlを用意してみましょう。
version: '3.6'
services:
postgres:
image: postgres:12
restart: always
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: postgrespassword
graphql-engine:
image: hasura/graphql-engine:v2.1.0-beta.3.cli-migrations-v2.arm64
ports:
- '8080:8080'
depends_on:
- 'postgres'
restart: always
environment:
## postgres database to store Hasura metadata
HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres
## this env var can be used to add the above postgres database to Hasura as a data source. this can be removed/updated based on your needs
HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres
## enable the console served by server
HASURA_GRAPHQL_ENABLE_CONSOLE: 'true' # set to "false" to disable console
## enable debugging mode. It is recommended to disable this in production
HASURA_GRAPHQL_DEV_MODE: 'true'
HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
## uncomment next line to set an admin secret
# HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey
volumes:
db_data:
こちらのdocker-compose.ymlはHasura公式で公開されているdocker-compose.ymlをM1用に少しいじったものになります。
こちらを作成しdocker-compose upをすれば正しく起動するはずです。
localhost:8080にアクセスしてみればHasuraのコンソールが見えると思います。