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, preform ../BasicInstallation

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

  3. Copy moin.py to your wiki directory, where your wikiconfig.py is

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

  5. Run moin.py

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

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

Configuring moin.py

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')

Anchor(options)

Config class options

Option

Default

Comment

name

'moin'

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

docs

'/usr/share/moin/wiki/htdocs'

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'.

user

'www-data'

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

group

'www-data'

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

port

8000

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

interface

'localhost'

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

logPath

name + '.log'

Log file. Default is commented.

serverClass

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

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

threadLimit

10

How many threads to create. (!) New in 1.3.5

requestQueueSize

50

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

properties

 {} 

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

Configuring wikiconfig.py

The sample config file should be just fine.

Option

Default

Comment

url_prefix

'/wiki'

You should not change this, or images and css file will not be available to the wiki!

Starting the server

Run moin.py from the command line:

$ ./moin.py
Serving on localhost:8000

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

On Windows, you can double click moin.py 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 moin.py as root:

$ sudo moin.py
Password:
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 moin.py as a background process:

  1. Have a working moin.py 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 moin.py in the top of the script:

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