witten
/
luminotes
Archived
1
0
Fork 0
This repository has been archived on 2023-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
luminotes/INSTALL

122 lines
4.0 KiB
Plaintext
Raw Normal View History

To use Luminotes, please see the included README file instead of this INSTALL
file. This file contains details about installing the Luminotes server, which
you shouldn't need if you only want to make a wiki.
First, install the prerequisites:
* Python 2.5
* CherryPy 2.2
* simplejson 1.3
In Debian GNU/Linux, you can issue the following command to install these
packages:
apt-get install python2.5 python-cherrypy python-simplejson
development mode
----------------
Running the Luminotes server in development mode is convenient for testing out
changes, because it uses CherryPy's built-in web server with auto-reload
enabled, so the server will automatically reload any modified source files as
soon as they're modified.
To start the server in development mode, run:
python2.5 luminotes.py -d
Connect to the following URL in a web browser running on the same machine:
http://localhost:8081/
production mode
---------------
Production mode is intended for a live production web site, so you can skip
this section entirely if you don't care about running such a site. Production
mode doesn't support auto-reload, and logging goes to file (luminotes.log)
instead of the console, but performance should be better than in development
mode.
First you'll need to configure your web server to forward requests for
non-static pages to CherryPy. These instructions are for Apache, but in
theory, Luminotes should work with just about any web server.
In your Apache configuration file, enable mod_rewrite and mod_proxy, then add
the following rewrite rules to the settings for your VirtualHost:
RewriteEngine on
RewriteRule ^/favicon.ico /path/to/luminotes/static/images/favicon.ico [L]
RewriteRule ^/static/(.*) /path/to/luminotes/static/$1 [L]
RewriteRule ^(.*) http://127.0.0.1:8081$1 [P]
You should change the paths in the rules above to point to wherever Luminotes
happens to be installed. These rules cause Apache to serve static files
itself, while passing through requests for dynamic pages to the CherryPy web
server running locally.
2007-09-02 02:33:46 +00:00
Optionally, you can also enable Apache's mod_expires module and include the
following configuration along with the above rules:
ExpiresActive On
ExpiresDefault "A600"
This will tell clients not to request static pages more frequently than every
ten minutes (unless the user forces a reload).
If you want to use SSL, procure and install an SSL cert for use with Apache.
Add the above mod_rewrite rules to the settings for your SSL-enabled
VirtualHost, but change the IP in the last rule from 127.0.0.1 to 127.0.0.2.
This hack allows the Luminotes server to distinguish between SSL and non-SSL
requests by looking at the proxy IP. Without this, Luminotes would have no way
of knowing whether a particular request was encrypted when received by Apache.
(There are ways to do this in a less hacky manner with Apache 2, but not
Apache 1.)
To configure the Luminotes server for SSL support, edit config/Common.py and
change the values of luminotes.http_url and luminotes.https_url based on the
domain you're using. For instance:
"luminotes.http_url": "http://luminotes.com",
"luminotes.https_url": "https://luminotes.com",
Then to actually start the production mode server, run:
python2.5 luminotes.py
You should be able to connect to the site at whatever domain you've configured
Apache to serve.
Python unit tests
-----------------
If you're interested in running unit tests of the server, install:
* nose 0.9.0
In Debian GNU/Linux, you can issue the following command to install this
package:
apt-get install python-nose
Then you can run unit tests by running:
nosetests
JavaScript unit tests
---------------------
JsUnit is included with Luminotes, so to kick off tests of the client-side
JavaScript code, simply run:
python2.5 static/js/test/run_tests.py
The run_tests.py script runs the tests inside browser windows and presumes you
have both Firefox and Internet Explorer 6 installed. Edit run_tests.py if you
need to specify different paths to the browser binaries or want to test with
additional browsers.