Getting Started
Create your account, set up an organization, and deploy your first app on Vardo.
First-time setup
The first time you visit your Vardo instance, you'll land on the setup wizard at /setup. This walks you through initial configuration — only the account step is required, everything else can be skipped and configured later.
Welcome
Choose between a fresh install or restoring from a backup. Most people pick fresh install.
Create your account
Enter your name, email and password. The first account created is automatically promoted to app admin.
If you sign in via GitHub OAuth or passkey instead, account creation is handled through that flow.
Email provider (optional)
Configure an email provider for magic link sign-in and notifications. Vardo supports SMTP, Mailpace and Resend. Skip this if you don't need email-based auth yet.
Backup storage (optional)
Connect an S3, Cloudflare R2 or Backblaze B2 bucket for volume backups. You can also use SSH/SFTP or local filesystem storage.
GitHub App (optional)
Install the Vardo GitHub App on your GitHub account or organization. This enables deploying directly from repositories, webhook-triggered auto-deploys and PR preview environments. You can set this up later in Settings.
Domain and DNS (optional)
Verify that your DNS records are resolving correctly for HTTPS.
Done
The wizard clears its progress and drops you into the organization creation flow.
Create an organization
After the setup wizard, you'll be prompted to create your first organization. Organizations are the top-level container for all projects and apps — every query in Vardo is scoped to an org.
Enter a name and Vardo auto-generates a URL-safe slug. On success, you're redirected to the Projects page.
Authentication methods
Vardo supports multiple ways to sign in:
- Passkey — WebAuthn/FIDO2 hardware key or biometric authentication. Shown as the primary sign-in option.
- GitHub OAuth — Sign in with your GitHub account.
- Magic link — Passwordless sign-in via email. Requires an email provider to be configured. Links expire in 10 minutes.
- Email and password — Standard credentials. Can be disabled via the
ALLOW_PASSWORD_AUTHenv var andpasswordAuthfeature flag. - Two-factor authentication — TOTP-based 2FA, configurable per user.
Creating your first project
Projects are logical groups of related apps. A "Blog" project might contain a Ghost app and a MySQL database.
- From the Projects page, click New project.
- Enter a display name and optional description. Vardo auto-generates a URL-safe slug from the display name.
- Click Create project.
You're redirected to the project detail page where you can start deploying apps.
Deploying your first app
From the Projects page, click Deploy app (or navigate to an existing project and add an app from there).
Source options
- GitHub — deploy from a connected GitHub repository
- Docker Compose — paste compose YAML directly or pull from a repo
- Docker image — pull any pre-built image
Deploy types
Vardo supports six deploy types: compose, dockerfile, image, static, nixpacks and railpack.
From a template
Templates are the fastest way to get running. The new app flow includes built-in templates across several categories — databases, caches, web servers, monitoring and tools.
Pick a template, review the pre-filled configuration (image, ports, volumes, environment variables) and fill in any required values like POSTGRES_PASSWORD. Click Create, then Deploy.
From GitHub
- Select GitHub as the source.
- Choose a repository and branch from your connected installations, or paste an HTTPS git URL.
- Pick a deploy type — Compose, Dockerfile, Nixpacks, Railpack or Static.
- Optionally set a root directory if your app lives in a subdirectory.
- Set the container port if the app serves HTTP.
- Enable Auto deploy to trigger a redeploy on every push to the configured branch.
- Click Create, then Deploy.
With auto-deploy enabled, Vardo receives GitHub webhook push events and automatically deploys. Pull request events can create and destroy preview environments.
From a Docker image
- Select Image as the source.
- Enter the image name (e.g.
nginx:latest,ghcr.io/org/repo:tag). - Set the container port if the app serves HTTP.
- Add environment variables and configure volumes as needed.
- Click Create, then Deploy.
Custom domains
Every app gets an auto-generated subdomain on your base domain (e.g. myapp.example.com). To add a custom domain:
- Open the app's detail page and go to the Networking tab.
- Click Add Domain and enter your domain.
- Create a DNS record pointing the domain to your server's IP.
- Vardo provisions a TLS certificate automatically via the configured ACME issuer — Let's Encrypt by default, with Google Trust Services and ZeroSSL also available.
You can set any domain as primary. Health checks run automatically to verify reachability.