Freedombone Blog

Freedom in the Cloud

Going Audiovisual in ActivityPub

With some amount of wrangling, video and audio attachments now work in Epicyon.

screenshot showing embedded video clip

I've set the upper limit to 30M, which should be enough for short videos and podcasts. Supported formats are mp4,webm,ogv,mp3 and ogg.

One thing to keep in mind is that metadata isn't removed from these uploads, so if they contain any geolocation you might want to remove that manually beforehand. Whether metadata should be removed from media such as mp3 is debatable, since it might also be significantly useful. Perhaps that could be a configurable option.

Epicyon 1.0 release

Announcing the first release of Epicyon. This is an ActivityPub compliant server, supporting both S2S and C2S protocols and which can federate with Mastodon

Epicyon screenshots

All the basic functionality is in place, such as making posts, scopes including direct messages, blocking and filtering, content warnings and moderator functions. It's implemented in a manner similar to an email MTA with posts being stored as files in directories rather than within a database.

Why yet another ActivityPub server?

There are many ActivityPub servers out there but there are currently really only two which are suitable for general social networking rather than particular niches: Mastodon and Pleroma. Other systems like Friendica may federate with ActivityPub instances, but internally use their own protocol [correction - it does natively support ActivityPub among other protocols]. Most of the server code on Github or Gitlab is either very early stage development or abandonware, and it's expected that abandonments happened because the developers soon realized that it was a more involved task than the few available tutorials imply. Bigger than a weekend hackfest. Mastodon is ok but not well suited for running on low power hardware such as ARM boards. Pleroma is more suitable for self-hosting, but its limitations were becoming increasingly obvious when confronted with more serious levels of adversarial activity.

Also there were questions of depth versus breadth. Traditional social networking was about casual gossip and posting news links, but perhaps they could also be organizing tools to build communities with more depth and resilience to them. Beyond the state and the corporation, better ways to organize are needed if existing institutional intransigence is to be treated as damage and routed around.

Beyond ActivityPub

Some extra features have been implemented which go beyond the current ActivityPub spec. Shares is a system for exchange of physical items, similar to freecycle or bartering. The idea is one of local non-monetary exchange and the development of pooled resources between trusted mutuals.

Skills allow you to publicly indicate what skills you have. Combined with a search function this perhaps makes it a little easier to search around within a trusted group for people to form a team with the needed combination of skills. People can of course indicate skills which they don't possess, but the ordinary mediations of a social network (blocking, filtering, peer pressure, etc) should make it feasible to remove dishonest actors.

Moderation features

As the internet and social networking mature it has become apparent that the threat to good order is not anonymity or even pseudonymity but unmoderated spaces. Rather than enabling maximal freedom as intuition might suggest, unmoderated spaces instead create a pressure cooker of maximal tyranny in which bad actors can carry out a reign of terror. Neither corporations like Facebook nor government regulations can create healthy communities merely by decree. People have to learn to govern themselves within the online space.

Epicyon includes moderation functions whereby the admin can assign other people to act as moderators enforcing the terms of service, which can be customized as needed. Members can also report suspicious posts to the moderators.

Emoji

Emoji are of course implemented using the OpenMoji icons. It's also easy to add new emoji to the list. Unlike some other social network interfaces there is also the ability to search for particular emoji rather than trawling through a gigantic list.

Some limitations

Currently attachments can only be images. There isn't yet support for video or audio, though that may come in later versions.

The Mastodon API is also not implemented and this means that you can't currently use Epicyon with Android apps such as Tusky. This also might be added in a later version.

The familiar timelines (local, federated, etc) which originated from StatusNet also aren't implemented. ActivityPub only defines inbox and outbox, just like email, and that model has been stuck to. This may be easier to understand for people new to the fediverse, since most people already have a mental model for the way that email works.

There is currently no push mechanism between the server and a web browser. Instead it performs a primitive meta refresh every few minutes. This is obviously not ideal for mobile, and may be improved upon in future.

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.

Telerobots

In the mid 2000 I was confidently predicting that home telerobots would soon be arriving. Mobile phones were getting capable enough, and had all the sensors which would be needed in a convenient and battery efficient package - video, audio and gyro. The price of all of this was also getting within the reach of being a consumer product. My futurology seemed bulletproof.

I also made predictions about the evolution of telerobots. Initially it would just be teleconferencing type things and then there would be manipulators added and remote manual work becomes possible, and so on. Soon enough all kinds of manual tasks can be done from your desktop without any physical hazards, etc. No big advances in AI would be required either. There would be a competitive economy in labor hours of telerobot work too, and the whole thing could be an internet platform.

In 2019 I can see it was all bullshit. I actually realized that by 2013, and then changed what I was doing accordingly. There's still a chance that telerobots might be ubiquitous somewhere in an undefined future, but it doesn't look close or realistic. Today if I type "telerobot" into ebay the number of results I get is a grand total of...zero. "home robot" only returns the usual Roomba-style cleaners, which already existed in the mid 2000s.

It's a sobering reminder of just how wrong it's possible to be about the future. It's possible to fool yourself into believing all manner of follies. There is no inevitable path. Just because something is technologically possible doesn't mean it will happen.

Messing with ActivityPub

Recently I've been trying to implement the ActivityPub protocol. I wanted to get more of an understanding of what the issues are with it, and see if I could implement a server from scratch. Mastodon is ok, but too resource intensive for my use cases. The filtering system of Pleroma generally works well, but I was still struggling to keep bandits out of my inbox and it was becoming too much of a chore. Self-hosting is supposed to require little to no maintenance if it's done right.

If I'm to remain in the fediverse at all then what I'm looking for is something which requires minimum RAM and storage space. Where the database size has a strict maximum upper bound. And where I can be confident about what (or who) is or isn't getting onto my server. I searched around for existing projects which might fit the bill, other than Mastodon or Pleroma. GNU Social and PostActiv are still around and they were a good solution a few years ago. But I think the state of the art has moved on and something like GNU Social isn't geared up to handle the adversarial situations which now exist. It was designed for a gentler world of Free Software developers exchanging cycling trip photos and commandline tips. Now that there are a million or more fediverse users it's a different game entirely and the blooming buzzing confusion of the crowd requires some taming to be humanly interpretable.

So I may spend the next period of time developing a minimal fediverse server, equivalent to an email MTA. Maybe it won't work out and there will be some show-stopping reason why this is a bad idea, but in principle it seems like a tractable piece of work. On top of all the usual features it would also be interesting to experiment with adding organizing features and also something comparable to the old GNU Social Sharings plugin for bartering and freecycling.

I have some initial code here. Of course, it had to be named after a species of extinct megafauna. It's highly experimental and mostly just a bunch of unit tests, so I don't recommend that anyone use this for any practical purpose right now.

In case you were wondering, the next version of Freedombone will be out soon although I don't expect it will have any fediverse servers. In my estimation the existing software is too unsafe and too high maintenance for an install-and-forget type of system.

Dark Messenger 1.3

Emerging from the murky depths of the interwebs like a low-budget B-movie monster or something out of a 1970s Dr Who episode is Dark Messenger version 1.3.

This version is based on the latest Conversations XMPP chat app and has an added usability feature for initial setup. On the screen where you are first asked to enter your account details there is now a QR code button. If you have your onion JID as a QRcode, as it exists in Freedombone on the members screen, then you can scan it with your phone camera and the address and hostname fields are then populated automatically. This saves any fiddling around switching between apps, or trying to type long random addresses manually. The only thing you then need to do is enter the account password.

Top of the screen showing QR code button

Dark Messenger is a version of Conversations restricted to using onion address based XMPP accounts. This makes opsec snafus much harder to commit, and always ensures that the metadata is protected from passive surveillance. "Just say no" to letter agency spooks and other random interweb flotsam. No Certificate Authorities are involved in the running of this app.

Dark Messenger will not get rid of the nubs.
Dark Messenger will not make you look five pounds thinner.
And it's available in no app store anywhere.

But you can download it from here.