Convert Figma logo to code with AI

YunoHost logoyunohost

YunoHost is an operating system aiming to simplify as much as possible the administration of a server. This repository corresponds to the core code, written mostly in Python and Bash.

2,059
277
2,059
59

Top Related Projects

Nginx webserver and reverse proxy with php support and a built-in Certbot (Let's Encrypt) client. It also contains fail2ban for intrusion prevention.

5,926

⛴ Docker image of Nextcloud

8,343

:cloud: ownCloud web server core (Files, DAV, etc.)

Sandstorm is a self-hostable web productivity suite. It's implemented as a security-hardened web app package manager.

Quick Overview

YunoHost is an open-source operating system aimed at making self-hosting accessible to everyone. It's based on Debian GNU/Linux and provides a simple web interface and command-line tools to manage a server and install various web applications easily.

Pros

  • Easy to install and manage, making self-hosting accessible to non-technical users
  • Comes with a wide range of pre-configured applications (WordPress, Nextcloud, etc.)
  • Provides automatic configuration for domains, SSL certificates, and backups
  • Active community and regular updates

Cons

  • Limited customization options compared to manual server setups
  • Some advanced users may find it restrictive
  • Not all applications are officially supported or up-to-date
  • Performance may be slightly lower than a manually optimized server setup

Getting Started

To get started with YunoHost:

  1. Download the YunoHost image for your hardware (PC, Raspberry Pi, VPS, etc.) from the official website.
  2. Flash the image to a USB drive or SD card using a tool like Etcher.
  3. Boot your device from the YunoHost image.
  4. Follow the initial setup wizard to configure your server:
    • Choose your language and timezone
    • Set up your first user account
    • Configure your domain name
  5. Access the web administration interface at https://your-domain.tld/yunohost/admin
  6. Start installing and configuring apps through the web interface or command-line tool.

For more detailed instructions, refer to the official documentation at https://yunohost.org/en/install

Competitor Comparisons

Nginx webserver and reverse proxy with php support and a built-in Certbot (Let's Encrypt) client. It also contains fail2ban for intrusion prevention.

Pros of docker-swag

  • Containerized solution, offering better isolation and easier deployment
  • Focuses specifically on reverse proxy and SSL, providing a streamlined setup
  • Regular updates and active maintenance from the LinuxServer.io team

Cons of docker-swag

  • Limited to reverse proxy and SSL functionality, unlike YunoHost's full-stack approach
  • Requires more technical knowledge to set up and integrate with other services
  • Less suitable for users seeking an all-in-one solution for self-hosting

Code Comparison

YunoHost (Python):

def _get_services_status():
    services = _get_services()
    statuses = {}
    for service in services:
        statuses[service] = service_status(service)
    return statuses

docker-swag (Shell script):

if [ -n "$DOCKER_MODS" ] && [ -n "${RUN_MODS+x}" ]; then
    if [ -f "/mod-init.sh" ]; then
        ./mod-init.sh
    fi
    for i in $(echo $DOCKER_MODS | tr "," " "); do
        mod_name=$(echo $i | sed 's|^.*/||')
        if [ ! -d "/mods/${mod_name}" ]; then
            echo "Downloading ${mod_name}"
            curl -s -L -f "https://raw.githubusercontent.com/${i}/master/root.tar.gz" | tar xzf - -C /mods
        fi
    done
fi

The code snippets highlight the different focus areas of each project. YunoHost's code deals with service management, while docker-swag's script handles Docker mod installations and updates.

5,926

⛴ Docker image of Nextcloud

Pros of Nextcloud Docker

  • Focused on Nextcloud deployment, offering a streamlined container setup
  • Easier to scale and manage in containerized environments
  • More portable across different hosting platforms and cloud providers

Cons of Nextcloud Docker

  • Limited to Nextcloud functionality, unlike YunoHost's multi-app ecosystem
  • Requires more Docker expertise for optimal configuration and management
  • Less integrated with system-level services compared to YunoHost

Code Comparison

YunoHost (configuration example):

apps:
  - id: nextcloud
    label: Nextcloud
    arguments:
      domain: cloud.example.com
      path: /nextcloud
      admin: admin_username

Nextcloud Docker (docker-compose.yml excerpt):

services:
  nextcloud:
    image: nextcloud
    ports:
      - 8080:80
    volumes:
      - nextcloud:/var/www/html
    environment:
      - MYSQL_HOST=db
      - MYSQL_DATABASE=nextcloud

Summary

YunoHost offers a more comprehensive self-hosting solution with multiple apps and system-level integration, while Nextcloud Docker provides a containerized approach focused solely on Nextcloud deployment. YunoHost may be easier for beginners, but Nextcloud Docker offers more flexibility in containerized environments.

8,343

:cloud: ownCloud web server core (Files, DAV, etc.)

Pros of ownCloud

  • More focused on file synchronization and sharing
  • Larger community and ecosystem of apps/plugins
  • Better suited for enterprise environments

Cons of ownCloud

  • More complex setup and configuration
  • Higher resource requirements
  • Less integrated with other services

Code Comparison

ownCloud (PHP):

public function getFolder($path) {
    $folder = $this->root->get($path);
    if (!($folder instanceof \OCP\Files\Folder)) {
        throw new NotFoundException($path . ' is not a directory');
    }
    return $folder;
}

YunoHost (Python):

def _get_apps_catalog():
    """
    Return the apps catalog for the current YunoHost version
    """
    catalog = read_yaml(APPS_CATALOG_CACHE)
    if not catalog:
        update_apps_catalog()
        catalog = read_yaml(APPS_CATALOG_CACHE)
    return catalog

YunoHost is a more comprehensive server management solution, while ownCloud focuses primarily on file storage and synchronization. YunoHost offers easier setup and integration with various services, making it more suitable for personal or small organization use. ownCloud, on the other hand, provides more advanced file sharing features and is better suited for larger organizations with specific file management needs.

Sandstorm is a self-hostable web productivity suite. It's implemented as a security-hardened web app package manager.

Pros of Sandstorm

  • Stronger focus on security and isolation through containerization
  • More flexible app ecosystem with a wider variety of applications
  • User-friendly interface for installing and managing apps

Cons of Sandstorm

  • Less integrated system management compared to YunoHost
  • Steeper learning curve for server administrators
  • Smaller community and slower development pace

Code Comparison

YunoHost configuration example:

domain: example.com
path: /
admin:
  username: admin
  password: password123

Sandstorm configuration example:

{
  "serverName": "example.com",
  "port": 6080,
  "mongoUrl": "mongodb://localhost:27017/sandstorm",
  "smtpListenPort": 30025
}

Both projects aim to simplify self-hosting, but they take different approaches. YunoHost provides a more integrated system with a focus on ease of use for beginners, while Sandstorm emphasizes security and application isolation. YunoHost's configuration tends to be simpler, while Sandstorm offers more granular control over individual apps and their resources.

Sandstorm's app packaging system (SPK) allows for easier app development and distribution, but YunoHost's integration with system services can make certain tasks more straightforward for administrators. Ultimately, the choice between the two depends on specific needs and priorities in terms of security, ease of use, and available applications.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

YunoHost

YunoHost

Version Pipeline status Test coverage Project license CodeQL Mastodon Follow

YunoHost is an operating system aiming to simplify as much as possible the administration of a server.

This repository corresponds to the core code of YunoHost, mainly written in Python and Bash.

Screenshots

Webadmin (Yunohost-Admin)Single sign-on user portal (SSOwat)
Web admin insterface screenshotUser portal screenshot

Contributing

View of the translation rate for the different languages available in YunoHost

License

As other components of YunoHost, this repository is licensed under GNU AGPL v3.

They support us <3

We are thankful for our sponsors providing us with infrastructure and grants!

NLnet Foundation Next Generation Internet Code Lutin

Globenet Gitoyen tetaneutral.net LDN (Lorraine Data Network) NBS System

This project was funded through the NGI0 PET Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825310. If you're interested, check out how to apply in this video!