-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfly.toml
More file actions
61 lines (53 loc) · 1.81 KB
/
fly.toml
File metadata and controls
61 lines (53 loc) · 1.81 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
# SPDX-License-Identifier: PMPL-1.0-or-later
# fly.io deployment for echidna (Phase E3 nesy-solver playground backend).
#
# Deploy:
# flyctl launch --no-deploy --copy-config --name echidna-nesy
# flyctl deploy -c fly.toml -f .containerization/Containerfile.full
#
# Internal-only: echidna is reached via echidna-nesy.flycast:8090 from
# proven-nesy-solver-api; no public http_service.
# Use .flycast (not .internal) so Fly auto-wakes the machine on first connection.
#
# NB: Container is LARGE (~6-8 GB) — Julia + Idris2 + Agda + Lean + Isabelle.
# Memory must be >=4GB (Isabelle Main heap ~1GB); shared-cpu-2x is the
# cheapest size that fits.
app = "echidna-nesy"
primary_region = "lhr"
kill_signal = "SIGTERM"
kill_timeout = "10s"
[build]
dockerfile = ".containerization/Containerfile.full"
[env]
# echidna listens on port 8090 when launched with `server --port 8090`.
# The ENTRYPOINT is `/app/bin/echidna`; CMD gets overridden below.
RUST_LOG = "info"
ECHIDNA_HOST = "[::]"
ECHIDNA_PORT = "8090"
[processes]
app = "server --port 8090 --host [::] --cors"
# Internal-only TCP on :8090
[[services]]
protocol = "tcp"
internal_port = 8090
auto_stop_machines = "stop"
auto_start_machines = true
min_machines_running = 0
processes = ["app"]
[[services.ports]]
port = 8090
handlers = []
# HTTP check on /api/health — tests the server is serving, not just the port.
# grace_period must be generous: Isabelle Main heap maps ~1-2 GB on first load
# and Julia has JIT overhead on first prover call. 90s is the minimum safe value.
[[services.http_checks]]
interval = "30s"
timeout = "10s"
grace_period = "90s"
method = "GET"
path = "/api/health"
[[vm]]
size = "shared-cpu-2x"
memory = "4096mb" # Julia + Agda + Isabelle Main heap need real RAM
cpu_kind = "shared"
cpus = 2