Since Swiki support at the CoC is being phased out, I set up a MoinMoin wiki for our research project hosted off of a CERCS machine. MoinMoin is nice because it's fairly simple, written in Python and self-hosting (though also supports Apache, et al). I found it more than adequate for our needs. It supports per-page ACLs, groups of users, and has a nice GUI editor for page edits. You'll need a machine with Python 2.3 or 2.4. On RHEL4 machines, this should be the default, but on other machines you should check /usr/local/public/. I've built Python 2.4 for RH9 in /net/hp96/davidhi/python-2.4.2-RH9. Grab the "desktop version" MoinMoin and unpack it somewhere (get it at http://moinmoin.wikiwikiweb.de/DesktopEdition). You can run it by running "python moin.py" in the top-level directory. I run mine in a screen session on a rank-mounted CERCS machine. By default it binds to localhost:8080. To change this, make a file in the base dir called "wikiserverconfig.py" The contents of mine are as follows: from __main__ import DefaultConfig class Config(DefaultConfig): port = 7700 interface = "abc.cc.gatech.edu" Change 'interface' to the external hostname you'd like to bind to and port to the proper port. Edit "wikiconfig.py" and change sitename and interwikiname to the name of your project. Now, to set up access rights: Anyone can make an account by going to the "Login" link, filling out the four fields and clicking the "Create Profile" button, but we needed only users in a specific group to be able to edit and view materials. Also, by default anyone can admin or delete pages, etc. The following tells how I set up my access rights. If you want more lenient rights (e.g. everyone can view stuff but only specific users can edit), you'll have to tweak the settings I present here a bit. Also, everyone can always read the front page, so I created a link off of the front page where all of our materials reside. If you aren't worried about confidentiality, this isn't very important. First, make an administrator account and a user account for yourself. Then make a group for admins and for users. You could also make multiple user groups if you want a single wiki with multiple projects or different classes of users. You make a group simply by making a page for the group name (which should end in Group like OurGroup) and putting the member names in a bulleted list. Then you protect the group page's rights with an ACL (if the site defaults don't cover it). For example, on my site I created a page called AdminGroup and UserGroup. The raw contents of the AdminGroup page is the following: #acl AdminGroup:admin,read,write * AdminUser The raw contents of the UserGroup page is the following: #acl AdminGroup:admin,read,write UserGroup:read * AdminUser * DavidHilley * KishoreRamachandran * MattFlagg The group pages have explicit ACLs because the default site rights I have set up (see below) allow anyone in the UserGroup to edit pages, and I wouldn't want users to be able to make themselves admins or remove other users from the UserGroup. Edit "wikiconfig.py" and change the acl_rights_* stuff to: acl_rights_after = u"AdminGroup:admin,read,write,delete,revert" acl_rights_before = u"" acl_rights_default = u"UserGroup:read,write All:" This gives AdminGroup members rights to do everything and UserGroup members rights to read and write by default on every page. Users outside of the UserGroup and AdminGroup cannot view pages by default. The local page ACLs replace the default and can override the before part. The "after" perms are applied after the local ACLs, so AdminGroup members always have rights even if the page ACL doesn't specify. Now anyone can make an account, but only members I put in the UserGroup can actually edit pages or view anything that is created without an ACL that allows them read access (and searches don't leak information).