Remote Greenstone

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

Notes

General

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.

Authentication

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.

Collection locking

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.

E-mail notifications

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.

Missing functionality

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.

Debugging gliserver.pl

The commands that gliserver.pl takes are:

CommandOther ArgumentsOnly 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=get-default-servlet-path 3 /library
cmd=get-site-names 3 gateway—–localsite—–
cmd=user-validationun=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).

Debugging client-gli

Client-gli downloads collection skeletons from the remote server and these are stored in

C:\Users\<Your-Windows-Username>\AppData\Roaming\Greenstone\GLI

on Windows. And on unix systems at:

<user-home-directory>/.gli

GLI configuration is stored in config.xml and client-gli configuration is stored in configRemote.xml

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.