Foswiki on a USB stick (updated)

FoswikiOnAStick v0.1 (running foswiki 1.0.6)

Foswiki on USB (4-Sept-2009 v0.3)

I was asked on Friday night if I could make a demo foswiki USB system, and given that its high time we did one, I started to look into it. Initially I thought this would be a great oportunity to try out the HTTPEngine work Gilmar has been doing, but we’re not quite there yet. And so, I started a quick perusal of the existing WebServer on a Stick systems. Ideally, I want to use Strawberry perl, apache, and have the server and a browser start up automatically when the USB stick is inserted into the computer.

  • MicroApache
  • Server2Go

MicroApache was the first thing i looked at, as the contact pointed out DokuWikiOnAStick, but that server doesn’t seem to have source, nor is the upstream web site there (last release seems to be 2007, so too old for Strawberry perl too) Server2Go looks nice, but as its not really free in the debian sense, I’ll pass on that unless nothing else works. XAMPP unzipped it, foswiki and did some minor configurations. unziped, removed everything except apache, added strawberry perl, and wrote a systray icon and menu system for you to control it with. TADA! FoswikiOnAStick v0.1v0.3 (running foswiki 1.0.6). please try it out.

FoswikiOnaStick syste tray menu
FoswikiOnaStick system tray menu

Instructions for use:

  1. download the Foswiki on a Stick zip file
  2. unzip it to the root of your USB key (or any drive)
  3. start the systray app, web server and browser using start_foswiki.bat (goto http://localhost/ if the browser doesn’t start) (unblock / allow apache to get through the windows firewall)

before ejecting the usb key, you need to stop the webserver by running stop_foswiki.bat yes, thats all. Please report any issues or observations to me –

  • the web server runs at the standard port 80, so if there is already a web server running it will fail
  • when the web server starts, it will probably be blocked by Windows firewall – every time I’ve tested, a dialog pops up, and allows you to unblock it.
  • ….


I have made no attempt (yet) to reduce the accesses to the disk – so it may use up all the blue smoke in your usbkey, cause your bits to turn green, or one of many other unforseen side effects which may or may not appear amusing if they happen to someone else. I’ve tested this on Windows7rc, Windows Vista, Windows2003server, and Windows XP – if it works for you, excellent :).

Debian TWiki repository now with 212 TWiki Plugins, Contribs, Skins and more.

I’ve just updated the Experimental TWiki and Plugins repository. It now contains TWiki 4.2.0 and 212 Plugins, Contribs and Skins that you can simply apt-get install

To use them, add the following 2 lines to your /etc/apt/sources.list

deb experimental main contrib
deb-src experimental main contrib

then type

apt-get update

to update the available packages.

you can now see all 212 packages with apt-cache search twiki-

and install (assuming you don’t have twiki installed yet)

apt-get install apache2 twiki

and TWiki Contrib installation is as easy as

apt-get install twiki-bugscontrib

You will still need to use configure to enable Plugins.

Please report your experiences to me – bugs, gripes, you name it – its a work in progress. and I need your help!

TWiki 4.2.0 OpenIDUserContrib Consumer released.

I have just uploaded the OpenIDUserContrib for TWiki 4.2.0. It adds OpenID login and 1.1 Attribute functionalty to TWiki.

Currently, it disables Registration, and limits authentication to OpenID users.

It has the advantage over the OpenIDAuth apache module, that it automatically requests the User’s OpenId 1.1 attributes like Name, Email address directly from their OpenID identity.

While it trusts the user’s choice of ‘FullName’ registration attribute when displaying who made changes to topics, the TWiki topic source
actually stores the authenticating OpenID URI, thus their user details will be updated from the authentication server next time they log in.

Note that TWiki Topic based Groups are not yet implemented using this Mapper.

Future directions

  • add mixing of UserMappers to allow OpenID and ‘normal’ TWiki auth
  • turn TWiki into an OpenID identity server
  • add Safe Group definition system
  • add OpenId to TWiki’s registration process (would require openid auth first, then prefill registration details from any available attributes
    • This will require re-writing of TWiki’s inbuilt registration system
  • move the list of Known users and their mapping information from data/OpenIdUsers.txt to somewhere more scalable. (perhaps DBI)
    • combine the info TWiki uses persistently with the Session and other caching info OpenID11? uses

Net::OpenID11 (based on Net::JanRain::OpenID)

To make this work, I fixed the Perl bugs I found in Net::JanRain::OpenID, and renamed the resulting modules under Net::openID11 (as it is not OpenID2.0). I expect to upload these packages to CPAN some time soon.

If you want to take a look at the code – goto my Subversion repository