Conflux Lite installation guide by Indrek Jarve Please send bug reports, suggestions and so on to the above address. Version 1.1.1 Contents: 1. General 2. Source install 3. Upgrading 1. General: Default system administrator Username: superuser Password: conflux 1. If you are running Python >= 2.2.3 or Debian testing's python (?), please re-enable Python's rexec module, since this is required by the PostgreSQL <= 7.3.3 plpython procedure language used in Conflux. Comment out line 183 -- raise RuntimeError, "This code is not secure in Python 2.2 and 2.3" -- by adding a # character in front of the line like -- # raise RuntimeError, "This code is not secure in Python 2.2 and 2.3" -- After this restart the apache2 server. Affected file: /usr/lib/python2.2/rexec.py 2. If you are using python < 2.2.3, you must do the following to override a bug in Python: Copy /var/www/html/conflux/Doc/sitecustomize.py to /usr/lib/python2.2/site-packages/ If you use any other character sets (as FALLBACK_ENCODING in _ConfUser.py or receive email in funky charsets), modify that file accordingly. Note: this does not appear to be a problem on debian (?) 3. Error notification configuration: If you want to see the tracebacks of errors in Conflux, change ERROR_SHOW_TB to 1 in _ConfUser.py If you also want to get e-mail notifications of such errors, set the ERROR_EMAIL_ADMIN variable to your e-mail address. Note that this will currently only work if ERROR_SHOW_TB is turned on. This setting is set to "collector@conflux.ee" by default to provide the developers with better feedback on issues and problems in the source code. If you feel that this is a violation of your privacy, please either disable the reports by setting ERROR_SHOW_TB to 0 or change the ERROR_EMAIL_ADMIN variable. NB! Since Conflux Lite currently does not have any difference between warning errors (The folder name contains illegal characters) and critical errors (This thing here broke in a really nasty way), all errors shown to user will be sent with e-mail if the setting is actived. This might change in a future version. 4. LDAP authentication Conflux Lite currently supports a very limited LDAP based authentication mode. Passwords can be checked against an existing LDAP server, but no local changes will be synced with LDAP. To configure LDAP authentication, change the following settings in _ConfUser.py: ENABLE_LDAP = 1 # 0 is disabled, authentication against the database LDAP_HOST = "localhost" # The LDAP server name LDAP_DC = ['zebra','zoo','com'] # The following list will create "dc=zebra,dc=zoo,dc=com" LDAP_OU = "People" NB! For LDAP authentication to work, all settings must be correctly filled out. If you turn ENABLE_LDAP on and have errors/missing data in the last 3 settings, you will effectively disable any logon to the Conflux Lite installation. LDAP authentication requires the python-ldap module from http://python-ldap.sourceforge.net/ 2. Source: Requirements: apache2 running in preforked mode postgresql >= 7.3 intarray support from postgresql-contrib the plpython procedure language for postgresql mod_python >= 3.0.1 python >= 2.2.2 (we strongly recommend 2.2.3 due the charset bug and a much better email module) psycopg (tested with psycopg >= 1.1.4) The source installation guide assumes an experienced user and thus does not explain the details on how to install the above packages. 1. Unpack the contents of conflux tarball somewhere under apache2 DocumentRoot 2. Modify lib/_ConfUser.py: DB_* variables: for connecting to the PostgreSQL database SMTPSERVER: for sending out mail BASE_URL: the path for conflux web interface, e.g. '/' or '/conflux/'. FILE_PATH: the location of file depositories. We suggest /var/lib/conflux/ with the following structure: /var/lib/conflux/ /var/lib/conflux/lib <- the lib folder from the package, it's securer here, but can also reside with the rest of the package under /var/lib/www or alternative path /var/lib/conflux/DOCBACKUP <- backups of deleted files /var/lib/conflux/DOCROOT <- file repository /var/lib/conflux/DOCROOT/System_organization <- folder for System organization, this is not autocreated, but is required. /var/lib/conflux/tmp <- folder for temporary files. The last four folders _must_ be writable to by the user running apache2. Note: all paths/urls must end with a trailing / 3. Create the database with the user you defined in _ConfUser.py 4. Load conflux/SQL/conflux_init.sql into that database as superuser psql conflux postgres < conflux/SQL/conflux_init.sql 5. Set up apache2: 5.1 make sure mod_python module is loaded 5.2 Create a directory section similar to below: DirectoryIndex index.py PythonPath "sys.path+['/var/lib/conflux/lib/']" AddHandler python-program .py PythonHandler _Publisher PythonDebug On The paths included in the Directory tag and PythonPath handler must be modified accordingly to where you unpacked the tar.gz archive and whether you decided to put lib/ under /var/lib/conflux. 6. Clean up If you decided taht the lib folder should be under /var/lib/conflux, move it there: mv /var/www/htdocs/conflux/lib /var/lib/conflux/lib/ Remove the SQL folder: rm -rf /var/www/htdocs/conflux/SQL 7. Restart apache and see if it works ;) 5. Upgrading To upgrade Conflux Lite, install the new debian/redhat package or replace the source code with the contents of the new tarball and restart apache2. Upgrading to 1.1.0rc1 or later from pre-1.1: Update the database schema by feeding conflux/SQL/conflux_schemaupdate-for-pre1.1.0rc1.sql Upgrading to 1.1.0rc2 or later from rc1: Update the database schema by feeding conflux/SQL/conflux_schemaupdate-for-pre1.1.0rc2.sql Upgrading to 1.1.0rc4 or later from rc2 or earlier: Update the database schema by feeding conflux/SQL/conflux_schemaupdate-for-pre1.1.0rc4.sql After the install go to the lib/ folder and run convert_categories.py: cd /lib/ python convert_categories.py This will move your old discussion threads from the organization-based schema to the category-based schema.