Medusa Installation. --------------------------------------------------------------------------- Medusa is distributed as Python source code. Before using Medusa, you will need to install Python on your machine. The Python interpreter, source, documentation, etc... may be obtained from http://www.python.org/ Versions for many different operating systems are available, including Unix, 32-bit Windows (Win95 & NT), Macintosh, VMS, etc... Medusa has been tested on Unix and Windows, though it may very well work on other operating systems. You don't need to learn Python in order to use Medusa. However, if you are interested in extending Medusa, you should spend the hour or so that it will take you to go through the Python Tutorial: http://www.python.org/doc/tut/ Python is remarkably easy to learn, and I guarantee that it will be worth your while. After only about thirty minutes, you should know enough about Python to be able to start customizing and extending Medusa. --------------------------------------------------------------------------- Once you have installed Python, you are ready to configure Medusa. Medusa does not use configuration files per se, or even command-line arguments. It is configured via a 'startup script', written in Python. A sample is provided in 'demo/start_medusa.py'. You should make a copy of this. The sample startup script is heavily commented. Many (though not all) of Medusa's features are made available in the startup script. You may modify this script by commenting out portions, adding or changing parameters, etc... Here is a section from the front of 'demo/start_medusa.py' | if len(sys.argv) > 1: | # process a few convenient arguments | [HOSTNAME, IP_ADDRESS, PUBLISHING_ROOT] = sys.argv[1:] | else: | HOSTNAME = 'www.nightmare.com' | # This is the IP address of the network interface you want | # your servers to be visible from. This can be changed to '' | # to listen on all interfaces. | IP_ADDRESS = '205.160.176.5' | | # Root of the http and ftp server's published filesystems. | PUBLISHING_ROOT = '/home/www' | | HTTP_PORT = 8080 # The standard port is 80 | FTP_PORT = 8021 # The standard port is 21 | CHAT_PORT = 8888 | MONITOR_PORT = 9999 If you are familiar with the process of configuring a web or ftp server, then these parameters should be fairly obvious: You will need to change the hostname, IP address, and port numbers for the server that you wish to run. --------------------------------------------------------------------------- A Medusa configuration does not need to be this complex - demo/start_medusa.py is bloated somewhat by its attempt to include most of the available features. Another example startup script, demo/publish.py, is also available for you to look at. --------------------------------------------------------------------------- Once you have made your own startup script, you may simply invoke the Python interpreter on it: [unix] $ python start_medusa.py & [win32] d:\medusa\> start python start_medusa.py Medusa (V3.8) started at Sat Jan 24 01:43:21 1998 Hostname: ziggurat.nightmare.com Port:8080 FTP server started at Sat Jan 24 01:43:21 1998 Authorizer: Hostname: ziggurat.nightmare.com Port: 21 192.168.200.40:1450 - - [24/Jan/1998:07:43:23 -0500] "GET /status HTTP/1.0" 200 1638 192.168.200.40:1451 - - [24/Jan/1998:07:43:23 -0500] "GET /status/medusa.gif HTTP/1.0" 200 1084 --------------------------------------------------------------------------- Documentation for specific Medusa servers is somewhat lacking, mostly because development continues to move rapidly. The best place to go to understand Medusa and how it works is to dive into the source code. Many of the more interesting features, especially the latest, are described only in the source code. Some notes on data flow in Medusa are available in 'docs/data_flow.html' I encourage you to examine and experiment with Medusa. You may develop your own extensions, handlers, etc... I appreciate feedback from users and developers on desired features, and of course descriptions of your most splendid hacks. Medusa's design is somewhat novel compared to most other network servers. In fact, the asynchronous i/o capability seems to have attracted the majority of paying customers, who are often more interested in harnessing the i/o framework than the actual web and ftp servers. -Sam Rushing rushing@nightmare.com Nightmare Software, January 1998