Restate Playground
Durable execution runtime for services, workflows, and agents.
๐ Overview
Restate is a durable execution runtime for services, workflows, and agents.
This playground gives you a single Restate Server running as a systemd service. It is intentionally Restate-only: no application service is deployed for you.
๐ง System Components
| Component | Port | Purpose |
|---|---|---|
| Restate ingress | 8080 | Invoke registered services |
| Restate Admin API and UI | 9070 | Manage deployments, inspect services, query state |
| Restate fabric | 5122 | Node control and metrics endpoint |
๐ ๏ธ Tools
restate: Restate CLI for service and deployment management.restatectl: Restate control CLI for node and cluster inspection.
๐ฏ Getting Started
Restate starts automatically. Begin by checking the service:
systemctl is-active restate
Check the Admin API:
curl -sf http://localhost:9070/health && echo OK
Inspect the Restate node:
restatectl status
Check the empty Restate state:
restate services list
Open the UI
Open the ui tab in the playground. It connects to Restate's Admin/UI endpoint on localhost:9070.
๐ Inspect and Customize
| Item | Path or command |
|---|---|
| Restate config | /etc/restate/restate.toml |
| Restate data directory | /var/lib/restate |
| systemd unit | /etc/systemd/system/restate.service |
| Restate logs | journalctl -u restate -f |
Useful inspection commands:
sudo journalctl -u restate -n 100 --no-pager
cat /etc/restate/restate.toml
cat /etc/systemd/system/restate.service
After changing the Restate config, restart the service:
sudo systemctl restart restate
๐งฏ Troubleshooting
| Symptom | Likely cause | Check | Fix | Docs |
|---|---|---|---|---|
systemctl is-active restate is not active | Restate failed to start or restarted after a config error. | journalctl -u restate -n 100 --no-pager | Fix /etc/restate/restate.toml, then run sudo systemctl restart restate. | Server configuration |
curl -sf http://localhost:9070/health fails | Admin API is not listening yet or Restate is down. | `ss -ltnp | grep 9070` | Wait a few seconds, then check the Restate logs for startup errors. |
restate services list shows no services | No application service has been deployed or registered. | restate services list | Deploy and register your own Restate service. | List services |
| Data disappears after manual cleanup | /var/lib/restate was removed or reset. | sudo ls -la /var/lib/restate | Restart Restate and re-register your services. | Self-hosted Restate |
๐ Learn More
๐งฉ Related Content
๐งช Playgrounds
- Restate Cluster: a three-node Restate cluster for inspecting distributed behavior
Happy learning! ๐
A real VM, not a container
Get root on a VM with its own kernel, so Docker, Kubernetes, and systemd just work.
Read the docs โ
SSH from browser or CLI
Use the built-in web terminal, or connect with labctl ssh, plain ssh, scp, or rsync.
Read the docs โ
Drive it with AI
Let Claude, Codex, or any MCP client start this playground and run commands in it.
Read the docs โ
Expose HTTP(S) ports
Give any web app running inside the VM a public URL - for yourself or to share with others.
Read the docs โ
Share terminals
Invite others into your terminal session, or open it yourself from another device.
Read the docs โ
Customize with init scripts
Add shell scripts that run at boot to install packages, clone repos, or seed test data.
Read the docs โ
Private networking
VMs reach the internet via NAT with no public IP; several VMs share bridge networks.
Read the docs โ
Ephemeral or persistent
By default, VMs are destroyed when the session ends; enable persistence to keep the disks for next time.
Read the docs โ
Built-in container registry
A private registry.iximiuz.com for every playground to share images across services and VMs.
Read the docs โ