Installing and configuring standalone server

See also: HelpOnConfiguration/IntegratingWithApache

The standalone server is especially made for local wikis because it does not need a web server installed. Only Python and Moin are necessary!

To install and run the standalone server:

  1. If MoinMoin is not installed yet, perform ../BasicInstallation

  2. Create a wiki instance as described in ../WikiInstanceCreation

  3. Copy to your wiki directory, where your is

  4. If you installed with --prefix option, you must edit and set docs to the correct path.

  5. Run

  6. Access your wiki at http://localhost:8000/

On most cases, the default settings will be just fine. You may want to edit and change some of the options, as described in the next section.


System path configuration

If you did a standard install, and you are not a developer, you probably want to skip this section. If not, you might want to add the path to moin and config file, like that:

import sys
sys.path.insert(0, '/path/to/moin')
sys.path.insert(0, '/path/to/wikiconfig')

Config class options






Server name, used by default for log and pid files. (!) New in 1.5



Path to moin shared files. If you used --prefix install, the default path will not work, and you must set the path to 'PREFIX/share/moin/wiki/htdocs'.



If you run as root, the server will run with as this user



If you run as root, the server will run with as this group



Port to serve. To serve privileged port under 1024 you will have to run as root



The interface the server will listen to. The default will listen only to localhost. Set to '' to listen to all.


name + '.log'

Log file. Default is commented.


'ThreadPoolServer', 'ThreadingServer', 'ForkingServer', 'SimpleServer', 'SecureThreadPoolServer'

The server type to use, see the comments in the The default is 'ThreadPoolServer', which create a pool of threads and reuse them for new connections. (!) New in 1.3.5



How many threads to create.



The count of socket connection requests that are buffered by the operating system. (!) New in 1.3.5



allow overriding any request property by setting the value in this dict e.g properties = {'script_name': '/mywiki'}. (!) New in 1.5



If using the SecureThreadPoolServer, this must point to the server's private key (!) New in 1.6



If using the SecureThreadPoolServer, this must point to the server's certificate (!) New in 1.6

Using the secure standalone server

(!) New in 1.6

The standalone server supports SSL when using the SecureThreadPoolServer server class. The SSL support is provided by the TLSLite library. All wiki traffic is forced to SSL when using the SecureThreadPoolServer.

Two additional configuration options are required when using the SecureThreadPoolServer. First, ssl_privkey must point to the server's private key. Second, ssl_certificate must point to the server's certificate.

/!\ TLSLite does not support a password protected private key unless additional libraries are used. Consult the TLSLite webpage for more information.

Typically a certificate would be purchased from an certificate authority, such as Thawte ( However, since the suggested usage of the standalone server is for personal use, a self signed certificate may be appropriate. For more information on how to generate a server private key, and a self signed certificate, see the openssl HOWTO pages.

For example, to create the server's private key, run the following:

openssl genrsa -out privkey.pem 2048

To create a self signed certificate for the newly created private key, run the following:

openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095 then needs to be told about the generated files privkey.pem and cacert.pem. For the example above, the following lines would need to be added to

    ssl_privkey = "/secure/path/to/privkey.pem"
    ssl_certificate = "/secure/path/to/cacert.pem"

/!\ Using a self signed certificate will cause your browser to generate a warning that it cannot verify the identify of the wiki server. This is because the certificate was not signed by a recognized certificate authority (CA). In order to get rid of this warning, you must purchase a certificate from a CA.


The sample config file should be just fine.

The default value of url_prefix_static is hardcoded into the standalone server script, do not change it or it won't work!

Starting the server

Run from the command line:

$ ./
Serving on localhost:8000

Test your wiki at http://localhost:8000/

On Windows, you can double click to start the server. A new terminal window will be opened. Close the window or press Control + Pause to stop the server.

On Unix, interrupt the server with Control + C in order to shut it down.

Serving port 80 on Unix

On GNU/Linux, Mac OS X or other Posix like OS, you can serve the standard port 80 used for web serving, but you must run as root for this.

Set port to 80, and verify that user and group exists on your system. If not, set them to an existing user, meant for web serving. If needed, chown your wiki dir to this user and group.

Run as root:

$ sudo
Serving on localhost:8000
Running as uid/gid 70/70

Test your wiki at http://localhost/

Running as daemon

If run on Unix, you can run as a background process:

  1. Have a working as explained above

  2. Copy the file prefix/share/moin/server/moin to your wiki directory.

  3. Start moin server:

./moin start

To stop the server:

./moin stop

For more info run moin with no arguments.

If you want to start moin from a system startup script, you may need to add the path to in the top of the script:

# Add the path to directory 
import sys
sys.path.insert(0, '/path/to/moin')

KielTech: HelpOnInstalling/StandaloneServer (last modified 2008-06-07 14:31:56)