roamd 0.2.7: README

by John Stracke

Table of Contents


roamd is a small, limited HTTP server that is just capable enough to support the roaming access feature of Netscape Communicator 4.5. This could be done with Apache, or another full-fledged Web server, but (a) that requires implementing extra methods (at least PUT), and (b) if you're using a full Web server, there may be security issues. In my case, my Web server is solely for my home LAN, and I didn't want to open up the firewall for it. Since roamd cannot be configured to give access to any files except your stored preferences, and since it is not extensible like a full Web server, I hope it is (or can become) safer than a full Web server.

Version history

Building roamd

To build roamd, edit the Makefile to pick the right platform. There are four platforms currently supported by the Makefile: Linux, Solaris, DigitalUnix, and FreeBSD. Find the right PLATFORM= line and uncomment it. Now run "make".

Pick a directory where roamd will keep its files (currently, its only files are the stored preferences). By default, this directory is /etc/roamd; this text will assume you're using the default. Create /etc/roamd; then create the directory /etc/roamd/users; then, for each user that you want to have preferences on the server, create the directory /etc/roamd/users/$LOGIN, where $LOGIN is the user's login name. (Users authenticate to the server with the same login name & password they would use to log in to the Unix system.)

Running roamd

To run roamd, just run its executable. If you want to specify a port other than the default (which is 7500), use the --port option; it takes one argument, which is either a port number or a TCP service name (see /etc/services). If the port number is 0, roamd will pick a free port (and print it out); this is mostly for experimental purposes, so that you can kill roamd and restart it quickly, without having to wait for existing connections to time out. If you want to specify a directory other than /etc/roamd, use the --configDir option. If you do not want roamd to fork a new process for each connection, use the --noFork option.

Using roamd

To set up a Communicator user to access roamd, go into Edit|Preferences and select Roaming Access. Turn on the Enable Roaming Access checkbox and specify a username in the User Name text box. Now click on Server Info, select the HTTP Server radio button, and give the URL. If your hostname is xyzzy, roamd is running on port 7500, and your username is francis, then the URL is http://xyzzy:7500/li/francis (the "/li/" is to partition the namespace in case a future version of roamd needs to support other functionality--silly as that would be).

Now you're set! You can set up user profiles like this on multiple machines; every time you quit out of one, it'll upload its preferences to roamd. (Note that this can lead to "lost write" problems if you run in more than location at once. This is a Communicator limitation...not that I'm sure there's a clean way to get around it; it'd be hard to merge the changes.)


$Revision: 1.17 $
$Author: francis $
$Date: 1999/03/21 01:53:45 $

$Log: readme.html,v $
Revision 1.17  1999/03/21 01:53:45  francis
Documenting 0.2.7

Revision 1.16  1999/01/11 16:29:07  francis
Documenting the 0.2.6b releaselet

Revision 1.15  1999/01/11 16:20:39  francis
Documenting the 0.2.6a releaselet

Revision 1.14  1998/12/17 20:07:54  francis
Disabling the debug in de64(), it being a security risk

Revision 1.13  1998/12/13 06:46:33  francis
Documenting improved platform support for 0.2.6

Revision 1.12  1998/12/13 06:38:20  francis
Documenting changes for 0.2.5

Revision 1.11  1998/12/11 16:33:44  francis
Updating for 0.2.4 release

Revision 1.10  1998/12/11 16:13:08  francis
Updating platform information

Revision 1.9  1998/12/09 05:12:25  francis
Documenting that it's been tested on FreeBSD.
Removing GNU-make-specific code from the Makefile; documenting that.
Renumbering as 0.2.3.

Revision 1.8  1998/12/09 04:52:41  francis
Adding documentation which I should have done for 0.2.1.  Releasing as 0.2.2

Revision 1.7  1998/12/09 04:33:50  francis
Labelling it 0.2.1

Revision 1.6  1998/12/06 19:48:53  francis
Labelling it version 0.2

Revision 1.5  1998/12/06 19:43:11  francis
Documenting that MOVE is now supported.

Revision 1.4  1998/12/05 01:13:31  francis
Fixing a missing end tag

Revision 1.3  1998/12/04 22:13:25  francis
Removing the duplicate h1

Revision 1.2  1998/12/04 22:03:21  francis
Adding license terms to the source files.
Adding tryCrypt and tryCrypt.o to the clean target.
Deleting tryCrypt from the repository.
Adding Index.html and license.html.  Linking to license.html from
readme.html.  A bit of cosmetic work in readme.html.

Revision 1.1  1998/12/04 21:38:25  francis
Adding the readme; adding parallel access and porting work to the todo list.