YunoHost is a free, open-source server operating system based on Debian that makes self-hosting accessible to non-experts. Through a web admin panel you add domains, create users, install apps (Nextcloud, WordPress, Vaultwarden, Jellyfin, Gitea and hundreds more) with single sign-on, run your own email, and take backups. There’s no need to touch Docker or write Nginx configs.

Comparison: see Cloudron alternatives.

Requirements

  • A fresh Debian 12 VPS. YunoHost takes over the system (Nginx, Postfix, Dovecot, SSOwat, firewall), so don’t install it on a server already running other services.
  • At least 1 GB RAM. 2–4 GB is comfortable for several apps, and Nextcloud plus others need more. See how much RAM a VPS needs.
  • A domain name (or a free nohost.me subdomain from YunoHost).

Install

On a fresh Debian 12 server, as root:

curl https://install.yunohost.org | bash

When it finishes, open https://<server-ip> (accept the self-signed certificate warning) to run the post-installation, or run it from the shell:

yunohost tools postinstall

Post-install asks for the main domain and the first admin user.

Domains, DNS and certificates

  1. Admin → Domains → your domain → DNS: YunoHost shows the records you need (A, MX, SPF, DKIM, DMARC, and others). Add them at your DNS provider. See DNS records explained.
  2. Certificate: once DNS points to the server, install a Let’s Encrypt certificate with one click. It renews automatically.
  3. Run Diagnosis (Admin → Diagnosis). It checks DNS, ports, email setup, disk space, and more.

Users and single sign-on

Create users in the admin panel. Each user gets:

  • a login for the user portal (SSO), which opens the apps they’re allowed to use;
  • an email address on your domain (if mail is set up).

Apps installed with SSO support use these accounts automatically. Set per-app permissions (Users → Groups and permissions).

Install apps

Admin → Applications → Install: pick an app, choose a domain and path (for example cloud.example.com/ or example.com/blog), and select the admin user. The catalogue labels each app with a quality level. Prefer well-maintained apps.

Command line equivalent:

yunohost app install nextcloud
yunohost app list
yunohost app upgrade

Email

YunoHost includes a full mail stack (Postfix, Dovecot, Rspamd) with webmail apps such as Roundcube or SnappyMail. For good deliverability you need:

  • outbound port 25 open at your provider;
  • a PTR (reverse DNS) record matching your mail domain;
  • SPF, DKIM and DMARC (shown on the DNS page).

On VPS.DO, outbound mail and PTR records are supported on USA VPS plans, and you can set PTR in the client area. See email VPS and SPF, DKIM and DMARC.

Backups

yunohost backup create                  # system + all apps
yunohost backup list
yunohost backup restore <name>

Backups land in /home/yunohost.backup/archives. Copy them off the server (rsync, rclone, or a backup app such as BorgBackup from the catalogue). See backup strategy.

Security

  • Use strong passwords for the admin account and users.
  • YunoHost configures its own firewall and Fail2ban. Open extra ports only via yunohost firewall allow.
  • Change the SSH port, or disable password login, in YunoHost’s security settings (Admin → Tools → Settings).
  • Update regularly: Admin → Tools → System update (system packages and apps).

Limitations

  • YunoHost manages the whole server, so mixing it with hand-configured services is fragile.
  • App packages lag behind upstream releases sometimes.
  • Uncommon apps may be less polished. Check the package’s level and issues.

Quick reference

Task Command
Install curl https://install.yunohost.org | bash
Post-install yunohost tools postinstall
Diagnosis yunohost diagnosis run
Install app yunohost app install <app>
Backup yunohost backup create
Updates yunohost tools update && yunohost tools upgrade

Related: self-hosting for beginners and Debian VPS.

  • Self-Hosting
  • Debian
  • Email Server