Risved handles the full lifecycle, from pushing code to serving it with HTTPS. Framework detection, deploy previews, custom domains, cron jobs, rollback. No Dockerfiles to write, no proxies to configure, no certificates to manage.
Ship
From push to live in under a minute
Auto-https
Every domain you add gets an SSL certificate automatically. No config files, no manual renewals, no thinking about it. Risved runs Caddy as its reverse proxy, which provisions and renews Let's Encrypt certificates on its own. Add a domain in the dashboard, point your DNS, and HTTPS just works.
This includes your app subdomains, custom domains, and deploy preview URLs. Everything is encrypted by default.
Git push deploys
Push to your deploy branch and Risved builds and ships your app automatically. No CI/CD pipeline to configure, no deploy scripts to maintain.
Connect any Git provider, GitHub, GitLab, Forgejo, Gitea, Codeberg, Bitbucket, with a webhook. Or connect your GitHub account directly for automatic webhook setup, repo browsing, and commit status checks.
Every deployment is logged with the commit SHA, message, duration, and full build output. You always know what's running and why.
Deploy previews
Every pull request gets its own live URL. Push a branch, open a PR, and Risved builds a temporary deployment at a unique URL like pr-42.myapp.risved.example.eu. Share it with your team, test it in a real environment, merge with confidence.
Preview containers are created automatically when a PR is opened and cleaned up when it's closed. No manual setup, no leftover containers eating disk space.
If you're connected via the GitHub App, Risved posts the preview URL directly on the PR as a commit status check. Reviewers click the link and see the changes live.
Framework detection
Risved reads your repo and picks the right build automatically. Push a SvelteKit project and Risved detects svelte.config.js, generates the right Dockerfile, and builds it. Push a Hono app and it sees the Deno config and runs it natively. No Dockerfiles to write, no build commands to configure.
Supported frameworks: SvelteKit, Astro, Next.js, Nuxt, Hono, Fresh, Lume, SolidStart, and TanStack Start. Each one gets a framework-specific build template optimised for the smallest possible image and the fastest possible start time.
Deno-native frameworks (Fresh, Hono, Lume) run directly on the Deno runtime with no Node.js involved. Node-ecosystem frameworks (SvelteKit, Astro, Nuxt, SolidStart, TanStack Start) build with Node and serve with Deno where possible. Next.js builds and serves with Node.
If Risved doesn't recognise your framework, it falls back to a generic Node or Deno build based on your project's config files.
Rollback
Something wrong with the latest deploy? Roll back to any previous successful deployment in one click. Risved keeps your deployment history, every build, every commit, every status. Pick the one you want to restore, click rollback, and the previous version is live within seconds.
Your domains, environment variables, and cron jobs stay exactly as they are. Only the running container changes.
Zero downtime. The old version starts serving traffic before the broken version is stopped.
Control
Set it up once, adjust when you need to
Custom domains
Point any domain to any project. Add it in the dashboard, update your DNS with the A record Risved shows you, and you're done. SSL is provisioned automatically once DNS resolves.
Each project gets an automatic subdomain on your Risved installation (like myapp.risved.example.eu). Add as many custom domains as you want on top of that. Set one as primary and the rest redirect.
Risved shows you exactly which DNS record to add, verifies it for you, and tells you when SSL is active. No guessing, no waiting, no digging through Caddy configs.
Environment variables
Store your secrets safely. Environment variables are encrypted at rest, injected into your container at runtime, and masked in the dashboard UI. Click to reveal, click to copy.
Editing environment variables prompts a redeploy so your app picks up the changes immediately. No manual restarts, no stale config.
Separate your secrets from your code. Database URLs, API keys, auth tokens, they belong in Risved's env vars, not in your repo.
Branch deploys
Choose which branch triggers a build. Most projects deploy from main, but you can point at staging, production, develop, or whatever fits your workflow.
Change the deploy branch any time in project settings. The next push to that branch triggers a build. Pushes to other branches are ignored unless you have deploy previews enabled for pull requests.
Scheduled tasks
Run cron jobs by hitting any endpoint in your app on a schedule. Configure in the dashboard, check the run logs when it fires.
Set a route, pick a schedule (with common presets like "daily at 03:00" or "every hour"), and Risved sends an HTTP request to your app at the right time. Your app handles the logic, send emails, clean up old data, generate reports, sync with an API.
Every run is logged with the response status, duration, and response body. If something fails, you'll see exactly what happened.
Container networking
Your apps can talk to each other by name. Every container Risved deploys joins a shared Docker network. If you run a Postgres container called postgres alongside your SvelteKit app, your app connects to it at postgres:5432. No port mapping, no IP addresses, no extra configuration.
This is how you run a database alongside your app without Risved needing to manage databases for you. Bring your own Postgres, MySQL, Redis, or anything else that runs in Docker. Your apps find each other automatically.
Relax
It keeps running while you sleep
Server monitoring
CPU, memory, and disk usage at a glance from your dashboard. See which containers are using the most resources, spot problems before they become outages.
Risved checks container health automatically. If a container stops responding, it's flagged on the dashboard. You see what's healthy and what needs attention without SSHing into your server.
Automated backups
Your Risved configuration, projects, domains, environment variables, cron jobs, deployment history, is backed up automatically. If something goes wrong, restore in one step.
Backups cover Risved's own state, not your app's data. For database backups, use your database's native tools (like pg_dump for Postgres) or a scheduled task in Risved to automate it.
One-click updates
Update Risved from the dashboard in one click. See what's new before you install, release notes are shown inline so you know exactly what's changing.
Your deployed apps are never affected by a Risved update. App containers run independently in Docker. Only the dashboard restarts, and that takes about two seconds. Zero app downtime.
Risved Cloud instances are updated automatically. Self-hosted users get a notification in the dashboard when a new version is available.
Build history
Every deployment is logged with the commit SHA, commit message, build status, duration, and full build output. Scroll through your deploy history, click into any build to see the complete log, and understand exactly what happened.
Failed builds show the error clearly with the relevant log lines highlighted. No digging through terminal output to find the problem.
Build logs are retained for 30 days by default. Configurable in settings.
Docker cleanup
Old images and unused containers are pruned automatically so your disk doesn't fill up silently. Risved tracks how much disk space Docker is using and cleans up after itself.
You can also trigger a manual cleanup from the settings page if you need to free up space immediately. Risved shows you exactly how much space unused images are occupying before you prune.