Working On wdLite

03 Feb 2009 00:54

A few days ago I started working on wdLite — a lite version of Wikidot.

The primary aim of this project is to make installation dead simple and server requirements really small.

Server requirements

wdLite should be installable on:

  • Apache with PHP5 (no safe mode or other limitations) and PostgreSQL on Linux boxes

PHP and PostgreSQL should be already configured to work with each other. You should have a PostgreSQL database and "user/password/database"-based access to it. Wikidot will create tables, but won't create a database. You should either create it as root or have root created it for you before (this process might be automatic on webhosting services with PHP/PostgreSQL).

This configuration should include a whole bunch of virtual hosting providers.

Installation

The installation process should be no harder than this:

  • Get a zip or checkout the newest version from repository
  • Upload the directory to the server
  • Adjust directory permissions
  • Go to install.php script with your browser
  • Supply mail and PostgreSQL credentials
  • Choose your wiki name and create users
  • Enjoy your new wiki

What are the differences between "full" Wikidot installation and wdLite

Limitations

  • only one wiki
  • no page revision diffs
  • more limited page size
  • lower security (especially for IE users)
  • works only with Apache
  • some features disabled or non-working
  • memcached disabled
  • karma disabled
  • notifications disabled

Better than full version, because

  • works with Apache
  • works on any HTTP port (not only 80)
  • works within any directory (also in user directory accessible like http://myserver.com/~quake/something/really/deep/wikidot)
  • easier installation with a web interface
  • no root-access needed
  • works well with GMail to send mails from the service
  • easily installable on Ubuntu
  • the easiest method to start developing with Wikidot
  • no need to manually compile additional software

Current work progress

I'm about to pre-release this software, to let you test it.

I have to:

  • create a list of things that need to work before a final 1.0 release.
  • redirect / to /?/
  • create install.php

Things that work already:

  • logging in/out
  • displaying pages
  • editing pages
  • saving pages
  • some basic modules
  • uploading and displaying files
  • navigation (links are rewritten from absolute to relative)

How does it work

The wdLite is based on Wikidot OpenSource. It contains wikidot, index.php and a bunch of helpers scripts. The index.php file is a hacky PHP script that

  • converts URL-s like http://some.server.com/some/url/?/front:page to http://www.some.server.com/front:page
  • tricks Wikidot software to think that the Wikidot domain is some.server.com and the main wiki is www.some.server.com
  • sets a bunch of system variables Wikidot relies on, like $_SERVER['REQUEST_URI'], $_SERVER['QUERY_STRING']
  • runs a proper one from Wikidot scripts
  • … or serves (more like redirects to) a static file
  • catches the script output
  • runs some transformation on caught output (like converting the links from http://www.some-server.com/some:other-page to ?/some:other-page)
  • sends the data back to browser

WARNING, ACHTUNG
The script is more a dirty hack than a version of Wikidot, but this is intentional. We don't want to mantain to many versions of Wikidot. Having this dirty script "only using without modyfing" Wikidot software makes it quite independent from changes in Wikidot. This means the same wdLite script will work for a newer version of Wikidot (=less maintaining work).
WARNING, ACHTUNG

Previous post: Wikidot API

Next post: wdLite Installer


More posts on this topic

Comments

Add a New Comment
or Sign in as Wikidot user
(will not be published)
- +
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License