Fly runs the hub’s image close to you (Singapore by default) with a small volume for its data. The machine stops when nothing is connected, for example overnight, and starts again on the first request in under a second.
You need the fly command (install it) and a Fly account.
mkdir openkedai-fly && cd openkedai-flycurl -fsSLO https://raw.githubusercontent.com/OpenKedai/openkedai/main/deploy/fly.tomlfly apps create kedai-hub # any free name# In fly.toml, set: app = "kedai-hub"fly volumes create openkedai_data --region sin --size 1fly deployfly logs | grep "Setup code"Then open https://kedai-hub.fly.dev and choose Set up a new shop. The hub already knows its
address (from Fly), so pairing codes and QR codes use it.
Settings
Section titled “Settings”fly secrets set OPENKEDAI_BACKUP_S3_ACCESS_KEY_ID=… OPENKEDAI_BACKUP_S3_SECRET_ACCESS_KEY=…Plain settings can go under [env] in fly.toml; see Configuration. Keep
the S3 keys in secrets.
Updating
Section titled “Updating”fly deploy again pulls the newest image. To stay on a version, set image in fly.toml to
ghcr.io/openkedai/openkedai:0.9.
Good to know
Section titled “Good to know”- One machine only: the data is on its volume. Don’t scale out.
- 256 MB of memory is enough for a shop. Add memory if you run plugins
(
fly scale memory 512). - Fly snapshots volumes daily; the hub’s own snapshots are on the same volume, so also turn on copies to S3-compatible storage.
- To build from a clone of the repository instead of the published image:
fly deploy --config deploy/fly.toml --dockerfile deploy/Dockerfilefrom the repository root.
For AI tools: llms.txt ·llms-full.txtopenkedai.com