refactor chat delivery to graphql + hatchet services
This commit is contained in:
34
hatchet/README.md
Normal file
34
hatchet/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Hatchet (Dokploy)
|
||||
|
||||
Compose-стек для self-hosted Hatchet, перенесенный из соседнего проекта `gl` и адаптированный под ENV.
|
||||
|
||||
## Файлы
|
||||
|
||||
- `docker-compose.yml` — сервисы Hatchet (Postgres, RabbitMQ, migration, setup-config, engine, dashboard).
|
||||
|
||||
## Обязательные ENV (Dokploy UI)
|
||||
|
||||
- `HATCHET_POSTGRES_USER` (default: `hatchet`)
|
||||
- `HATCHET_POSTGRES_PASSWORD` (default: `hatchet`)
|
||||
- `HATCHET_POSTGRES_DB` (default: `hatchet`)
|
||||
- `HATCHET_DATABASE_URL` (default: `postgres://hatchet:hatchet@postgres:5432/hatchet`)
|
||||
- `HATCHET_RABBITMQ_USER` (default: `user`)
|
||||
- `HATCHET_RABBITMQ_PASSWORD` (default: `password`)
|
||||
- `HATCHET_RABBITMQ_URL` (default: `amqp://user:password@rabbitmq:5672/`)
|
||||
- `HATCHET_SERVER_AUTH_COOKIE_DOMAIN` (например, `hatchet.<ваш-домен>`)
|
||||
- `HATCHET_SERVER_AUTH_COOKIE_INSECURE` (`t`/`f`)
|
||||
- `HATCHET_SERVER_GRPC_INSECURE` (`t`/`f`)
|
||||
- `HATCHET_SERVER_GRPC_BROADCAST_ADDRESS` (например, `hatchet-engine:7070` внутри сети)
|
||||
|
||||
## ENV для приложений-воркеров (Node SDK)
|
||||
|
||||
- `HATCHET_CLIENT_TOKEN` — токен клиента из Hatchet.
|
||||
- `HATCHET_CLIENT_TLS_STRATEGY` — для self-host без TLS: `none`.
|
||||
- `HATCHET_CLIENT_HOST_PORT` — gRPC адрес (например, `hatchet-engine:7070` в одной Docker-сети).
|
||||
- `HATCHET_CLIENT_API_URL` — URL API Hatchet dashboard/api.
|
||||
|
||||
## Развертывание
|
||||
|
||||
Сервис описан в `deploy-map.toml` как:
|
||||
|
||||
`hatchet = { deploy_mode = "dokploy_webhook", env_storage = "dokploy_ui", compose_path = "hatchet/docker-compose.yml" }`
|
||||
121
hatchet/docker-compose.yml
Normal file
121
hatchet/docker-compose.yml
Normal file
@@ -0,0 +1,121 @@
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:15.6
|
||||
command: postgres -c "max_connections=1000"
|
||||
restart: always
|
||||
hostname: postgres
|
||||
environment:
|
||||
POSTGRES_USER: ${HATCHET_POSTGRES_USER:-hatchet}
|
||||
POSTGRES_PASSWORD: ${HATCHET_POSTGRES_PASSWORD:-hatchet}
|
||||
POSTGRES_DB: ${HATCHET_POSTGRES_DB:-hatchet}
|
||||
expose:
|
||||
- "5432"
|
||||
volumes:
|
||||
- hatchet_postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -d ${HATCHET_POSTGRES_DB:-hatchet} -U ${HATCHET_POSTGRES_USER:-hatchet}"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-management
|
||||
hostname: rabbitmq
|
||||
expose:
|
||||
- "5672"
|
||||
- "15672"
|
||||
environment:
|
||||
RABBITMQ_DEFAULT_USER: ${HATCHET_RABBITMQ_USER:-user}
|
||||
RABBITMQ_DEFAULT_PASS: ${HATCHET_RABBITMQ_PASSWORD:-password}
|
||||
volumes:
|
||||
- hatchet_rabbitmq_data:/var/lib/rabbitmq
|
||||
- hatchet_rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
|
||||
healthcheck:
|
||||
test: ["CMD", "rabbitmqctl", "status"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
|
||||
migration:
|
||||
image: ghcr.io/hatchet-dev/hatchet/hatchet-migrate:latest
|
||||
command: /hatchet/hatchet-migrate
|
||||
environment:
|
||||
DATABASE_URL: ${HATCHET_DATABASE_URL:-postgres://hatchet:hatchet@postgres:5432/hatchet}
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
|
||||
setup-config:
|
||||
image: ghcr.io/hatchet-dev/hatchet/hatchet-admin:latest
|
||||
command: /hatchet/hatchet-admin quickstart --skip certs --generated-config-dir /hatchet/config --overwrite=false
|
||||
environment:
|
||||
DATABASE_URL: ${HATCHET_DATABASE_URL:-postgres://hatchet:hatchet@postgres:5432/hatchet}
|
||||
SERVER_MSGQUEUE_RABBITMQ_URL: ${HATCHET_RABBITMQ_URL:-amqp://user:password@rabbitmq:5672/}
|
||||
SERVER_AUTH_COOKIE_DOMAIN: ${HATCHET_SERVER_AUTH_COOKIE_DOMAIN:-hatchet.local}
|
||||
SERVER_AUTH_COOKIE_INSECURE: ${HATCHET_SERVER_AUTH_COOKIE_INSECURE:-t}
|
||||
SERVER_GRPC_BIND_ADDRESS: 0.0.0.0
|
||||
SERVER_GRPC_INSECURE: ${HATCHET_SERVER_GRPC_INSECURE:-t}
|
||||
SERVER_GRPC_BROADCAST_ADDRESS: ${HATCHET_SERVER_GRPC_BROADCAST_ADDRESS:-hatchet-engine:7070}
|
||||
SERVER_DEFAULT_ENGINE_VERSION: V1
|
||||
SERVER_INTERNAL_CLIENT_INTERNAL_GRPC_BROADCAST_ADDRESS: hatchet-engine:7070
|
||||
volumes:
|
||||
- hatchet_certs:/hatchet/certs
|
||||
- hatchet_config:/hatchet/config
|
||||
depends_on:
|
||||
migration:
|
||||
condition: service_completed_successfully
|
||||
rabbitmq:
|
||||
condition: service_healthy
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
|
||||
hatchet-engine:
|
||||
image: ghcr.io/hatchet-dev/hatchet/hatchet-engine:latest
|
||||
command: /hatchet/hatchet-engine --config /hatchet/config
|
||||
restart: on-failure
|
||||
depends_on:
|
||||
setup-config:
|
||||
condition: service_completed_successfully
|
||||
migration:
|
||||
condition: service_completed_successfully
|
||||
expose:
|
||||
- "7070"
|
||||
environment:
|
||||
DATABASE_URL: ${HATCHET_DATABASE_URL:-postgres://hatchet:hatchet@postgres:5432/hatchet}
|
||||
SERVER_GRPC_BIND_ADDRESS: 0.0.0.0
|
||||
SERVER_GRPC_INSECURE: ${HATCHET_SERVER_GRPC_INSECURE:-t}
|
||||
volumes:
|
||||
- hatchet_certs:/hatchet/certs
|
||||
- hatchet_config:/hatchet/config
|
||||
networks:
|
||||
- default
|
||||
- dokploy-network
|
||||
|
||||
hatchet-dashboard:
|
||||
image: ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:latest
|
||||
command: sh ./entrypoint.sh --config /hatchet/config
|
||||
expose:
|
||||
- "80"
|
||||
restart: on-failure
|
||||
depends_on:
|
||||
setup-config:
|
||||
condition: service_completed_successfully
|
||||
migration:
|
||||
condition: service_completed_successfully
|
||||
environment:
|
||||
DATABASE_URL: ${HATCHET_DATABASE_URL:-postgres://hatchet:hatchet@postgres:5432/hatchet}
|
||||
volumes:
|
||||
- hatchet_certs:/hatchet/certs
|
||||
- hatchet_config:/hatchet/config
|
||||
|
||||
networks:
|
||||
dokploy-network:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
hatchet_postgres_data:
|
||||
hatchet_rabbitmq_data:
|
||||
hatchet_rabbitmq.conf:
|
||||
hatchet_config:
|
||||
hatchet_certs:
|
||||
Reference in New Issue
Block a user