Overview
YunoHost is a Debian-based server操作系统 designed to make self-hosting accessible to everyone. It provides a web admin panel that lets you install and manage applications like Nextcloud, WordPress, Matrix, email, and more — without needing to be a Linux expert.
If you’ve ever wanted to self-host your email, calendar, contacts, and files but found the barrier too high, YunoHost is the answer.
Prerequisites:
- A VPS or dedicated server (1 GB RAM minimum, 8 GB storage)
- A domain name (or subdomain)
- Ubuntu 18.04+ or Debian 10+ (YunoHost can install on fresh or via their installer)
What YunoHost Installs For You
YunoHost isn’t one application — it’s a platform that manages:
- Email — Full IMAP/SMTP with Sieve filters, DKIM, SPF, DMARC
- SSO — Single sign-on portal for all your apps
- Web admin — Point-and-click server management
- Backup system — App-level and system-level backups
- Users & groups — Multi-user management built-in
- DNS configuration — Automatic DNS records for many registrars
Popular one-click apps include Nextcloud, WordPress, Mastodon, Matrix (Synapse), PeerTube, Pixelfed, Ghost, and 200+ more.
Step 1: Install YunoHost
Option A: Install on a Fresh VPS
SSH into your VPS and run:
curl https://install.yunohost.org | bash
Or for the more recent installer:
wget https://install.yunohost.org -O install.sh
sudo bash install.sh
The installer will:
- Install dependencies
- Configure SSH
- Set up the web admin
- Prompt for your domain name
Option B: Install Debian First
If you prefer a manual Debian setup:
# Update system
sudo apt update && sudo apt upgrade -y
# Install prerequisites
sudo apt install lsb-release apt-transport-https ca-certificates curl \
gnupg unzip wget -y
# Add YunoHost repo
curl https://install.yunohost.org/jessie.key | sudo apt-key add -
echo "deb https://apt.yunohost.org/debian bullseye stable" | \
sudo tee /etc/apt/sources.list.d/yunohost.list
# Install YunoHost
sudo apt update && sudo apt install yunohost -y
sudo yunohost tools postinstall
Step 2: Post-Installation Setup
After installation, access the web admin at:
https://your-domain.com/yunohost/admin
You’ll be prompted for:
- Main domain — Your primary domain (e.g.,
yourdomain.com) - Administrator password — Choose a strong one
- DNS — YunoHost will show you the DNS records to add
Add DNS Records
YunoHost provides custom DNS configuration. Go to your registrar and add:
# A record for main domain
@ 300 IN A your-server-ip
# A record for SSO/WEB
web 300 IN A your-server-ip
# A record for XMPP (if using)
xmpp-upload 300 IN A your-server-ip
# DKIM
mail._domainkey 300 IN TXT ( "v=DKIM1; k=rsa; p=YOUR-DKIM-KEY" )
# SPF
@ 300 IN TXT "v=spf1 a mx -all"
# DMARC
_dmarc 300 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com"
YunoHost’s diagnosis tool (yunohost diagnosis) will tell you exactly what’s missing.
Step 3: Create Users
Go to Users → Create a new user:
# Or via CLI:
sudo yunohost user create alice \
--firstname "Alice" \
--lastname "Admin" \
--mail "alice@yourdomain.com" \
--password "STRONG_PASSWORD"
Each user gets:
- An email address
- SSO access to all apps
- Personal Nextcloud storage
- Calendar and contacts (via Nextcloud)
Step 4: Install Applications
The magic of YunoHost: one-click installs for common self-hosted apps.
Nextcloud (File Sync & Calendar)
Go to Apps → Install → Nextcloud:
Or via CLI:
sudo yunohost app install nextcloud
Nextcloud gives you:
- File sync (like Dropbox/Google Drive)
- Calendar and contacts sync
- Collaborative documents (via Collabora or Only Office)
- Photo gallery
- 100+ more integrations
YunoHost sets up email automatically if you used your main domain. Verify:
sudo yunohost domain list-services yourdomain.com
You should see imap, smtp, sieve listed.
To create email users:
sudo yunohost email create bob@yourdomain.com
Matrix (Synapse) — Decentralized Chat
sudo yunohost app install synapse
This gives you a Matrix homeserver. Users can connect with any Matrix client (Element, FluffyChat, etc.) to https://yourdomain.com.
WordPress
sudo yunohost app install wordpress
Other Notable Apps
| App | Purpose | Command |
|---|---|---|
| PeerTube | Video platform | yunohost app install peertube |
| Mastodon | Fediverse social | yunohost app install mastodon |
| Galette | Membership management | yunohost app install galette |
| Forgejo | Git hosting (Gitea fork) | yunohost app install forgejo |
| Vaultwarden | Password manager | yunohost app install vaultwarden |
Step 5: Set Up Backups
YunoHost has a built-in backup system.
# List backup archives
sudo yunohost backup list
# Create a backup of all apps
sudo yunohost backup create
# Create backup of specific app
sudo yunohost backup create --apps nextcloud
# Restore from backup
sudo yunohost backup restore backup-name
Schedule automatic backups:
# Configure daily backup at 3am
sudo yunohost tools backup auto-configure --enable
sudo yunohost tools backup schedule-create \
--method daily \
--time "03:00" \
--destinations "local"
Step 6: SSL Certificates
YunoHost automatically provisions Let’s Encrypt certificates for all domains:
# Check certificate status
sudo yunohost domain cert status yourdomain.com
# Renew manually if needed
sudo yunohost domain cert renew yourdomain.com
Maintenance Tasks
Update Everything
# Update package lists
sudo apt update
# Upgrade system
sudo yunohost tools upgrade
# Upgrade apps
sudo yunohost app upgrade
Monitor Diagnosis
sudo yunohost diagnosis run
This checks DNS, email, SSL, system resources, and more. Run it regularly.
View Logs
# System logs
sudo journalctl -u yunohost-api -n 100
# App logs (e.g., Nextcloud)
sudo cat /var/www/nextcloud/data/nextcloud.log
Common Issues & Fixes
”Cannot connect to the server”
# Check if services are running
sudo yunohost service status
# Restart YunoHost API
sudo systemctl restart yunohost-api
Email not delivering
# Check SMTP logs
sudo tail -f /var/log/mail.log
# Run full diagnosis
sudo yunohost diagnosis run --email
SSL certificate issues
# Force renewal
sudo yunohost domain cert renew --force
Domain not resolving
Wait for DNS propagation (can take up to 24-48 hours). Use dig yourdomain.com to check.
What You’ve Got
After setup, you have:
- Email server — Send/receive emails from your own domain
- File sync — Nextcloud with calendar and contacts
- SSO portal — One login for everything
- Chat — Matrix/Synapse for decentralized messaging
- Website — WordPress or static hosting
- Backups — Automated backup system
- SSL — Automatic HTTPS everywhere
All on a server you own and control, costing ~€5/month.
Next Steps
- Enable 2FA for the admin panel
- Set up Fail2ban to protect against brute force
- Configure firewall with
sudo yunohost firewall setup - Explore the app catalog — there’s more than you expect