Getting off of the corporation cloud and onto your own, self-hosted, open source-based is an arduous task. We use a lot of web based services these days and replacing each and every of them, one by one, requires some forethought so that you don’t move all your data over to something that simply does not work for you.
I have currently setup some 10+ web applications on my private cloud. I could make a list of them and explain why they’re the best available in their respective categories but I think it would be more helpful to suggest some guidelines when looking for your next selfhosted web application.
How well-maintained is the project?
PHP projects are relatively easy to knock up and so, many flourish for a short while, get mentioned on a list back in 2012, appear in google searches but die quickly and the one-man-team behind them moves on to something new.
Take myTinyTodo for example. The project clearly stopped development in 2011, despite a small adjustment in 2014, and it’s still on google code which is slated for demolition in 2016. Contrast this with Tiny Tiny Rss, which as of today, has 127 contributors making 2.3 commits a day for the past 6 months.
This may not matter to you if the thing already does everything you want of it but usually it’s best to invest in a living, breathing, developing project. Say you depend on a Firefox extension to work with the server. Ah, but Firefox extensions are going to need a major makeover in 2016 and how may new extensions are likely to be coded for a dead project?
In short: Find the source code and check when the last commit was made. If you are sure that the application can be useful to you without any other clients, apps or interfaces than those included in the package, then feel free to disregard this advice. Or if you’re thinking that it’s a fixerupper and you’re the one to fix it upper, then you should also go ahead. But other than that, keep looking for something that’s still breathing, and check when the last commit was made.
As a side-note: Other signs of life matter, too. Check the project’s vital signs using the advice in this article to be sure.
Stand-alone or all-in-one
There are standalone apps that do one one thing (and hopefully do them well) and then there are general applications that try to do a lot of things. This goes for private cloud computing as well as desktop software. The mother of all general purpose private cloud applications is ownCloud. ownCloud does file sharing out of the box along with a calendar, an address bok and task management. And then there’s a growing set of extensions that can turn it into an evernote-clone, a fitness tracker, and a mail client to name but a few.
On the other hand you have specialist applications, like Shaarli which is a bookmark manager and nothing more or Wallabag which only acts as a ReadItLater/Pocket clone (i.e. you designate articles that you wish to read while browsing and you’re able to read them at a later point in time when you might not be online).
As a general rule, specialist applications tend to have more features than extensions, plugins or just ‘parts’ of a greater whole. The two mentioned above are certainly more well-rounded than their counterparts in the ownCloud universe, especially Tiny Tiny RSS. If whatever thing you’re looking for is a big thing for you, go with the specialist app. If you cried when Google shut down Google Reader, then Tiny is probably the right thing for you.
Of course, if it’s not a single user case, then you might well consider the packaged deals, as they’re easier to roll out to a wider set of users. Or if logging in multiple times bothers you, again, ownCloud makes it a lot easier.
You should however, be wary of the ‘ragbag’ type app, though. I came across Cacocloud by accident recently and while it looks attractive and interesting, something about the combination of “feed and mail reader, password and bookmark manager” just doesn’t sit right with me. Though they’re all useful to me, it feels like a random assortment of features quite apart from the ownCloud-clone-in-Google-clothes smell it exudes. Combine it with the fact that no updates have been made since april 2015 and I wouldn’t touch it with a ten foot pole.
Satellite software: Apps, extensions, interfaces
A server-side bookmark manager isn’t much worth if you can’t easily bookmark things from your browser. A task manager that doesn’t sync with – or is inaccessible from – your phone is likewise not all that an attractive proposition.
One of the first things I do when considering a web app is see if it has an Android app and in some cases a Firefox extension to go with it. This goes for WordPress, TT-RSS, Subsonic, Transmission, Syncthing, Shaarli and many more. Secondly, are the peripherals also open source and generally in good working condition.
I really liked myTinyToDo despite it’s lack of recent updates. But a task manager that is a pain to use on a phone, is simply not something that I’m going be using very much. OwnCloud’s tasks, on the other hand could be synchronised to a free (as in beer) app. It wasn’t much of a contest, I’m sorry to say.
I want to include ease-of-setup in my list I am honestly not sure how much variance there is here. The most obvious dividing line is between applications that run as independent services and so come with their own webserver as part of the package on the one hand and those that rely on other software – nginx, Apache, etc. – to serve up their content. And yes, it does make things easier that you can simply start Syncthing up and immediately check that it’s up and running by looking at a local ip and port. But if you’re going to access it from the internet you will probably have to set up a reverse proxy for it anyway so you can go to syncthing.mydomain.com rather than 188.8.131.52:27534. And that isn’t really that much easier than fiddling with PHP configurations.
Anyway, the kind of web applications that come with their own webservers tend to be of a special kind, where the web part is only an interface rather than the main thing. In most cases if you’re looking to put something up on the web you will need to deal with setting up PHP. On the plus side you can really just recycle that PHP configuration from application to application. Once you have got it working for one thing, it will most likely work for the next thing as well, whether you truly understand what it’s doing or not.
The long and short of it is that I don’t think there is an easy way into this. Sandstorm seems to hold out the promise of a point-and-click private cloud but I’m not entirely convinced. Maybe I’m just bitter because it didn’t arrive in time to save me from having to learn how persuade cajole nginx into doing what I wanted.
What you will want to look out for in any case is a nice setup guide for whatever OS/server combination you use, especially if you aren’t using Apache.
FOSS is not just for hobbyists any more. There are a lot of businesses being built on top of web apps. If you have ever gone looking for a nice, flashy WordPress theme, you know the telltale signs that this great looking free thing you just found comes with some hidden gotchas, either present in the now or to appear in the future.
Here’s an example. I was interested in having my own project management app for use in my professional life as my workplace was unlikely to buy me anything fancy. If you google ‘self hosted project management‘, one of the top results is something called 92five. This used to be freely licensed but now requires payment (and is oviously no longer covered by a copyleft license). The firm behind it claims that this was not a planned development but a requirement due to the amount of interest it garnered. In the end I figured that kanboard would serve my need adequately. I would not be surprised if Cacocloud turns out the same way.
I haven’t consciously discarded any apps on this account but I do think you should limit your dependency on commercial model FOSS. I use WordPress and I use ownCloud. The reason I use WordPress is the trust I have that Automattic will not turn on their user base and close off further development, a trust that is based on more than a decade of not-turning-on behaviour.
OwnCloud Inc., the company behind ownCloud development, has expressed repeatedly that their interests aren’t contrary to those of users who do not pay them. That doesn’t mean I will not get burned at some point when they change their mind. At the moment though it doesn’t seem that likely.