Charlie Harvey

Lessons from Community Webhosting in Oxford:

A bit of history

ox4, the activist, oxford web hosts

Back in 2008 me and my pal Penguin decided that it would be fun to have a webserver to play with. Nowadays, it doesn't cost much to have a virtual server with awesome hosts like Bytemark. But it still costs. Plus we wanted to provide a bit of a community activist resource. So, we figured that the best thing to do would be to share our server and use it as a resource for activism in Oxford. Well, we did that and now we're running a small scale activist orientated webhost, — it's our postcode. We’ve learned some lessons along the way, and we carry on learning as we go.

Our objective with ox4 was that it could be a hobby for both of us, that it would run itself as much as was humanly possible, and that it should help groups and individuals from Oxford or from the wider activist community. We chose to host with Bytemark, because they are pretty awesome. Most hosting companies don't answer the phone, Bytemark have somebody competant the other end. I know that Debian rock solid, reliable and, crucially, a piece of piss to maintain. So naturally we chose Debian as our OS. We didn't have any ambition to make money, so we just ask ox4 users to chip in towards the costs we have to pay. We reckon we almost break even.

shtig, who hosts at ox4 web hosting and makes activist art in oxford

When we first started our idea was to provide a simple website for any small campaigning group. We played around with offering Sky Blue Canvas as our CMS, but it was a faff to make into a scalable, multiuser system. Eventually we decided that Drupal was the best choice. It was sort of designed for multisiteing. And it allowed each site to use a different database. Which is of use when security is an issue.

We don't log IPs by default. Rather than using mod_removeip, we initially wrote our own logging definition for Apache which replaces the IP address of the client with the word Bollocks. That is still in use today. Here's the last line in our access log as I type this Bollocks - - [14/Jul/2011:20:53:24 +0100] "GET /~oimc/cal/rss.php HTTP/1.1" 200 436 "-" "Feedfetcher-Google; (+; 2 subscribers; feed-id=2811550440697694397)" If you wanted to do the same thing on your webserver you could do this in your apache config file (httpd.conf or apache2.conf). LogFormat "Bollocks %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined And later, in your VirtualHost definition: CustomLog /var/log/apache2/access.log combined Of course there are still error logs. Bit of a pain that. Our recent approach is simpler than directing all that useful debugging info to /dev/null . We run Varnish in front of our Apache. Which not only protects our box from slowloris and probably gives a bit of a speedup. But also means that alkl traffic originates from And Varnish doesn't log unless you run its logging daemon. Which we dont.

The Lessons

So what have we learned from our escapades?


  • Be respectful. You may want to read the comment guidelines before posting.
  • You can use Markdown syntax to format your comments. You can only use level 5 and 6 headings.
  • You can add class="your language" to code blocks to help highlight.js highlight them correctly.

Privacy note: This form will forward your IP address, user agent and referrer to the Akismet, StopForumSpam and Botscout spam filtering services. I don’t log these details. Those services will. I do log everything you type into the form. Full privacy statement.