Deploying YunoHost
Introduction
YunoHost is a server operating system that makes self-hosting accessible to everyone. It provides a web interface for managing your server, installing applications with one click, and handling domains, users, and backups. YunoHost aims to democratize self-hosting by removing technical barriers.
Key highlights of YunoHost:
- One-Click Apps: Install 400+ applications from the app catalog
- Web Administration: Manage everything through a user-friendly interface
- User Management: Create accounts and manage access per application
- Domain Management: Handle multiple domains and subdomains
- Automatic Backups: Schedule and restore backups easily
- Let’s Encrypt: Automatic SSL certificate management
- Email Server: Built-in email hosting capabilities
- SSO: Single sign-on across all installed applications
This guide walks through deploying YunoHost on Klutch.sh using Docker.
Why Deploy YunoHost on Klutch.sh
Deploying YunoHost on Klutch.sh provides several advantages:
Simplified Self-Hosting: Install applications without complex configuration.
Centralized Management: One interface for all your self-hosted services.
HTTPS by Default: Automatic SSL for all your applications.
Persistent Storage: Your applications and data persist with Klutch.sh volumes.
Prerequisites
Before deploying YunoHost on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- A domain name pointed to your deployment
Deploying YunoHost on Klutch.sh
Create Your Repository
Create a new GitHub repository with a Dockerfile:
FROM domainelibre/yunohost:latest
# YunoHost requires systemd - use a compatible baseENV YUNOHOST_ADMIN_PASSWORD=${YUNOHOST_ADMIN_PASSWORD}
EXPOSE 80 443
CMD ["/sbin/init"]Note: YunoHost is designed to run as a full operating system. Docker deployment has limitations compared to bare-metal or VM installation.
Push to GitHub
Push your Dockerfile to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project.
Create a New App
Within your project, create a new app and connect your GitHub repository.
Configure HTTP Traffic
Set the traffic type to HTTP with port 80.
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
YUNOHOST_ADMIN_PASSWORD | Your admin password |
Attach Persistent Volumes
Add persistent volumes:
| Mount Path | Purpose |
|---|---|
/home | User data |
/var/www | Application files |
/etc/yunohost | YunoHost configuration |
Deploy Your Application
Click Deploy to build and launch YunoHost.
Complete Post-Installation
Access your YunoHost instance and complete the post-installation wizard to set up your domain and admin account.
Additional Resources
- YunoHost Official Website
- YunoHost Documentation
- YunoHost App Catalog
- YunoHost GitHub Organization
- Klutch.sh Persistent Volumes
Conclusion
YunoHost on Klutch.sh provides a user-friendly platform for self-hosting applications. While Docker deployment has some limitations compared to traditional installation, it still offers a simplified approach to running your own services with one-click application installation.