PyLETS CGI Frequently Asked Questions

Author: Richard Kay


1. Application and Platform questions

Q1.1. I downloaded it, why doesn't it install ?

A.

PyLETS is a webserver application. It isn't a standalone Windows type application, so it won't run or install like one.

Q1.2. Why is PyLETS a webserver application ?

A.

Standalone LETS accounting programs exist, but these don't handle account-related communications with account holders or allow members to input their own payments and look up each others' balances and account summaries on-line.

As a webserver application your account administrator and members can process payments and access their accounts using a web address, e.g. http://www.someplace_lets.org/accounts/ . They will be able to do this using any web browser from any computer with an Internet connection, whether it is a high-end mobile phone or running Windows, Macintosh, Linux or a cable Internet box on top of their telly etc.

Q1.3. This sounds great, but how do I install a webserver application ?

A.

If you have someone within your LETS group who understands better than you how to install and run a webserver and CGI software then ask them. If not, you might do better to to find your nearest Linux user group and recruit one of their members into your LETS group. If your LETS group offers goods and services a Linux user group member with suitable skills needs this shouldn't be too difficult.

Q1.4. What platform does PyLETS run on ?

A.

It runs on the Python 2 platform. This is the programming language PyLETS is written in. Python will need to be installed on the web server computer for this to work. Python is available comes preinstalled on Unix and Linux and is downloadable and installable for other operating systems, including Windows and Macintosh. You will also need a webserver which can handle CGI scripts, e.g. Apache. Python 3 is too new and big a change from Python 2 for PyLETS to have been ported yet, but this will be done when Python 3 support is more standard.

Q1.5. Which of these do you recommend ?

A.

You are likely to prefer using an existing web server in most cases. It seems unlikely that you would want to install a new server just to run PyLETS, but if you are in this position, Linux and Apache combine to provide a powerful and cooperative free as in speech software system which is excellent for running web servers.

If you have a web-hosting account, you may need to check with the providers as to whether you can run Python CGI programs. If they support CGI already, but not Python, ask them if they can install a recent version of the Python language for this purpose. If you are using a cheap or free web-hosting provider that doesn't support CGI applications, suitable hosting providers which support Python CGI facilities are available commercially for 60 US Dollars/year or less.


2. Installation questions

Q2.1. How do I secure the data from casual browsing ?

A.

The files used to store user data all end with the extension .pkl . Your configuration will need to make these accessible for reading and writing by the Python CGI programs and library files. However, you will need to avoid disclosing private data from being browsed through use of URLs in a web browser such as: http://www.someplace_lets.org/accounts/members.pkl .

All web server installations have different configuration requirements. If your webserver allows browsing of files with any extension, you may be able to achieve this by varying the permissions on files ending in .pkl (the extension used for the data files). Alternatively, if you are using Apache, and you don't want any other files ending in .pkl or .cfg to be browseable, the following addition to httpd.conf should do the trick:

<Files ~ "\.pkl$">
    Order allow,deny
    Deny from all
</Files>

<Files ~ "\.cfg$">
    Order allow,deny
    Deny from all
</Files>

Q2.1. How do I import data from previous version of PyLETS ?

A.

blank_addresses.py is intended for adding additional columns to records in members.pkl to enable full contact details to be included.

list_emails.py is intended for listing emails from members.pkl e.g. so you can import addresses into a mailing list management program e.g. GNU Mailman.

master_key.py is intended as a last resort method of setting the admin PIN if repeated login failures result in a denial of access.

pkltohtml.py is intended for general viewing of database tables by dumping these into HTML format.

add_limit_to_balances.py adds the limit column to balances.pkl , to enable debit limits to be handled. Initial default values of None for no automatic limit processing will be used.