Русский
Начать
← Все шаблоны

Hasura на Pethost в один клик

Готовые GraphQL- и REST-API поверх базы Postgres, с правами доступа, событиями и веб-консолью

Что произойдет

  1. Вы входите в Pethost или создаете аккаунт — с passkey, через GitHub или Google.
  2. Машины еще нет? Вы выбираете тариф, и мы готовим машину для вас. Ссылка ждет в вашем браузере, пока машина не будет готова.
  3. Окно «Новый проект» открывается на этом приложении. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: Пароль администратора.
  4. Через минуту-две приложение работает по своему адресу с HTTPS. Его секреты создаются случайно, а данные попадают в ночной бэкап.
  5. Это проект как любой другой: его 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: