Table of Contents
Remote Greenstone involves using a version of GLI locally to edit collections on a remote Greenstone server, thus allowing users to collaborate on collections (at different times), and without a local Greenstone installation.
Client GLI vs applet - now deprecated.
Setting up Remote Greenstone Functionality
There can be a lot of data transferred between the client and the server. This can make using the client impractical if you don't have a high speed connection between it and the server.
The existing Greenstone user account system is used for authentication and the Administration pages (linked from your Greenstone library homepage) are used for adding, editing and removing users.
Groups are used to control the actions that users are allowed to perform on collections. The possible group settings are:
- all-collections-editor: Users in this group can create new collections and edit all collections.
- personal-collections-editor: Users in this group can create and edit "personal" collections. Personal collections have the user's username at the start of the internal collection name, and are created when the "this is a personal collection" option is ticked in the GLI "New Collection" dialog.
- <collection-name>-collection-editor: Users in this group can create and edit the "<collection-name>" collection.
For example, a user who needs to create and edit their own collections, and collaborate with others on a shared "papers" collection, should be in the "personal-collections-editor", and "papers-collection-editor" groups.
Each collection may only be open by one person at a time, to prevent synchronization problems. When a request is sent to the server to perform an action on a collection, the server will check for a gli.lck file in the collection directory. This file contains the username of the person who has the collection locked. When the collection is closed, this lock file is deleted.
If the collection is locked by someone other than the person making the request, the action fails. This is reported to the user on the client side, and this user is given the option of "stealing" the lock. Generally this is not recommended, since work may be lost if multiple users are editing a collection at one time. Stealing the lock should only be done in the case where the GLI has exited abnormally and the lock file was not deleted, and only after consulting with the user who has the collection locked.
The server can be configured to e-mail the system administrator whenever a collection finishes building. To enable this, edit the gliserver.pl file (in cgi-bin for Greenstone2; in web/WEB-INF/cgi for Greenstone 3) and set "$mail_enabled" to "1", and "$mail_to_address", "$mail_from_address", and "$mail_smtp_server" appropriately.
There are a few items of functionality that are available in the standalone GLI but not in the client/applet version. These are:
- The Download pane. If you are using Client GLI within a local Greenstone to talk to a remote server, then the Download pane will be available (and downloading will happen locally). Standalone GLI will not have downloading available.
- The File → Write CD/DVD Image… menu item
- The File → Export… menu item
- The Replace option when right-clicking on a file or folder in the collection tree
This functionality may be added in the future.
The commands that gliserver.pl takes are:
|Command||Other Arguments||Only GSx?||Output|
|cmd=check-installation||blah… Installation OK!|
|cmd=greenstone-server-version||Greenstone server version is: 3|
|cmd=get-library-url-suffix||Greenstone library URL suffix is: /greenstone3|
|cmd=user-validation||un=username&pw=password||3||administrator,all-collections-editor: the list of groups associated with that user. OR "Authentication failed: error message"|
gliserver.pl can be found in web/WEB-INF/cgi on the server. Set $debugging_enabled to 1 to prevent it from deleting uploaded zip files on the server (so you can investigate them).
Client-gli downloads collection skeletons from the remote server and these are stored in
on Windows. And on unix systems at:
GLI configuration is stored in
config.xml and client-gli configuration is stored in
If you have used client-gli to talk to more than one server and some settings are going wrong, between connections, then shut down client-gli, delete configRemote.xml and restart client-gli.