Welcome to the 2nd issue of my self-hosted weekly newsletter. For this issue I have reworked my workflow a bit and instead of composing the newsletter in CodiMD and then converting the markdown into html and a plain text version for pasting it into Mailtrain I am now using the “RSS Campaign” feature of Mailtrain. This also meant that I needed a place to publish something that will generate an RSS feed. For this I have chosen the static site generator Hugo, which output I am simply uploading into an instance of Surfer on my Cloudron server. This all still reads quite complicated, but also makes it easier to offer a public archive of previous issues, so I consider this a win.
And since this means this newsletter can now be read via email and through my blog I have also decided to disable open and link tracking in the newsletter. So it’s also a win for privacy ;-) .
The holy grail of selfhosting: personal knowledge and to-do tracking
A few days ago the quest for a selfhosted alternative to Microsoft OneNote made the rounds on Reddit. OneNote is a powerful tool when it comes to collecting knowledge and taking notes, it was a constant companion for me when studying as it allowed to easily mix text and pen input and merge it with study materials. Sadly Microsofts move to focus on the UWP version, which better integrates into Office 365, comes also with the “anti feature” of no longer allowing to store notes locally. So some would say: Self-Hosting to the rescue, but the more complex an application is, the harder it is to replace. Maybe with OneNotes fileformat having an open specification its time for LibreNote?
The way I am handling this task for myself at the moment is by using Dokuwiki with a bunch of plugins, like for example the Todo Plugin. But this comes with the drawback that it does not offer the same way of instantly saving changes without submitting them (which, one could argue, is maybe not exactly what you want in a wiki) and input and performance issues when trying to update pages on mobile devices.
Another interesting approach could be using Org-mode. In the past this did not seem to interesting, as this plain text format for keeping track of notes and tasks comes with the requirement of using emac in a terminal (which is not always convinient on a mobile phone). But luckily there is also a mobile friendly webbased implementation thanks to organice. Organice is a for of org-web, which not only adds a self-hostable backend with WebDAV, but also makes the webclient functions as a Progressive Web App (PWA).
PWAs not only implement mechanisms to use web applications without an active internet connection, but through their ability to offer to make a web application installable it also offers full control over an app lifecycle to self-hosters, without needed to rely on Appstore listings and app lifecycles that could be detached from the actual self-hosted backend.
An introduction to Kubernetes
I am convinced containers can make it much easier to host your own application. While for small style deployments tools such as
docker-compose are often enough, Kubernetes is the tool of choice when it comes to large scale deployments. Jeremy has put together a nice compilation of principles and concepts behind Kubernetes in his article “An introduction to Kubernetes”.
Kubernetes IN Docker (kind)
If the above article has woken your interest in Kubernetes, but you don’t want to dive into a multi server setup just yet, then kind could be a good tool to get some practice and/or locally develop applications for Kubernetes.
Kind uses the docker engine that you probably have running anyways to bring up all the needed parts so that you can in the end use tools such as
kubectl to interact with your shiny local Kubernetes setup.
- CodiMD 1.5.0 has been my online Markdown editor of choice for a while already. In fact this newsletter is composed in CodiMD. It has a bit of a troubled past, with its original code stemming from HackMD, then abandoned in favour of their SaaS, taken over and renamed by the community and then the original authors coming back and wanting to take it over again (which resulted in a “fork” in its own Github organisation). Still its a high quality tool, that is even in use at CERN.
- Goss 0.3.9 is a tool that I am using for some time now in a container project of mine. Goss is nice both for one off validation of a certain system, e.g. is a package installed, a service running, something listening on a port and can also be run in intervals to implement a basic healtcheck for services that do not offer such a functionality by itself. For checking containers with runtime dependencies on other containers my pull request to merge dcgoss was accepted a while ago as well.
Do you know of a project that should be featured here?
I am always looking for new projects to try out! Just send a mail to firstname.lastname@example.org.
UPDATE: The first time this newsletter was sent only the introduction of this text was included in it. This was due the simple fact that RSS feeds most of the time do not display the full content for its items. I have updated the RSS template accordingly.
Have a nice weekend!