How to grow your own Wiki

Purpose: A cookbook approach to creating a Wiki of your own.

I'm sure this doesn't belong here, but it doesn't seem to belong anywhere else either. It took me two days of headbanging to figure out how to create a new wiki page in wikit. It turns out you are supposed to make a "pretend" link in an existing page (by surrounding it with square brackets), save, click on the resulting link and then edit the new page. Seems kind of boneheaded, but at least now I know. Hmmm...and even then, the original link stays as linked square brackets (instead of becoming a regular link) and clicking it brings me to a new edit thing every time.

How about some n00b docs for this thing?

OK, now I have a series of steps to create new page:

   1 Edit an existing page and put word W in square brackets.  W will be the title of the new page.
   2 Save the existing page.
   3 Click on the little blue brackets around W.  You will be brought to the edit page for W.
   4 Don't edit yet.  Click the link at the top (which says W).
   5 You will be brought to the W page, but the title isn't linked.
   6 Stop and restart wikit.
   7 Go back to the existing page and click the square bracket again to get to the edit page for W
   8 STILL do not edit the page, instead click the W link at the top (just like 4)
   9 You will be brought to the W page, but now the title is linked.
   10 Click edit on the W page and edit it how you want.
   11 If you go back to the existing page, now your square brackets have become a link.

This can't be what everyone else has to go through to create a new wikit wiki page. Or did I download an old buggy version? Where are the docs? Where can I download any version?

15jun04 jcw - Ouch. To get help on wikit, run it in a directory where there is no wikit.tkd and it'll create a fresh one with help pages (I see it does indeed not mention clearly how to create a new page). See How to create your own page. The problem with the title not being linked is new to me - how are you running wikit: tk/cgi/httpd/other?

The reason that adding pages is not totally obvious is deliberate, btw - it is a small hurdle to take so occasional visitors don't start creating pages all over the place. Then again, the way to add is now linked prominently on the new front page, at

15jun04 I'm running httpd. When I follow the recommended sequence, it all succeeds. But then if I go back to the original page (where I inserted the new reference) the link is still blue brackets which, if I click them, bring me to editing *another* new page with the same title (I know it's another page because my old text isn't there and the "URL number" is incremented). Just tested tk mode and it does the exact same thing. (Don't want to create junk on your server, but I should probably test this outside of my own sandbox. ThisIsMyVeryOwnLinkDPR Yeah, that worked. However when I did it here I got a "Page saved....$PAGENAME" message for several seconds and I don't see that against my copy of wikit. Maybe it's too fast or maybe that isn't happening.)

LV We used to see that problem a bit here, when the site cache wasn't updating itself quickly enough. Also, I still see this problem occasionally - the situation goes away when I re-edit a page, change a space into a space again, and resave the page.

MR: It'd be remiss to not mention other Wiki systems, that might be easier to get going in a particular environment... my ProjectForum and CourseForum systems are particularly easy in this regard.. no bias of course!

Note that logging goes to stdout (or is it stderr) so you should expect to redirect it if you want logs that you can monitor.

Also, the default wikit.kit content has some unfilled links (pages Starkit (10), Tclkit (11), Incr Tcl (12), Adding Help to Starkits (13)).

The wiki format can be highly addictive. Don't miss a chance to get acquainted with the Notebook App, a very good tool for one to keep their personal notes.

dlb: has anyone been successful in running the new (07-Nov-2000)VFS wikit via CGI ? -- if not, are there still older versions available ? I've been having a hell of a time getting wikit running as a cgi process , is there someone I can direct questions to ??

LV: Did you check the link above about Wikits and CGI? Did you put up a note on the Gripes about Wikit, or Wikit Problems, pages?

VPT: 17th Feb '02 - the current wikit.tkd runs as a cgi process (at least on Linux). I put the tclkit in /usr/bin since that was in the PATH in apache's environment (as displayed by the printenv cgi-bin script). I then put the wikit.tkd in the cgi-bin directory and set the permissions to rwx for the user apache runs as (I'm a lttle uncomfortable with having the write permission set but at least it only has the permissions of the apache user). Editing a page with Mozilla 0.9.8 fails with,

 [error] (26)Text file busy: exec of /var/www/cgi-bin/wikit.tkd failed

whilst editing with Netscape Communicator works. This failure mode has been reported before see wikit under CGI. Actually the edit succeeds although the browser reports an error. In any case it only fails if you are using Mozilla local to the server.

MDD: What would be really nice would be if someone would create a Starkit that combines tclhttpd and the wikit into one turnkey wiki server. Performance should be better, since you wouldn't have to use CGI.

11apr03 jcw - Yes, that would be cool, but it may need some work (either to make it properly keep state with repeated requests, or to make it work in a slave interp which gets re-inited on each access). Meanwhile, as of a month or so, code was added to wikit so it has its own simple-minded http server, courtesy of PS. I just looked, and see that for some reason it comes up in read-only mode, no idea why. Anyway, the command to make it work is:

    ./wikit.kit -httpd 8080

Or on Windows, I suppose you could do:

    tclkitsh wikit.kit -httpd 8080

Then you can access it as

May 10 2004: Jeff Smith : refering to jcw's comments regarding getting it to work under tclhttpd, the Session module in tclhttpd provides a session state array and a slave interpreter which can keep state for the life of the session. Check out [L1 ] for an example.

TV (jun 18 03) Easy to use 'personal' web services seem like a good idea to me, everyone dsl, energy friendly cheap server computers.. Beware that tclhttpd being a fine and interesting program has MAJOR security loopholes when you start it (at least the versions I saw) out_of_the_box, which may already take some work (CMcC NB: These loopholes were fixed in subsequent releases), though I can download and have a server running in 15 min I guess. I mean the upload option together with .tml gives you unlimited tcl power on the webserver machine with simple means, and on a non user restricted od like many ms windows versions, that means total control from all over the world is possible once you hook up to the internet. Not that most people would know how. Can be solved easily enough though, I'll see if I can make a neat page with a start-and-go tclhttpd install variation.

(Brent Welch For the record, I've never heard of tclhttpd granting "total control" of its host to anyone. If there is an exploit of the file upload feature, I'd like to know about it. And besides, you can create a minimal tclhttpd that doesn't have anything you might worry about.)

LES on August 2004: Just because someone never heard of an exploit doesn't mean it's not there. And that is a big problem with tclhttpd: it is not very popular, therefore not so exposed, i.e. tested as Apache, for example. Maybe any hacker can break into tclhttpd quite easily, but we don't see that happening simply because it is not popular enough and no hacker is bored enough to find exploits in it.

CMcC 20040820: The exploit mentioned by TV is a feature of a poorly configured tclhttpd. If you permit someone to upload a file into a directory which can be browsed then they can upload something which can be executed. The solution is: don't do that. This isn't even close to tclhttpd specific ... it is the sort of thing that would happen in apache if you permitted file uploads to cgi-bin ... but why on earth would you permit that?

2004-2-29 Brent Welch Here is a CGI script I've used to launch wikit:

 cd $here
 export WIKIT_CSS
 echo HTTP/1.0 200 ok
 exec /usr/pan/bin/tclkit $here/bin/wikit.kit $here/panasas.tkd

2005-4-04 Well , I am still wondering how to bring up my own wikit based wiki on the web ? I'd even like to try one at work as well. I guess its not easy and I need to do my homework first but surely we can get more information into this page. I have downloaded the wikit.kit from and it appears to be a small subset of's wiki. Anyone else interested in growing your own wiki ? Art Morel

LV I'm sorry you are having a problem. I know I have set up my own wikit.kit running under an apache server. Certainly the server had its share of problems; alas, I didn't do the server work, so I don't know the details of what had to happen. I just know that when we recently shifted to the latest apache, there were problems that the site maintainer had to figure out, dealing with permissions, etc. Other than that, I used the notes listed above to deal with my wikit.

Thanks for the support. Well I don't know how i overlooked it the first time but , on this page : it states "There's a public web interface to CVS based on CVSweb" At first glance this is a neat web access to the source code. So it looks like this is my starting point. Art Morel

Hi, I'm impressed with the easy of use of wikit and tclkit. But, I still don't know how to add code to wikit, I'd like for example some way to filter undesirable text (like spam or nasty language). BTW, very good work! One file and you go. About apache-wikit integration, I guess you can always run both, and make your webpage refer one to the other, using frames or whatever.

How to create and clean up a Wikit .tkd file