Image of speed blur - Self-hosting the IndieWeb

Discovering the IndieWeb movement was a 2015 highlight for me. It addressed many of my concerns about the direction of the modern internet, especially regarding ownership and control over that data.  But to truly own your own data, self-hosting is a must!

Background: Self-hosting your own stuff

I’m an ideas person. I have a number of projects – or, rather, project ideas – lined up, which I need to record and review. My blog provides me with the ideal space for that, as some ideas may attract the attention of others who are also interested. But why does this matter?

As someone who naturally likes to share experiences and knowledge, I see no benefit in not sharing my ideas too. After all, the web is all about sharing ideas. This matters to me, because the web is widely regarded as the most valuable asset civilised society has today (aside from the usual – like natural resources, power, warmth and sustenance)!

Owning your own data

As a small business owner, I sometimes benefit from various common business practices. For example, the standard accounting principle of straight-line depreciation means that after several years, capital assets once purchased by the business have little-to-no use for the business, meaning they become potential liabilities (both in the financial and risk-management sense). This means I am able to get hold of used, good-condition computing hardware of 4-5 years old at very little cost.

 

Two HP ProLiant tower servers, side by side. Self-hosting a website can work on much older hardware.
Even 10 year old servers still make for good general purpose machines. I’ll be using one of these for this blog, soon.  Expect plenty of caching!

 

This is useful for me, as a blogger and an IndieWeb advocate, as I can not only publish and manage all my own data, but also physically host my own data too. As I have fibre broadband running to my house, it’s now feasible to serve my blog as reasonable speeds with 10-20 Mib/sec upstream (“download speed” to you), which is sufficient for my likely traffic and audience.

This ties in nicely with one of my core beliefs, that people should be able to manage all their own data if they choose. I am technically competent enough, and have the meants at my disposal to do it. So why not!

Another driver towards this is that I wish to permanently separate “work” and “pleasure”. My business web hosting and cloud service is for my customers. Yes, we host our own web content as a business, but personal content? Well, in the interests of security and vested interests, I am pushing towards making  personal content something that is only hosted for a paying customer.

Of course, I would encourage anyone to start their own adventure self-hosting too!

Many bridges to cross

Naturally, taking on this type of arrangement has various challenges attached. Here is a selection of the tasks still to be achieved:

  • Convert some space in house for hosting
    • Create a level screed
    • Sort out wiring
    • Fire detection/resistance considerations
    • Power supply (e.g. UPS)
    • Physical security
  • Get server cabinet & rack it up
  • Configure firewall(s)/routing accordingly
  • Implement back-up – and possibly failover – processes

Step one: documentation

Whilst I am progressing these endeavours, it would be remiss if I didn’t document them. There is a lot to be said for the benefits (to a devop, anyway) of hosting one’s own sites and data, but naturally my blog must carry on while I am in the process of building its new home.

A quick jiggle around of my site’s menu structure will hopefully clarify where you can see this work, going forwards (hint, check the projects menu).

Taking it from here

If you are interested in hosting your own servers and being in direct control over your content/data, why not subscribe to this blog’s RSS feed or subscribe by email (form towards footer). Or if you have comments, just “Leave a Reply” beneath! 🙂

I had been cultivating a fascination with Jekyll for blogging for a short while. It looked oh so clean, and minimalist, and sleek. It has its fans, for sure, and I am one of them.

If I were starting my blog from this day, I would almost certainly consider using Jekyll for it, rather than WordPress.

WordPress: better the devil?

But, I am not. Back in 2007 (can it really be so long ago?!), when I started blogging, I didn’t give much thought to my requirements eight years down the line. And the funny thing is, they have hardly changed.

Org2Blog is everything I need from blogging. It’s quick, because I can compose my text in Emacs, and also supply my category and tag information directly too.

When saving the post in Emacs, I can save a local copy using the same date-title-based file name schema that Jekyll would expect (e.g.: 2015-10-28-Assessing_Jekyll_as_an_alternative_blogging_platform.org).

Further benefits to Emacs/WordPress duality

Emacs Rocks.
Emacs Rocks.

As indicated by the previous filename example, blogs can be saved locally on my hard disk in Org-mode format, allowing me the option later on to convert everything for a Jekyll-based future. In other words, making the decision to hard-switch from one system or another need not be rushed and can, in fact, be assessed based on technical need.

Another “turn-off” from Jekyll is that, despite various attempts to make it easy to migrate WordPress posts, I found the process awkward and the documentation confusing. There is more than one way to skin this cat.
For me, Emacs provides such a comfortable environment using Org2Blog that it’s really hard to justify the alternative approaches of org-jekyll or Org+Jekyll.

Disadvantages to using WordPress

Well, it’s not elitest 😉

But aside from that, there are a few serious disadvantages. And these are ones you already know about: there’s lots of (potentially-vulnerable) PHP running, which is a security risk and also makes WordPress … slow.

Also, WordPress makes microblogging, or “notes” in IndieWeb parlance, not very easy. I want to publish my own microblog on my site and publish it elsewhere, but this will take futher investigation.

WordPress, also, has a reputation. It’s a bit like Walmart (or Asda in the UK). It’s a great, hulking CMS that everyone knows. It’s everywhere. Everyone uses it. Which means there’s less that’s “special” about it. And that’s a shame, because for all of that it’s really quite brilliant.

What WordPress gives me

Yoast SEO screenshot
Managing SEO settings per-post in WordPress

Like others, I’m a firm believer in the IndieWeb movement, but I don’t have enough time to write software for personal use right now. Luckily, many talented and dedicated individuals have stepped up and kindly donated their time and code to enable the IndieWeb on WordPress sites. This suits me down to the ground. At least I can support the movement by advocating and using their code.

WordPress also gives me flexibility. If I wish to write a short post about some coffee I’ve tried, I can. Picture too. If I wish to incorporate a video or music in a page fo rsome reason, the built-in editor makes that effortless. As it does, embedding a tweet too. WordPress is doing favours for the web at large, by keeping our writing options open and encouraging open sharing, rather than feeding us silo-centric drivel-data that we see so often from certain social networks!

One last thing WordPress gives is the ability for people who are not computer-confident to use a device like a Chromebook, or even their phone, and still provide a compelling and easy-to-use platform for sharing content.

There is a growing movement.  

The movement is towards a free web, unimpeded by the silos that threaten to own us, and liberated from social-networking norms that diminish our individuality.

And yet, there isn’t actually one movement; there’s two.  In fact, there are many more than two, but I’ll focus on just these for now.

 

Friendica

Friendica is a social networking platform which is decentralised, distributed and fully privacy-respecting.  It is, of course, open source too.  Friendica’s purpose is to be an ‘alternative to those “creepy” social networks that don’t really care about your privacy’.  It is primarily a web site with components that interact with other social networks (Facebook, Twitter, etc) as well as other instances of Friendica.

Friendica requires self-hosting.

 

Indieweb

Conversely, the “Indieweb” is more of a concept than a specific implementation.  Its guiding principle is that “When you post something on the web, it should belong to you, not a corporation.”  Although similar ideologically to Friendica, the implementation is less defined.  Some people have implemented it via WordPress plugins, others through Jekyll and other static blogging systems.

Indieweb’s principles can even be implemented in “closed” systems, provided the data can always be accessed by its owner.

 


A 200 word post.

If there is one thing I become acutely aware of, as time rolls by, it’s that the effort to write a page on my blog never diminishes. As the length of time since my last post increases, so does the psychological pressure to produce the next post. But one has to question, why is there this innate need to compose something, share it to the world and possibly see no return for the effort?

As strange as it sounds, I am intrugued by blogs that appear to have “stopped” at some point in time. When you come across a really useful post from a blog that was last updated three years ago, you can’t help feeling a bit sadenned by it. What happened to the poster? Did he/she get busy doing more even interesting stuff – so much more interesting and so much more busy, that they have neither the time nor the inclination to share?

This is a problem I have and I suspect I’m not alone. Sharing what goes on in my daily life is sometimes not possible. People count on me to provide web hosting support the moment they need it, not after I write a blog post. Working with a number of UK graphic design agencies, my days are kept busy and varied. Staying on top of the latest technical developments – often blogged by others in the industry, means I have little time to share this newly-acquired knowledge myself.

To address this issue, I am going to start worrying a little less about the content of my blog posts and more about their timeliness. Sound strange? Perhaps. Having read others’ blogs, though, it seems that social, political and technical comment is still a sought-after item of value in cyberspace. It all comes down to trust. Do you trust the opinion of the writer of this blog?

In our increasingly exposed digital world, establishing trust is something that comes from interactions and being able to judge a person’s character through what they share. As time rolls on, I will attempt to share more of my thoughts and observations through this blog and other social media sites, and worry a little less that I’m not providing a how-to on “everything you ever needed to know”.

If you have any comments, please feel free to add them below. Thanks.

“Hindsight is a beautiful thing”, I was recently reminded.  With hindsight, last week wasn’t the super-catch-up exercise I’d hoped.  But, instead, it was a good week for new ideas (all captured, naturally).

Last week:

Get back on track!

Work

  • [-] WAITING: SEO customer project
  • [X] Database update customer project. Rebuild Kexi from source and test after a fix from lead developer
  • [-] WAITING: PHP calendar development for customer
  • [-] Visual design/template revision work for customer
  • [ ] Get list together of targets for Project “L” and plan launch
  • [-] Create additional web forms to service other business areas
  • [ ] Minor company homepage change
  • [-] Review structure of site and content; trim.
  • [-] Complete SVN/Bugzilla integration project.

Life

  • [X] Tax return
  • [-] Siu Lim Tao / stretching
  • [ ] Pick up files for F/LOSS project and start documenting…
  • [ ] 2 swims, 1 mile each
  • [X] Some personal correspondance/organisation to be achieved.
  • [XX] Social life 🙂
  • [X] Looking forward to meal with family friends this weekend

Misc

Would like to see more:

This week:

Get real! 🙂

Work

  • [ ] Approve new service Ts & Cs
  • [ ] Kexi – liaise on mailing list re testing issues…
  • [ ] Small updates to client web site
  • [ ] Database updates to client site
  • [ ] Layout work for high priority customer project (linked with CMS dev)
  • [ ] CMS development
    • [ ] Feature-freeze spec
    • [ ] Roadmap & assign target dates
    • [ ] Soft launch on test web site
  • [-] Complete additional web forms to service other business areas (really!)
  • [ ] Business web site changes –  higher priority
  • [ ] Complete SVN/Bugzilla integration project.
  • [ ] Networking event
  • [ ] Clarify new sales process
  • [ ] Re-evaluate financial goals for August/September and prioritise accordingly.Unplanned extras
  • Resolved a situation with web hosting accounts unable to access email.
  • Revised UML Use Cases and put into action for sales process revision.

Life

  • [ ] Pick up files from a cool F/LOSS project and start documenting…
  • [ ] 2 swims – 1 mile each
  • [ ] Cook something “new”!
  • [ ] Social life: this week, it’s on Thursday! 🙂
  • [ ] Address issues with service providers
  • [ ] Finish the book Getting Things Done
  • If time, use orgmode in more of a GTD-style method

Misc

My life doesn’t revolve around the television.  I don’t watch any terrestrial broadcasts.  I am especially uninterested in “prime”-time offerings (e.g. soaps). Ugh.  Instead…

Hot off the press is v1.4.5 of Mark Hershberger’s weblogger, an extension to GNU Emacs / XEmacs which allows blogging from within the Emacs editor environment.

Early indications are good – for me at least. I have found the process of setting up and using weblogger a bit tricky, at times, so it’s encouraging to see that I can at least add this blog entry fairly easily.

Now, which is that “publish blog” keystroke…? 😉