YunoHost High Availability/Redundancy

Hey all! I am new to the forum and I really wanted o talk about using Yunohost as a cluster. The first thing I wanted to ask was is it possible but according to reality anything is possible.

I’m trying to find some good reading material, as well as be apart of sharing documentation on how to do this. Yunohost really is a powerhouse that I would love to make more redundant.

  1. Ways to make Yunohost more redundant.
  2. How to break Yunohost up into dedicated sectors - MySQL
  3. I have 4 dedicated machines I’m willing to allow testing with
1 Like

Very good idea…
I can’t answer your questions but at least I know that it is possible to manage several YNH servers from one single point without having to access each one of them. This is because everything that can be done using the “yunohost” commands can also be done with a Web API.

Are there any documentations that you know of? I have tried building a nginx cluster, but realized after the servers are “spun up” Yunohost is going to overlap my config when it installs

Most of the documentation is here: https://yunohost.org/#/docs_en
The list of API functions can be found here: https://github.com/YunoHost/yunohost/blob/1ceb1259bc5f65cc94ce7447aa71117f9ad33dd2/data/actionsmap/yunohost.yml
I have made a PHP API class to interact with YunoHost servers, and it is available here: https://github.com/scith/yunohost-api-php

I don’t know much about Nginx sorry… I can just help on the API if needed
Cheers

Don’t apologize. The bit you do know is still apart of the bigger picture. I’m use to apache, but there is one thing be come to learn about computer software and things alike they are all simple if you simply look. Ill check out your links that’s again and i hope to continue chatting with you

Hi

I looked into this some time ago.
There are tools available to help but to my knowledge nothing tested/demonstrated for Yunohost.

On my side, I want to make the mail server part redundant, and that’s already a little challenge to integrate with Yunohost.

Dovecot (the IMAP server) has a functionnality for real time synchronisation between two servers : http://wiki2.dovecot.org/Replication
For Yunohost, one would need also to replicate the LDAP data, and openldap also has some replication functionnalities.

With those two enabled, this should be possible to have a real-time replicated mail server, allowing to have two primary MX in the DNS, so that when a mail arrives to one, it is synced with the other (in both directions).

I think this can be implemented as a Yunohost application to be installed on both ends. I hope I have time some day to dedicate to this.

For the rest of Yunohost (the web app), this is more complex and I did not found yet a simple solution : in addition to MySQL, you need to replicate the file system and this is far less easy to do in real time. Happy to hear about possible solutions though.

Personnaly I have set several yunohost behind a haproxy. The ssl was done on the haproxy.
Other people have done yunohost behind another yunohost by creating a reverse proxy conf with nginx.

About the overwrite of confs by YunoHost, the regenconf and the hook allow you to modify a yunohost conf each time it is updated by yunohost. It could be a solution.

You could set up your yunohost in a vm or container with an high availablity feature (vsphere or other hypervisor). Or you could create snapshot regurlarly.

You could try to decrease the time to recreate your instance by doing full “baremetal” backup with the experimental yunohost backup. And restore it on an other instance each night, to have an instance like 24 hours before.

I think it could be possible to share a storage between several instance and create redundant like that. At the beginning, yunohost was planning to configure tahoe lafs.

I think with an hypervisor set up on 2 machines with 2 datastore in mirror and each one with a raid you could have good redundancy. After that you could create 2 reverse proxy on 2 yunohost which share disk on datastore and use CARP to switch the gateway.
But the problem could be MariaDb and slapd. May be you could set mariadb externally, and redirect the port locally. The same for slapd.

What’s your perspective on unison. It’s suppose to be nginx compatible and it duplicates filesystems across a network.

Ok, so I did moe poking around about setting up a redundant Yunohost server and I was wondering if XENSERVER would get it done?

There is also Syncthing for the filesystem that has been packaged as a YunoHost app https://github.com/tuxmouraille/syncthing_ynh

Could you explain a usage for it? No one writes good READ.MEs anymore.

Woops sorry https://syncthing.net/
It is a software that synchronize several servers in a peer-to-peer way (like bitorrent sync). So for instance I may have 4 YunoHost servers and I can decide to sync between themselves some folders like the Nextcloud user folders. Whenever there is a modified file, the modification is replicated on all other servers

I just thought of this app when you mentioned unison

Your syncthing ynh app works with nginx?

Lol, duh obviously. What other ynh software do yiu know of that are good? How long have you been using ynh?

Depends on what you want to do… I’ve been using YunoHost for 2 years now and packaged some apps https://github.com/scith?tab=repositories
Check https://github.com/YunoHost-Apps for some good apps and https://yunohost.org/#/apps_en of course

Regarding this high availability idea, I’m curious about the solutions deployed by @ljf and @juju