Repository navigation
v0.5.0
Serve 0.5.0 sums up everything since 0.4.0: one app on many servers, backups you can trust, public status pages, a login wall for any app, and an API and CLI that cover the whole dashboard.
Highlights since 0.4.0
One app, many servers
- Load balancing across servers. Tick extra servers, turn on load balancing, deploy. Visitors reach replicas on every server through the private network. DNS only points at the main server; the others need no records and no open ports.
- Health checked every 5 seconds. A replica that stops answering gets no visitors until it is back. Each server switches to a new version only once its replicas are healthy.
- Pick how visitors are spread: round robin, least busy (good for uploads, streams and AI calls), sticky sessions, or main server first with failover to the others in about 10 seconds.
- Switch the main server without a redeploy. Domains, certificates and load balancing move over, and Serve moves the Cloudflare DNS records and tunnel domains it made. If the main server dies, make another one main and the app is back.
- Build once, run anywhere. A built app runs on several servers, or uses a build server, without a registry: Serve copies the image.
Backups you can trust
- Every restore is safe. Serve backs up everything first, and puts it back at once when a restore fails.
- Backup tests. Serve restores a backup into a throwaway database, by hand or every day, and tells you when one fails.
- Encrypted with your own passphrase, in a format openssl opens without Serve. Every backup has a checksum that is checked before it is restored.
- Several buckets, with the next one used when one is down. Backups before each deploy, users and passwords included if you want, MySQL, MariaDB and ClickHouse compressed.
- Import any dump from a file, a URL or a bucket, with the restore window showing the upload's progress. Compose stacks back up and import their databases, volumes and folders.
- Compose stacks can roll back to exactly the files and images a past deployment ran.
Status pages
- A public status page in minutes. Components follow your uptime checks, incidents and maintenance with updates, postmortems, and outages that show up on their own.
- Your design and your domain: four looks, logos, colors, fonts, any language, a response time chart, password or draft visibility, and your own domain through the server's IP or a Cloudflare Tunnel. Serve creates the DNS record when Cloudflare manages it.
- Subscribers follow by email, Slack, Discord, webhook or RSS, and pick the components they care about. A badge, a website widget and JSON come with every page, and CI can post incidents through the API.
A login wall for any app
- Only my team puts a sign-in in front of any app: admin panels, internal tools, staging sites. Members with access to the project get in.
- Guest logins let people without a Serve account in, with an email and password set per app. Works with nginx, Caddy and Traefik.
See every request
- Request log: each request through the proxy, with which server and replica answered, live in Metrics and Logs, with status and path filters.
Domains, previews and sign-in
- Edit a domain like you add one: its name, route or redirect, port, tunnel or IP, HTTPS and certificate, and its Cloudflare record and proxy.
- Pull request previews comment on GitHub, GitLab, Gitea/Forgejo and Bitbucket.
- Sign in with Microsoft, GitLab and Bitbucket, or your company's login with presets for Keycloak, Authentik, Okta, Auth0, Zitadel, Pocket ID and more.
- Deleting servers, services and projects asks for your password.
API and CLI for everything
- 305 API operations cover what the dashboard does, from status pages and database add-ons to deploy rules, Cloudflare and Git credentials. The CLI gained replicas, database settings, tokens, the request log, compose backups, proxy actions and status page incidents.
Fixed in 0.5.0
- A status page served with a Cloudflare Origin certificate got a DNS only record, and browsers refused the certificate. Serve now makes its record with Cloudflare's proxy on.
- Check DNS says when a status page reaches the server directly with a Cloudflare Origin certificate, and Turn on Cloudflare proxy fixes the record Serve made.
- Automatic picks a certificate browsers trust before a Cloudflare Origin one, and the status page picker says when a certificate is a Cloudflare Origin one.
Every release in between, with all its fixes: changelog.
Commits
d58b7670Status pages served with a Cloudflare Origin certificate get a proxied record, and say so when theirs is DNS only; trusted certificates come before Cloudflare Origin ones