yunohost
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.
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.
⛴ Docker image of Nextcloud
: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:
- Download the YunoHost image for your hardware (PC, Raspberry Pi, VPS, etc.) from the official website.
- Flash the image to a USB drive or SD card using a tool like Etcher.
- Boot your device from the YunoHost image.
- Follow the initial setup wizard to configure your server:
- Choose your language and timezone
- Set up your first user account
- Configure your domain name
- Access the web administration interface at
https://your-domain.tld/yunohost/admin
- 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.
⛴ 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.
: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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
YunoHost
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) |
---|---|
Contributing
- You can learn how to get started with developing on YunoHost by reading this piece of documentation.
- Come chat with us on the dev chatroom!
- You can help translate YunoHost on our translation platform.
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!
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!
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.
⛴ Docker image of Nextcloud
: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.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot