home | blog

Aether is a Python CGI-script for managing weblogs ("blogs") and web-sites. It allows you to manage a site entirely from the web, like a wiki. I created it primarily to manage this site. You may also find it useful.

I have found that being able to update my web-site from any browser, anywhere, encourages me to keep my site up to date, and to fix typos and so-forth. Managing a site from the web also makes it easy for a group of people to collaboratively maintain it.

Aether is designed for use with Apache. It may work with other web-servers with minor alterations.


Read the manual for specifics, or look at these examples of page markup: this page, my blog, my default page layout.

To demonstrate how Aether can be extended, here's the extra code i've added for this site:

Jiří Baum offers these further extensions: random page, underline, comment, currently playing iRATE track, phase of the moon.

Still to do

Never to do


Aether is a single file:

Aether is released under the GPL.


Installing Aether should be easy. If not, it's a bug.

      <Files myaethersite>
      Options +ExecCgi
      SetHandler cgi-script

When first run, Aether will create two new directories in the same directory as you installed it in. One is for storing attached files, and is named "myaethersite-files". The other is for storing pages and is called "myaethersite-data". (the directory names are based on the name of the script, you may install multiple copies of Aether in one directory)

In the data directory, Aether will create a file called "". This contains the password for editing your pages. You can use the random password Aether selects, or edit the file to choose your own password.

Note that as Aether creates files, the directory it is running in must have the correct owner and permissions to allow this. This will generally only be a problem on a web-server you have configured and run yourself.

Aether as an ErrorDocument

Aether may be used as an Apache ErrorDocument. That is, instead of displaying a 404 Apache will invoke Aether. This allows you to overlay an Aether site over, say, an existing site written in straight HTML.

Put something like this in the ".htaccess" file:

    <Files aether>
    Options +ExecCgi
    SetHandler cgi-script
    BrowserMatch .* AETHER_ROOT=/url/of/this/directory

    Options -Indexes
    ErrorDocument 403 /url/of/aether
    ErrorDocument 404 /url/of/aether

(note: it would be more sensible to use "SetEnv AETHER_ROOT /usr/of/this/directory" instead of the BrowserMatch line, but BrowserMatch is more likely to be available on your web server)

To create a site with different passwords for different areas, or with an area with no password, use several copies of Aether as ErrorDocuments of different directories.