Yunohost is an amazing self-hosting platform with an incredible number of super valuable tools for small businesses ranging from website hosting to email hosting to email marketing. I’m really trying to force myself to move my business over to this platform to better protect company and customer data, as well as other financial savings.
However, while going through the process I realized for a small business especially, you really should take some time pre-planning what you will be doing on the server before you begin. It may also require that you have several servers depending on various needs.
I wrote this from stuff I simply wish someone pointed out to me before I began. It really would have saved me a lot of time. This post is nothing conclusive, nor a ‘recommended way’, however, it has been working for me and it may inspire some ideas for you. Feel free to just copy the strategy verbatim, but don’t get locked into it, either. Open source software is all about freedom of choice.
The way I have grouped Yunohost apps is as follows:
- apps that the public will need to reach and should reach
- apps that all people in the YH environment should have access to, but perhaps not the public
- apps that specific people in the YH environment only, should have access to (and definitely not the public)
Let me run with a few examples of each so you can get my point.
Apps that the public will need to reach and should reach
- Your website (WordPress app, for example)
- PDF signature app
- File sharing / sending apps (maybe)
- Live office documents / collaboration docs (Cryptpad, for example)
Apps that All People in the Yunohost Environment Should Have Access To
- Webmail
- CRM (probably)
- Marketing apps (Perhaps not everyone, but more than one likely)
- File sharing (ie. Nextlcoud)
Apps that Only Specific People in the Yunohost Environment Should Have Access To
- Automation software (perhaps)
- Financial software (perhaps)
General Explanation of Approach
Considering the above, it’s best if you can designate appropriate sub-domains for these key functionalities since it is relatively painless to setup and allows a much cleaner environment for the server to run and also flexibility later if you need to move things around a bit.
The key consideration, really, is what will be visible when the outside visitor lands on your main domain (we’ll call it maindomain.tld
moving forward). A subdomain is the folder above that such as appname.maindomain.tld
.
In most cases, if you are a business, you’ll want your maindomain.tld
to be your website that the public sees. For this reason, it might be a good path to simply leave it clear for ‘the basic web page’ – whatever that web page is. For the sake of this planning document, we’ll use WordPress app to mean ‘the basic web page’ since it’s so famous and most people can understand how it works.
Some Practical Apps and Domain Strategies to Cement it
As such, I would install WordPress on maindomain.tld
, and I would probably do that first so that it’s out of the way, and so that you don’t accidentally install another app on maindomain.tld
.
Next, I would immediately create a subdomain webmail.maindomain.tld
and install Roundcube (webmail client) on it. You can see this tutorial I wrote to walk you through that if you need. You will need email access in order to access admin emails from the system so this is a great second or first installation.
These are your two critical apps / considerations in my opinion. Moving past this, here are the subdomains and apps I set up so you can see the logic:
- mautic.maindomain.tld: Mautic is a great email marketing software
- send.maindomain.tld: An app called “Send” is a great app. Here is my blurb on that one and some installation tutorial for Digital Ocean
- sign.maindomain.tld: I installed SignaturePDF app here for simple PDF electronic signatures. It’s in French only currently but pretty easy to figure out even if you don’t understand. Here is an installation tutorial for Digital Ocean for that one too
- pad.maindomain.tld: Cryptpad is another amazing project and software. It’s a fully suite of encrypted office tools with endless features. Here is an installation tutorial for that one
I think you get my point and hope some of that helps show the subdomain logic. But what if you use ‘Send’ for ‘send.maindomain.tld’ and later decide that you want to use Nextcloud instead? No problem. See the next section. Yunohost makes changing apps and domains easy especially if you have well-thought out your structure like this.
I Installed an App on the Wrong Domain! Now what?
Great news. Yunohost is super awesome in this way. It is fantastic at being able to simply move an app to a different place. If you accidentally install Roundcube at maindomain.tld/webmail
for example, but you meant to install it on webmail.maindomain.tld
, no problem. Just go into the application again and change the location to webmail.maindomain.tld
and just a forward slash in the second field, and save your changes. It will take a couple of minutes to process this change, but literally – it’s that easy. I know this because I just made this mistake and corrected it 2 minutes before typing this sentence…
Considering Hardware Resources and where to install what…
When I first started setting up a serious Yunohost server for ‘actual business’, I setup a Digital Ocean droplet with 1GB of RAM. The thing wouldn’t even barely boot with a few pretty resource-hungry apps. At the point of writing this post, I haven’t even setup Nextcloud which is, of course, a golden winner and one that I’ll definitely be setting up for business, however, I don’t think that’s an app I want running on the same server. It’s kind of a stand-alone ‘thing’. So, I was thinking about starting another Droplet with ‘reasonable RAM” and tonnes of hard storage. Then, perhaps, I would pair other ‘utilitarian’ apps with that one so that, perhaps, I have a ‘utilitarian YH droplet’ and then another one for ‘marketing and emailing’, and then perhaps another one for ‘the basic website’. Not sure exactly but this might be a great way to do things and you can use all the YH skills you’ve learned and just duplicate them across various servers.
The cost of doing this would be more, of course, but it would still be substantially less than paying for someone else’s hosting of the same services and give you a lot of flexibility as well.
Concluding Comments
I hope this kind of ‘higher level’ view of Yunohost helps you and saves you a lot of time before you get started. Surely your use-case and setup will be different. That’s the beauty of this project. But there are some things that I find common between small businesses and organizations. If you have other thoughts that can improve this for others, send them in the comments and I’ll do my best to improve the document.