Skip to content

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:

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 base
    ENV 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:

    VariableValue
    YUNOHOST_ADMIN_PASSWORDYour admin password

    Attach Persistent Volumes

    Add persistent volumes:

    Mount PathPurpose
    /homeUser data
    /var/wwwApplication files
    /etc/yunohostYunoHost 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

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.