-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfly.toml
More file actions
74 lines (66 loc) · 2.79 KB
/
Copy pathfly.toml
File metadata and controls
74 lines (66 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Fly.io config for the Task Orchestrator web server (Next.js).
#
# This is the control plane: it serves the dashboard + REST API, applies DB
# migrations on boot (instrumentation.ts -> initDb), and — with
# TASK_ORCH_RUNNER=sprites — runs each agent turn on a Sprite (docs/runners/
# sprites.md). Deploy app + Postgres with `./scripts/fly-deploy.sh`.
#
# `app`, `primary_region` and TASK_ORCH_PUBLIC_URL below are overwritten by
# fly-deploy.sh from FLY_APP / FLY_REGION; edit them here if you deploy by hand.
app = "task-orchestrator"
primary_region = "ams"
[build]
dockerfile = "Dockerfile.server"
[env]
# Route agent runs onto Sprites. SPRITES_TOKEN is a Fly secret set by
# fly-deploy.sh and never reaches a worker.
TASK_ORCH_RUNNER = "sprites"
# Public base URL: deep links, and the default worker-bundle URL sprites
# curl at bootstrap (${TASK_ORCH_PUBLIC_URL}/api/worker-bundle).
TASK_ORCH_PUBLIC_URL = "https://task-orchestrator.fly.dev"
# Run each agent turn on its own sprite, never in this web process, so a
# redeploy/restart of the server never kills an in-flight run.
TASK_ORCH_DETACHED_RUNS = "1"
# Total Sprite capacity includes retained runs and the unused warm pool.
# Existing retained runners plus three warm entries and one foreground slot.
TASK_ORCH_MAX_SPRITES = "26"
TASK_ORCH_SPRITE_POOL_SIZE = "3"
TASK_ORCH_SPRITE_POOL_REUSE = "1"
# Sprites manage RAM sizing automatically; add disk-backed headroom for
# memory-heavy typechecks/builds and reactivate it before every worker start.
TASK_ORCH_SPRITES_SWAP_MB = "4096"
TASK_ORCH_LOG_FORMAT = "json"
TASK_ORCH_LOG_LEVEL = "debug"
TASK_ORCH_SPRITE_POOL_BASELINES = '[{"target":3,"manifest":{"schemaVersion":1,"nodeVersion":"v22.22.3","codexVersion":"0.153.4","platform":"linux","architecture":"x64","systemToolsVersion":"sprite-base-v1"}}]'
TASK_ORCH_AGENT_BACKEND = "codex"
TASK_ORCH_CHAT_MODEL = "openai/gpt-5.6-sol"
TASK_ORCH_AGENT_MODEL = "openai/gpt-5.6-sol"
# Behind Fly's proxy the app terminates TLS at the edge; trust the forwarded host.
AUTH_TRUST_HOST = "true"
PORT = "3000"
[http_service]
internal_port = 3000
force_https = true
# The server runs the dispatch pump + the sprites sweep, so it must stay up
# rather than scale to zero.
auto_stop_machines = "off"
auto_start_machines = true
min_machines_running = 1
[http_service.concurrency]
type = "requests"
soft_limit = 200
hard_limit = 250
[[http_service.checks]]
interval = "15s"
timeout = "10s"
grace_period = "40s"
method = "GET"
path = "/api/health"
# One server VM is enough (state lives in Postgres). Size for Next SSR + the
# orchestration loops; raise memory if you drive many concurrent runs.
[[vm]]
size = "shared-cpu-2x"
memory = "2gb"
[metrics]
port = 3000
path = "/api/metrics"