Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

To help support our clients and make our jobs easier, our support team creates and maintains a number of small (often < 50 line) proprietary scripts in a number of different languages to simplify normal tasks. These are currently stored in a number of places, from an internal wiki, to .txt files on people's own hard disks, on internal servers etc. and it's becoming difficult to track down the latest version of each one.

Really, these need to be kept separate and don't really relate to each other enough to be put into a shared source repository, but aren't significant enough to warrant creating a separate RCS repository for each.

Are you aware of any software or practices which would be suitable for managing a large number of these scripts? This would ideally provide the following functions:

  • revision control
  • web access (download single script over HTTP)
  • authentication
  • encryption

If there's no standard piece of software or standard practice for this, I guess it'll just come down to creating something simple myself.

share|improve this question
I suppose what I want really, is self-hosted github gists? Or something similar.... – JamesHannah Dec 14 '10 at 0:01
up vote 1 down vote accepted

I beg to differ about your point that scripts aren't significant enough for version control. They are often very important (logon scripts mapping network drives for example) and like you say also often just live on the server without any version history, so if you mess it up you're screwed.

We keep all our scripts in a Subversion repository, and that works very well for us. The benefits are pretty clear.

  • This is the authoritative source of any script we have. There's no doubt that somebody made an update to it last week but didn't share the change with everyone.
  • Changes to the scripts are tracked, and can be reverted it if goes pear shaped. Anyone breaking the script can be chastised.

Version control systems are pretty lightweight, and you can either piggyback another system (if you have in house developers, create a repository on their server) or create a virtual machine running a lightweight Linux distro if you need to.

As an aside, there was a post on the Server Fault blog recently about just this. Check it out.

share|improve this answer

In similar situations in the past, I've created one repository in $scm_of_choice, with subdirectories for each related group (admin_scripts, sql_scripts, etc).

Alternately, depending on how many scripts you're talking about, you could create one repository per problem domain.

share|improve this answer

since you want to track the version is natural to use a version control system - there are a few - svn, git etc.

for web access you may need to install some additional software but it can be done very easily.(for svn you may install an ssl enabled server, git uses ssh)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.