Sputnik is a software application that powers a dynamic website. You can use it as a “wiki”, that is, a site that any visitor can edit. If you want, however, you can control who gets to edit and see what content. Sputnik can also handle different kinds of structured data, not just text, and makes it easy to add custom actions. You also get prototype inheritance between nodes. This makes it possible to use it for a wide range of web applications.
Sputnik is written in Lua and can be extended using Lua.
Sputnik is no longer being developed or supported. The last version was released in 2012 and in all likelihood there will be no further releases. You are welcome to continue to use it, but please do not expect much in terms of support.
Out of the Box
Out of the box Sputnik behaves like an easy-to-use and full-featured wiki. It allows users to create accounts, edit pages, see page history, etc. At the outset any user can edit any page (or “node”). However, as an administrator you can control who can see / edit what content. You can even block anyone but yourself from editing pages, which will turn your Sputnik into a “normal” website. See Features for the list of features or click around this site, which is running Sputnik. (You can also edit the Sandbox.)
To install Sputnik, download the archive from the link below and follow the instructions in the README.txt or see Installation for more details:
If you have a Unix machine, installation shouldn't take you more than a few minutes. You do not need root access to the server and there are no configuration steps until you want to do customization. Sputnik has also been known to work on Windows.
Tweaking and Extending
However, Sputnik was designed to be modified and extended into other things. You can configure its behavior through parameters and optional modules. If you are not satisfied with the available options, you can extend the functionality by adding new modules using Lua.
For example, out of the box Sputnik stores its data as plain files on disk (which helps reduce external dependencies). However, if you prefer, you can use a module that would store all the data a git repository or in a SQL database. But you can also write your own storage plugin, which could be as simple as writing two functions.
You can also use Sputnik as a framework for building a wide range of applications, building on top of Sputnik's web features, user management, and storage model. For example, you can turn it into a photo album or a forum site. See Sightings for some examples of websites built on top of Sputnik. (Some of those require just a bit of configurations, some require a small amount of Lua programming.)