db
postgres@17- publish
- internal:5432
todos 0.1.0 — an app composition defined in a plain TOML manifest. Inspect its members or run it with ply up.
Run the published composition with ply up.
ply up iluxav/todos@0.1Independent apps, connected through explicit parameters and references.
postgres@17iluxav/serveriluxav/web# todos — the whole product as three `ply run`s: a database, an API, a web UI.
# Lives in the web repo because that is the thing people deploy; the API is a
# separate repo and arrives here as a published package, not a path.
#
# ply up # locally, with stack.dev.toml on top
# ply push ./stack.toml # publish it, then `ply up iluxav/todos`
#
# PRODUCTION values only. Members reach each other by their `<name>.ply`
# bridge names, versions come from the registry (newest match on every
# reconcile beat, so CI publishing IS deploying), and the password is a hole
# filled from the env file. Anything true only on a laptop — loopback
# addresses, local checkouts, a port that dodges a local postgres — belongs
# in stack.dev.toml, which `ply up` applies and a host never reads.
[stack]
name = "todos"
version = "0.1.0"
description = "Todo app — postgres + an API + a Next.js front end."
env_file = ".env/todos.env"
[[app]]
run = "postgres@17"
name = "db"
publish = ["internal:5432"]
e = ["POSTGRES_PASSWORD=$POSTGRES_PASSWORD", "POSTGRES_DB=todos"]
# `name` is set explicitly on both app members: it is the identity `after`
# edges, `<name>.ply` and the dev overlay all key on, so it must not drift
# when the source changes from a registry ref to a local checkout.
[[app]]
run = "iluxav/server"
name = "server"
after = ["db"]
publish = ["internal:3001"]
e = ["DATABASE_URL=postgres://postgres:$POSTGRES_PASSWORD@db.ply:5432/todos"]
[[app]]
run = "iluxav/web"
name = "web"
after = ["server"] # → SERVER_ADDR, what next.config.ts proxies to
publish = ["internal:3000"] # the edge terminates TLS and fronts this
domain = ["todos.example.com"]
Download the composition manifest for a published version.
| version | download | size | published |
|---|---|---|---|
| 0.1.0latest | ply.toml | — | 2026-08-30 |