Hasura на Pethost в один клік
Готові GraphQL- і REST-API поверх бази Postgres, із правами доступу, подіями й вебконсоллю
Що відбудеться
- Ви входите в Pethost або створюєте акаунт — з ключем доступу, через GitHub або Google.
- Машини ще немає? Ви обираєте тариф, і ми готуємо машину для вас. Посилання чекає у вашому браузері, доки машина не буде готова.
- Вікно «Новий проєкт» відкривається на цьому застосунку. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: Пароль адміністратора.
- За хвилину-дві застосунок працює за власною адресою з HTTPS. Його секрети створюються випадково, а дані потрапляють у щонічний бекап.
- Це проєкт як будь-який інший: його compose.yaml, .env, логи й термінал — у панелі, а ваш агент може його змінити, відкотити або відновити.
Перші кроки
Відкрийте https://hasura.sam.pethost.app/console і введіть як admin secret пароль адміністратора, який ви вказали; запити до API передають його в заголовку x-hasura-admin-secret. Postgres самого проєкту підключено як джерело даних default: таблиці створюються у вкладці Data консолі.
Що запускається
Шаблон — це цей compose.yaml і змінні, які він записує в .env проєкту. Pethost запускає файл так, як його написано.
services:
graphql-engine:
image: hasura/graphql-engine:v2.50.3
restart: unless-stopped
environment:
# Hasura keeps its metadata in this database and serves it as the data source "default".
HASURA_GRAPHQL_DATABASE_URL: postgres://hasura:${POSTGRES_PASSWORD}@postgres:5432/hasura
# The console and the API take the admin secret; without it they would be open to anyone.
HASURA_GRAPHQL_ADMIN_SECRET: ${ADMIN_SECRET}
HASURA_GRAPHQL_ENABLE_CONSOLE: "true"
HASURA_GRAPHQL_CONSOLE_ASSETS_DIR: /srv/console-assets
HASURA_GRAPHQL_DEV_MODE: "false"
HASURA_GRAPHQL_ENABLE_TELEMETRY: "false"
HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_DB: hasura
POSTGRES_USER: hasura
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U hasura -d hasura"]
interval: 5s
timeout: 5s
retries: 10
start_period: 30s
volumes:
db: