Hi there! Let me start this post, the first of many, by introducing myself and my team. I’m Ashley Jones, manager of and senior engineer in the Web Development group here at Splunk. My team is responsible for every nook and cranny of the code for a number of sites you know and love. This includes, but is not limited to, splunk.com, docs.splunk.com and blogs.splunk.com. We have wonderful groups inside Splunk that we’re privileged to provide the code which makes their design work well and their content easy to consume.
Like over half the internet, we run Apache along with PHP and MySQL to power our sites. These old, open-source guards of the web, along with the new-comers like Firebug, have made it possible for my team as a service group, and me as an engineer, to thrive. I’ve always been inspired to give back to this open source community that has given me so much. My boss Doug Harr has given me the go ahead to do just that, which is very exciting.
The first project, and possibly the largest for some time to come, that we’re going to open source will be the code for docs.splunk.com. This is a Media Wiki site which runs our soon to no longer be proprietary extension we lovingly call Ponydocs. Ponydocs has a number of really cool features. Here’s the set up we have for running our Ponydocs instance which will illustrate the features you could have if you ran your very own copy:
- Full MediaWiki features for each topic, including revisions, easy wiki markups and more
- As many products as you want. For example ABC Software company can have product A, B and C
- Each product has permissions to allow edits on a per product, per person basis (Can edit Product A, but not B or C)
- Products have documentation versions which are discrete from other products. So product A can have versions 1, 1.1 and 1.2, while product C can have versions 5.0Alpha1, 5.0Alpha2 and 5.0RC1. It assumed that these versions will directly correlate to the software you’re documenting.
- Each version within a product can have one of three release statuses: Released, Unreleased and Preview
- Each Product has a permission group of preview. This allows any one in the group of “A-preview” to view any versions of product A marked as preview.
- There is a special group called “employees”. Any one in this group can see any version of any product
This is far from an exhaustive list of features, but hopefully will give you an idea of the use cases covered by the software. With the above items, we’re able to concurrently run beta’s for some products (previews) while running totally incognito with yet to be announced products and still maintain tons of current, up the second accurate docs for our main product, Splunk.
Proof is in the pudding though, so all this talk of features is nothing with out the code itself. Our first big goal with Ponydocs will be to open source it, but our first small goal is to gather interested beta testers to test our Ponydocs 1.0 Beta 1 release. We have one company who did an alpha run and has signed up for beta testing as well. If you’re interested in helping beta test, please email me and I’ll get you a copy of Ponydocs to tinker with on your own servers. Drop me an email. My address is my first name “ashley” and then at our domain “@splunk.com”. (Yes, that’s a very poor man’s faux captcha ; )
Here’s to great docs and open source!