Latest news (Feb 2011)
- SourceForge project now created; code is available under SVN.
- New document posted to SourceForge: "Bootstrapping Digital Democracy", general overview.
Questions answered by this recipe
This section is optional; use it to indicate the types of questions (if any) this recipe is intended to answer.
How can Wiki users take more control over the computer system that hosts their Wiki?
Permits democratic control of the Wiki's underlying computer system
Suffr is a PmWiki module that allows users to administer a computer system in a democratic fashion. Users create Wiki pages with directives intended to change the computer's configuration. Users then "sign" pages to approve them. When enough users sign a page, Suffr executes the configuration directives to implement the changes.
In this way, users can configure the operating system, mail and database systems, peripherals, and even the Wiki itself. No one person is in complete control of the underlying computer.
The name is derived from suffrage, a term describing voting.
Users describe the changes they want to make to the computer's configuration using Wiki pages. They author one or more changes using special directives (described below). These directives can:
- create or update configuration files,
- execute programs,
- create and execute scripts (informal programs).
When users "sign" a page, Suffr calculates a unique signature based on the page's contents. So long as the page doesn't change after it's signed, the signature remains valid.
When enough users sign a page, Suffr considers it approved. Suffr looks through the page for configuration directives and then executes them on the computer system.
To install Suffr:
- Download and unpack the Suffr archive: suffr.tgzΔ
- Add configuration directives to the
config.phpfile. See the program comments.
- Add an
config.php. PmWiki will incorporate the module into its programming.
- During development: ensure that you're identified as the author in the current session. If you've edited a page, this is probably true. Ensure also that you have created a Profiles page.
- Add Suffr directives to a new or existing Wiki page, especially the (:pagesignature:) directive. Save the page.
- Click Sign this page. A signature will appear on your profile page.
- When enough users (that have profile pages) sign a page, Suffr will invoke the directives and log the results.
This is untested software. Do not run on production sites (or even accessible testing sites).
If the recipe has multiple releases, then release notes can be placed here. Note that it's often easier for people to work with "release dates" instead of "version numbers".
- February 2011
- Version for Ignite Waterloo
- Added functionality for "opinion": beginning design for a way for members to know that a recipe (topic) will do what it claims to do.
- January 2008
- Initial version
This is a whitepaper that gives a high-level view of what Suffr is supposed to do. It describes the similarity between Wiki markup and system information formats, and the way that Suffr integrates with both the Wiki and the system. It talks about why democratic managment of a computer system is important.
How will Suffr make changes to files owned by root?
On UNIX-heritage systems Suffr will run "suid", probably through suPHP. Operations performed by Suffr are deemed to be taken by the user with the uid/gid of the pmwiki.php/suffr.php script file, not the uid of the web server. In this way, the web server need not run as root. Look at su(1), sudo(1), and other such tools for more information.