What lives under $TINY_DATA_DIR
Default: .tiny/control-plane.
What lives outside it
TINY_SECRET_KEY — the root of every sealed connection credential and
secret. Without it, a restored $TINY_DATA_DIR cannot decrypt any of them.TINY_TOKEN_SECRET and TINY_SESSION_SECRET — losing these invalidates live
sessions and tokens but is recoverable.Guest images and the kernel — rebuildable, but keep the exact ones a rollback
might need. See Guest images.
An external Postgres cluster, if you attached one. Its durability is the
cluster’s own story, not Tinycloud’s.
Taking a consistent copy
The control-plane store is SQLite, so copy it the way SQLite wants to be copied rather than withcp on a live file:
Exclude
storage/.staging — those are in-flight writes that have not been
renamed into place. Excluding them is correct, not a compromise.What tiny archive covers
Restore does not deploy a worker — deploy again to resume traffic.
Deletion has a grace window
--confirm value must be the exact slug, and deletion is scheduled after a
seven-day grace window. That window is a recovery path, but it is not a
backup.
Testing a restore
The only backup that works is one you have restored.1
Restore onto a fresh host
Same
TINY_DATA_DIR contents, same TINY_SECRET_KEY.2
Start the control plane
3
Check that a sealed secret still decrypts
List connections and invoke one capability. That is the test that proves you
kept the right key.
4
Redeploy an app and open it
Restored state does not serve traffic until a deployment runs.