Contents

diaspora✻ pod back up

diaspora✻ pod back up by Steve Simons is licensed under CC BY-NC-SA 4.0

Overview

I couldn’t say why, but I recently had the strong urge to host my own diaspora✻ pod again.

Around eighteen months or so ago I got a docker instance running after a fashion that ran diaspora✻ but it was flaky to say the least, and I wasn’t happy with the lack of control I had over it. I’d had a look at the instructions for getting one to run natively and had decided that a docker instance would be the easier option. In the event I did something really stupid and managed to hose the installation and gave it up as a bad job.

So in more recent weeks I had another look at hosting my own pod and in this new light, it didn’t look all that hard to do. So I spun up an Ubuntu 22.04 server1 on VMWare Fusion on my MacBook and had a go…

Ruby and OpenSSL gotchas

The only real issues I had installing v0.7.17.0-p02eba842 were with Ruby and OpenSSL. I’d followed the instructions to remove the deafult install of rvm and to install the rvm.io version as per the directions at stackoverflow. I then tried to install ruby v2.7 (the latest version of diaspora✻ doesn’t yet support ruby v3) but the compilation failed with ossl problems. It turns out that ruby v2.7 doesn’t support OpenSSL v3. The solution is to install the OpenSSL v1.0.1i version that came with the rvm package into /usr/local/src. Then I had to rvm install 2.7 --with-openddl-dir=/usr/local/src to force the ruby install to use the old version.

1
2
3
4
5
steve@pod:~$ .rvm/usr/bin/openssl version
OpenSSL 1.0.1i 6 Aug 2014

steve@pod:~$ ruby --version
ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [x86_64-linux]

Reverse Proxying

The install was unevenful after that and I soon had a pod up and running. I use the HAProxy plugin on my pfSense router to direct traffic from the pod from port 3000. I couldn’t figure out how to use a socket with this HAProxy, and it apparently hasn’t occurred to anyone else in the world to try if the day I spent searching for clues is any indicator! 🤬

Upgrading to v0.7.18.0

As soon as I saw the new version had been released I decided I was going to install it.

Now in hindsight, there are things I should’ve done differently and been more methodical in my approach. However it was late at night when I started tinkering and I just wanted to rush it through so that I had a new shiny version to play with in the morning. This probably didn’t help with the ensuing frustrations.

SSL woes

Everything went okay right up to running bin/bundle --full-index. I started getting a screen full of OpenSSL authentication errors from gems.diasporafoundation.org! It took literally all day to get past this stage. In desperation I turned to the diaspora✻ Discourse channel for help.

Major props to Dennis for his patient suggestions, and to Benjamin and Flaburgan for their help but honestly, I don’t know what I did to fix it. After multiple uninstalls and reinstalls of OpenSSL 1.0.1i and Ruby 2.7 I did it all one more time before giving up, and the bundle built as if nothing was wrong. FML!

Yes, we have no tables

So the next hurdle was doing the RAILS_ENV=production bin/rake db:migrate step. There were errors saying that the process couldn’t find the ‘people’ table in my MySQL database. In confusion I called yet again upon Dennis and he asked me to check if there were any tables at all in the database. Huffily, I checked the database and to my consternation saw that although the database was indeed present, it was now bereft of tables. At all.

Now call it lucky, but there wasn’t much going on in my pod in its previous incarnation anyway so I decided to cut my losses and just recreate the DB. I dropped it and ran the RAILS_ENV=production bin/rake db:create db:migrate step.

No problems after that, save for adding all the people again that I’d added the day before. Of course I had to use a slightly different username but that was a minor inconvenience.

Relocating the VM

So, that should’ve been the end of this tale but I’m a glutton for punishment and decided I was going to give the VM a more permanent home on my main server from the MacBook. I imported it to the VM environment (bare-metal Ubuntu server 22.04) and fired it up.

VMs and bridged networking

Obviously I wanted to have the VM on the same LAN network as my main machines but I couldn’t for the life of me get bridged networking working. I followed countless examples and tutorials to no avail. There was a workaround using a macvtap interface but that didn’t allow connectivity between the VM and the rest of the hosts on the subnet. In desperation I installed VirtualBox and it worked no problem once I told it to use the host’s enp1s0 device.

Summary

So whilst it’s possible to upgrge to the latest diaspora✻ using Ubuntu 22.04, I don’t recommend it. In fact there’s now a note to that effect in the documentation. Roll on the next version which will hopefully support OpenSSL v3 and Ruby v3.

Diaspora✻ is a lovely platform for interacting with others of a similar interest and taste. By design it’s far removed from the corporate cancer that afflicts other social media platforms. No-one collects your data and sells it on for profit. If you’re ready for a change you can register an account at https://diasporafoundation.org, or you can ask me nicely for an invitation to join pod.thewalkingdeaf.net.


  1. First mistake. Ubuntu 22.04 ships with OpenSSL v3 which breaks a lot of things. Like diaspora✻ - even the new version - for example. ↩︎