Freedombone Blog

Freedom in the Cloud

Freedombone and IoT

Recently support for MQTT notifications has been added, so within your local network it's now possible to have IoT devices which support MQTT subscriptions listen for admin notifications coming from the server and then do something with that.

I've added an Arduino code example for an ESP8266 board (WeMos D1) using MQTT over wifi to listen for backup status messages from the Freedombone server. It then controls two LEDs which can be used to indicate whether the backup has succeeded or failed.

Note that the admin notifications aren't especially security sensitive. They only contain generic messages such as "Disk space low" or "USB device detected". So even if there are rogue IoT devices on your local network they can't glean anything very sophisticated from the messages.

There are many fun things which can be done with IoT at not much cost. Buzzers. Solenoids. Wearables. If you have a smartwatch which supports MQTT then you could also receive the notifications that way, although it would only work within your local wifi network.

Improving Notifications

The notifications system within Freedombone has been updated and can now send alerts for Epicyon DMs or replies and also will work with the Matrix app.

If you have Matrix installed then notifications will appear under a section called System Alerts within Riot. There is also a bug within Synapse such that if you close the Server Notices room then it won't be re-generated when a new notification happens and the only current way to fix it is to restart the matrix daemon or reboot the Freedombone server. So if you are using the Riot (web or Android) app remember not to close that room.

Deeds not Words

I've just returned from giving a talk about the Freedombone home server system at Manchester central library. Slides can be found here.

Before the event I was eating a sandwich in one of the parks and listening to nearby Hare Krishna buskers playing bongos, which was quite fun. Not many lyrics, but easy to learn.

Turnout this time was smaller than the previous year, but the venue was nice. It was also fitting to be giving a talk about public software in a place dedicated to keeping information accessible to the public.

Outside the library there is bronze statue of Emily Pankhurst amusingly standing on a chair giving a speech. The motto carved in the stone behind her says "deeds not words". I know what she means by that. You can engage in all manner of eloquent verbosity, but if it's not matched by corresponding actions then it doesn't amount to much. In earlier times there used to be a hacker motto of "show me the code". I don't see that written much anymore - even in the danker recesses of the interwebs - but it's the same kind of ethos.

There was an interesting talk about CSS which was quite relevant to my interests because the recent project which I've worked on called Epicyon makes extensive use of that for themes.

It's also a curious time to be someone doing Free Software. Reports from the Manchester group are that interest in "freedom related issues" such as software freedom, Open Rights Group and freedom of information has been in severe decline for some time. Perhaps there is a chilling effect from the ambient politics of reactionary populism and maybe the passing of the Snoopers Charter in 2016 was a devastating defeat for ORG.

And yet it seems like Free Software is more relevant now than it was decades ago. The problems around who has access to software and who controls it are a lot more tangible and the stakes are much higher. To paraphrase earlier sayings, either the public controls the software or the software controls the public. If the latter is true - and increasingly it appears to be - then we're really in a time of technology-enabled tyranny. Only deeds can even begin to do something about that.

Freedombone version 4.0

The Freedombone project is pleased to announce the launch of version 4.0, based upon Debian 10. At the end of the second decade of the 21st century the shattered remains of the open web are a site of ongoing struggle. The freedom to communicate with others securely and in a manner of your own choosing, and to own your data, is increasingly threatened.

Superficially, decentralized systems appear to be gaining ground, but the harsh reality is that the internet has become highly concentrated around a few companies with unprecedented political influence.

There is no freedom without freedom of association. That is, having the ability to define who you are and what kind of community you want to live in. This release includes Community Networks as an initial step towards networks run by and for the people who use them.

Map of Guifinet installs in a Catalonian town

Changes in this release

  • Integrated Wireguard VPN
  • Integrated RSS
  • Extra apps such as PixelFed, mpd, Zap and Grocy
  • A small number of multi-player games including Minetest
  • Community networks
  • New firewall using nftables
  • Improved integration of apps with members accounts (same login)
  • Improved theming
  • Improved international translations
  • Removed fediverse servers. An ActivityPub server might be added in future.
  • Blocklist includes word based blocking
  • Updated versions of apps

Games

This system isn't primarily intended as a gaming platform, but simple types of networked games requiring minimal resources may be one way to get people initially interested in self-hosting. Once you begin self-hosting one thing then it becomes tempting to try other things, until eventually you no longer need to rely upon any centralized SaaS.

Fediverse apps

For this release GNU Social, PostActiv and Pleroma have been retired. Self-hosting in the fediverse currently requires too much maintenance and the default experience without a giant and difficult to verify blocklist is likely to be an unpleasant one. It is hoped that in future there will be other fediverse servers better suited to low maintenance deployments and more able to defend users against the emerging threats.

Community networks

Community networks are where the physical infrastructure - the routers, cables and antennas - are democratically owned, not by giant telcos or people who don't even live in the region. In some areas of the world - especially those parts vacated by corporations as being insufficiently exploitable - this type of infrastructure is already mainstream and has been for quite a while.

Far from being some idealistic fantasy, systems like Guifinet provide a glimpse of what a better version of the internet might look like, after the demise of the dinosaurs. An internet run by and for the people that use it. Not by the government or a megacorporation.

Freedombone 4.0 includes a community networks feature which allows you to locate other nodes in your area, or start one yourself. The exact equipment you will need will depend upon your locality and more details can be found by selecting the join or docs buttons.

If you want a better internet, run by ordinary people not Silicon Valley billionaires, then nobody is going to hand it to you. You have to get involved and make your own future.

Where to get it

Pre-built images for laptops or single board computers can be downloaded here. Source code is here or here. For installation instructions see the main site.

Donations

If you want to keep this project going then donations can be made on Patreon or Liberapay.

Integrating RSS

Twenty years after the invention of RSS its fortunes as a protocol appear to be dwindling. The Firefox browser has done an especially lamentable job of making RSS easy to use. The main reason for that seems to be not that it isn't a useful technology but that it doesn't readily enable the kinds of surveillance which largely fund the contemporary web. There is typically no tracking on a list of links and traditionally there havn't been many attempts to insert ads into RSS feeds. RSS feeds are also not subject to any AI-driven timeline algorithms which bias some content above others.

RSS readers have existed within Freedombone for a long time, first with Tiny Tiny RSS then SmolRSS and now there is integration of RSS into the web interface via a system called RSS Garden. The aim is to make subscribing to and reading RSS feeds maximally convenient.

Image description

There's an RSS button you can select on the admin or home screens on the web interface, which lists entries for feeds you're subscribed to and you can add or remove feeds by clicking on the title at the top.

Image description

And of course the web interface is either available on the local network or via an onion address.

Image description

Because the home screen may be available to multiple members of your household adding and removing feeds is only accessible by the admin, so that for example someone can have parental control of what feeds get listed. Later this might be elaborated into a true multi-user reader experience.

RSS integration is currently only available on the buster development branch which is expected to be formally released in one or two months time.

Speeding up Translations

The way that translations happens in Freedombone is maybe not optimal but it's good enough, especially considering that changing the language of the web interface is something which is only going to happen once after setup for the first time. Previously this was quite slow, because behind the scenes what was really occurring was the running of a lot of sed commands on each screen.

To speed things up the script which changes language has been rewritten in python and loads the translation table into memory. This reduces the amount of time to translate all strings on all pages down from multiple minutes to thirty seconds on a Cubieboard with an SSD. That's still an appreciable duration and so additional "please wait" screens have been added. The wait screens make changes of language or theme much nicer and a lot less confusing. Possibly this might also be an opportunity to show some informational images during the wait, similar to installing Ubuntu or some other distros. Without wait screens there is a twilight zone in which some things have changed and some things havn't.

Image description

These changes currently only apply to the unreleased buster branch. With the release of Debian 10 expected soon (within a couple of months) the buster branch is where most of the action is happening.