Replace your cloud storage.
Block-level file sync to every device you own, with version history and selective sync. Your files, your disk, reachable on your Tailnet or your domain.
$ ryra add seafile
Scaffolds rootless, daemonless podman containers wired with the same authorization system (SSO) and e-mail system with SMTP. The bundled registry covers useful services, each end-to-end tested in a fresh virtual machine, and the test framework is simple enough that you can have an AI add new services and prove they work the same way.
| SERVICE | STATUS | URL |
|---|---|---|
| caddy | running | http://127.0.0.1:8080 |
| forgejo | running | http://127.0.0.1:3000 |
| immich | running | https://immich.tail-ryra.ts.net |
| vaultwarden | running | https://vault.tail-ryra.ts.net |
Ryra is the only self-hosting tool that runs daemonless and rootless on podman and systemd, with every service tested in virtual machines.
Ryra writes systemd units and exits; systemd owns the lifecycle from there. Your services run as normal user-level units: restarted by systemd, logged to journald, managed with systemctl.
01Containers run under your user via podman, and each service is a plain systemd unit you could have written by hand. Elevated permissions only when there's no alternative.
02Each registry service ships a test that boots a fresh QEMU VM, installs the service, and asserts the full lifecycle: HTTP, OIDC login, SMTP delivery, removal. The same loop runs in CI and on your laptop.
03Container images update themselves on a systemd timer via podman-auto-update. When the registry ships a new env var or a quadlet fix, ryra upgrade shows you the diff, backs up the old version, and re-renders in place. Roll back with ryra revert if something breaks.
04The registry is plain TOML and quadlet files in a folder. Drop a definition in for your internal app, point ryra at your own registry, and install it the same way as anything bundled.
05Bundled SSO via Authelia. Every service in the registry that speaks OIDC gets wired up automatically with --auth: clients registered, callbacks set, env vars injected. One sign-in for files, photos, tasks, the lot.
06
Run ryra search or view available services to see what's in the bundled
registry. A few of the highlights:
Block-level file sync to every device you own, with version history and selective sync. Your files, your disk, reachable on your Tailnet or your domain.
$ ryra add seafile
Tasks, kanban boards, and a calendar. Add a todo from your phone, tick it off on your laptop, share a project with your team.
$ ryra add vikunja
Your own gateway in front of OpenAI and Anthropic. One place to hold the API keys, one URL to point your agents at, audit logs you control.
$ ryra add openclaw More in the bundled registry. Browse them all →
Add the bundled SSO provider with one command. Every service that speaks OpenID Connect hooks
into it on ryra add after that. One sign-in for files, photos, tasks, the lot.
$ ryra add seafile immich
The registry is a folder of service.toml and quadlet files. Drop a definition in
for my_app (or whatever you need), point ryra at your own registry, install with the same command.
$ ryra registry add my_registry https://github.com/you/registry
$ ryra add my_registry/my_app
If you can write a systemd unit, you can extend ryra (or use ryra test to let an AI agent write one for you).
# Linux · Debian / Ubuntu / Fedora / Arch $ curl -fsSL https://ryra.dev/install.sh | sh # browse the registry $ ryra search SERVICE SUPPORTS DESCRIPTION ──────────────────────────────────────────────── seafile oidc, smtp File sync & share immich oidc Photo & video management nextcloud oidc, smtp Files & collaboration vaultwarden smtp Password vault …
ryra test boots an ephemeral QEMU VM, installs whatever combination of
services you want, and runs assertions end to end. Wire SSO, a reverse proxy, your
photo library, and your file sync, prove sign-in works across all four, throw the VM
away. Your real machine never sees the experiment until you're sure.
Most of the time, all you need is one single machine to run a website, sync your files, or keep your photos. A few hours, and the right tools. Ryra is the right tools: opinionated where it has to be, out of the way everywhere else.
Containers run rootless under your user via podman. No Docker daemon, no privileged sockets, no permanent sudo. Elevated permissions only when there's no alternative, never sticky.
Ryra is a scaffolding tool, not a runtime. It writes plain systemd units and exits; systemd owns the lifecycle, the data lives in plain folders, the configs are text. Uninstall ryra and your stack keeps running.
Every registry service has an end-to-end test that boots a fresh QEMU VM and asserts the full lifecycle: install, HTTP, OIDC, SMTP, removal. The same loop runs in CI and on your laptop.