How I set up a hubzilla hub on Digital Ocean.

How I set up a hubzilla hub on Digital Ocean.

Motivation: Hubzilla is the most interesting of the possible G+ alternatives I’ve looked at so far. Its most important feature, from my perspective, is that your identity isn’t tied to a particular hub. Identity portability is built in. You can move your activity to any hubzilla hub — one you run yourself, or one run by a mega-corp. You can run your own hub and participate fully in the network.

But hubzilla is new and perhaps a bit hard to grasp — new terms, new concepts. I decided to set up a hub.

Requirements: Some proficiency in linux system administration at the command line. Financial committment of ~ $100/year. Time committment of ~ 8-24 hours to set up, and then ongoing time TBD. Some expertise in using Google…

0) You need a domain name for your hub (eg: “nymclub.net“). In my case I had registered the name long ago at godaddy.com.

1) Set up a DO account (at https://www.digitalocean.com/) and create a droplet. A minimal droplet costs $5/month. Select ubuntu 18.04 as the OS.

The name of the droplet on creation should be the domain name above (eg: “nymclub.net“), and not the name they provide by default. Secure your droplet by following the excellent clear instructions at

https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04

[In general, DO has really great tutorials.]

[Note: I don’t work for DO, but I am a satisfied customer.]

The droplet will have an IP address that it will keep as long as it is alive.  Note it.

2) Set up DNS using the above IP address. You can use DO servers, following the documentation at:

https://www.digitalocean.com/docs/networking/dns/

In my case I have my own DNS servers, so I used them.

Be sure you can log into your droplet remotely, by name, not IP address.

3) Install the LAMP stack (Linux, Apache, Mysql, PHP):

https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-ubuntu-18-04

(There is also a DO “one click application” that gives you a server with a LAMP stack. I don’t know anything about it, other than it exists.)

Note: I used the MariaDB, a free plug in replacement for MySql, with

$ sudo apt install mariadb-server

if I recall correctly. It may be the default already.

Verify that you can see the apache start page from your browser.

4) Hubzilla requires a mail server that can send mail to confirm accounts. I just installed postfix as an “internet server”:

$ sudo apt update
$ sudo apt install postfix

[I think this will take further work on my part — I got it to the point where it could send the confirmation emails, and didn’t do any more email configuration. Email is, in general, a pain.]

I also installed an email client so I could send test messages:

$ sudo apt install mutt

5) Hubzilla also highly recommends using SSL/TLS for your web server. I used the “Let’s Encrypt” certificate authority, and “certbot”. See

https://certbot.eff.org/lets-encrypt/ubuntubionic-apache for information.

https://nymclub.net worked first try.

6) Install hubzilla. The instructions at

https://project.hubzilla.org/help/en/admin/administrator_guide are perhaps too concise, but they are complete. I followed them slavishly. Google will reveal several other tutorials:

https://www.howtoforge.com/tutorial/how-to-install-hubzilla-on-ubuntu/

doesn’t include TLS, and uses an apache virtual host.

https://hubzilla.rocks/page/tobias/tutorial_install_hubzilla_in_7_easy_steps

https://websiteforstudents.com/install-hubzilla-platform-on-ubuntu-16-04-18-04-with-apache2-mariadb-and-php-7-2/

Might not be a bad idea to read through them.

Once you have unpacked the software you can access the site and use the software itself to guide you through the installation. Specifically, I used the recommended “git clone” to get hubzilla in the default root directory of the web site, /var/www/html, then browsed to https://nymclub.net. The web site at this point shows the status of the installation — what is missing and what needs to be configured. At the command line, then, I manually installed the needed requirements — php-zip, mbstring, php-xml, and several others were needed. Sometimes it took a bit of head-scratching to figure out the correct package name to install. You can use “dpkg -S” to find that out – eg:

$ sudo dpkg -S php-zip

You may also need to edit the /etc/php/7.2/apache2/php.ini file to be sure that all the indicated packages have been enabled, change upload limits, and so on.

Important: in order to get changes in the php configuration to be reflected in the web page you must first RESTART THE WEB SERVER:

$ sudo service apache2 restart

Took me a while to remember that…

Be sure you have changed “AllowOverride None” to “AllowOverride All” in the necessary places in the /etc/apache2/apache2.conf file:

Options Indexes FollowSymLinks
AllowOverride All
Require all granted

Set up the database and the database user as described in the documentation.

After all this you should have an installation.

Finally, you need to create the first user, using the same email address that you provided during installation. This user is the administrator.

7) Now it is “administration” of hubzilla, not “installation.” I’m learning this at the moment, so just a couple of quick notes.

Initially, the navigation bar at the top of the page is pretty empty. In the upper right of the “Channel Home” page is “New Member Links”. A “Missing Features?” group is at the bottom of the list, with “Install more apps” and “Pin apps…”.

“Install more apps”: click on this link to get a list of apps to install.

“Pin apps to navigation bar”: Click on that link, and you will see a bunch of apps, along with a pushpin icon. Click the icon, and the app will appear in the nav bar. (Requires a reload).

I think you need apps to do much of anything, so the above two steps are pretty important.

Anyway, for ~$100/year you can have an awesome social network with complete control over your own data. Not a bad deal.

16 thoughts on “How I set up a hubzilla hub on Digital Ocean.”

  1. Tony Payson Well, there’s”: “If you aren’t paying for the product, then you are the product.” You aren’t getting G+ for free — you are paying with your information. And I’m beginning to think that as a product hubzilla is intrinsically superior to G+.

    At this point I have a hub that could support a few free riders. But in general I’m not interested in supporting a bunch of freeloaders. If by some chance nymclub.net were to become popular to the point where I couldn’t fund it personally, then I would probably set up a patreon. If it became really popular then I would probably turn it over to a non-profit or something.

  2. Kent Crispin I have no intention of becoming a “freeloader”, and I suppose if you can swing a hundred bucks a year for being social, then I guess it’s worth it.

    But for someone like me who’s been struggling on G+ for years to gain a following, it seems like a liability.

    I’m still scraping together pennies to purchase my own domain. and even then, there’s no guarantee of ROI. But, to each his own, I guess.

  3. Tony Payson $100/year is a fairly regular price for a server. Some mastodon instances were running slightly lower at $60/year but it’s roughly the same ballpark.

    Of course a single server could host more than a 100 users normally, bringing the total annual cost at below $1 per user. But at this price point you are trusting someone else to administer, secure and handle your data (and assuming they’re doing so at a fairly low cost).

    If on the other hand your privacy and your data is important to you, then about $100/year is what it costs on the Internet today. It’s a choice of priorities.

  4. Thanks for these excellent instructions. There are also app servers that can host a little used web app for free, but I don’t know if they support PHP.

    In any case, I’m also considering running a hubzilla node. If I do, your instructions will be very useful. If I do, I’ll probably open it up to others and open a patreon or something so people who want to can chip in.

  5. Yea this is not for users after all but pod providers Pat Kight . If you just want to join a hubzilla pod you would have an experience similar to what you have now on G+. I was hoping this would be easier so I could start up an RPG pod but looks like that won’t be happening. Eager to join a cool hub though.

  6. Pat Kight I guess the point is that one linux nerd can easily run a hub that supports a couple dozen friends, family members, and people they met online through other channels, none of whom know anything about linux. The beautiful unique thing thing about hubzilla is that you aren’t locked in to that hub — you can move your online identity to another physical hub at any time. The best environment for hubzilla, I think, is one where there are thousands of small hubs.

    Marcus Burggraf I’m beginning to think that your experience on hubzilla may actually be better than on G+ — the software is really pretty functional at this point, and the underlying model is a very interesting paradigm shift that may have tremendous potential.

  7. Tony Payson I’m retired, I have some necessary experience, and I can afford the time and money requirements, for a time, at least. That’s just luck and age. It’s actually a pretty cheap way for me to interact with friends and acquaintances, if it works out that way 🙂

  8. I am intrigued by possibility of controlling my own Hubzilla instance. But very busy.

    I signed up at some semi-random node but experience so far is puzzling. to be fair i have to invest time to understand.

    the ability to migrate Hubzilla identity is one of most powerful features, maybe unique?

Leave a Reply