docker pull atcr.io/rtw.run/y-sweet:latest
y-sweet
Realtime CRDT document store for rtw.run, an adventure motorcycle trip planning app.
Serves the y-sweet document persistence API (WebSocket + REST) on port 9000.
The RTW app proxies connections to it upstream and handles all authn/authz, so y-sweet runs in development mode (no auth token): the server must NOT be reachable from outside the network.
Persistence defaults to RTW’s Cloudflare R2 account; with S3_URL unset the store is a local filesystem directory (/data).
Running the container
Multiarch image (amd64 + arm64): atcr.io/rtw.run/y-sweet:latest
R2-backed (production)
Endpoint (AWS_ENDPOINT_URL_S3), region (AWS_REGION=auto), and path-style (AWS_S3_USE_PATH_STYLE=true) are defaulted to RTW’s R2 account — only the bucket (inside S3_URL) and the R2 API token secrets need setting:
podman run -d --name y-sweet --userns=keep-id \
-p 127.0.0.1:9000:9000 \
-e S3_URL=s3://rtw-data/ysweet \
-e AWS_ACCESS_KEY_ID=<r2 access key> \
-e AWS_SECRET_ACCESS_KEY=<r2 secret> \
atcr.io/rtw.run/y-sweet:latest
No volume needed. S3_URL composes as s3://<bucket>/<prefix>: the host is the R2 bucket, the path is an optional folder inside it. Create the R2 API token in the Cloudflare dashboard (R2 → Manage API Tokens, Object Read & Write).
Local volume (test/standalone)
mkdir -p /srv/rtw/y-sweet
podman run -d --name y-sweet --userns=keep-id \
-p 127.0.0.1:9000:9000 \
-v /srv/rtw/y-sweet:/data \
atcr.io/rtw.run/y-sweet:latest
| Var | Default | Meaning |
|---|---|---|
S3_URL |
unset | s3://bucket[/prefix] persistence URL. Unset = local filesystem store in /data; set = S3-compatible bucket (R2 by default). |
HOST |
0.0.0.0 |
Listening IP address. |
PORT |
9000 |
Listening port. |
CHECKPOINT_FREQ_SECONDS |
10 |
How often document updates are checkpointed to the store. |
AWS_ACCESS_KEY_ID |
– | R2 API token access key. Required when S3_URL is set. |
AWS_SECRET_ACCESS_KEY |
– | R2 API token secret. Required when S3_URL is set. |
AWS_ENDPOINT_URL_S3 |
RTW R2 endpoint | S3-compatible endpoint. Override for other backends. |
AWS_REGION |
auto |
Region (R2 ignores it; override for AWS). |
AWS_S3_USE_PATH_STYLE |
true |
R2 requires path-style URLs. Set false for AWS. |
AWS_SESSION_TOKEN |
unset | Optional temporary-credential token. |
Health check: curl http://localhost:9000/ready.
Source: y-sweet · Docs: https://y-sweet.dev