June 1, 2005

Lucane: Simple open source groupware

Author: Dmitri Popov

Need groupware that doesn't require tedious installation and configuration, and is ready for use in a matter of minutes? Lucane can be deployed in no time, and is so simple to use that you don't need to spend hours learning it. Lucane has a modular architecture and includes an impressive range of pre-made modules, including a multi-user calendar, an email client, instant messaging, a white board, forums, notes, shared folders, and an RSS reader. Users can easily add and remove modules to customise their groupware environment, and developers can create additional modules and plug them in Lucane.Unlike many other groupware applications, Lucane does not require the PHP/MySQL combination. It is written entirely in Java, and comes with all the necessary components. This means you can deploy Lucane on Windows, Linux, or Mac OS X without installing additional software. Lucane relies on a database back end, and by default it uses the supplied and preconfigured HSQLDB engine. However, the application also supports MySQL, PostgreSQL, and Microsoft SQL Server.

Getting started with Lucane

Installing and configuring Lucane is easy, especially compared to similar PHP/MySQL-based applications. Make sure you have the free Java Runtime Environment installed on your computer, or if you plan to use Lucane via a browser, you have to install the Java Development Kit instead.

If you run a Lucane server on Windows, you have to register the javac executable in the Path environment variable. To do this, right-click on My Computer, click on the Advanced tab, and press the Environment Variables button. Select Path from the list, press the Edit button, and add the path to the javac.exe file (for example, C:\Program Files\Java\jdk1.5.0_03\bin). Press OK to save the changes and leave the window. If you forget to register javac.exe and try to access the server using a browser, you will get the error message "Unable to compile class for JSP RequestURI=/index.jsp."

Installing Lucane on Windows is as simple as running the supplied installer. Things are not much more difficult on Linux and Mac OS X. Download the binary.tgz or.zip package and unpack it in the desired location.

If you are eager to try Lucane right away, launch the server (Start > Programs > lucane > Server on Windows, or server.sh on Linux/Mac OS X), and then the client ( Start > Programs > lucane > Client on Windows, or client.sh on Linux/Mac OS X). By default the client will try to connect to a server running on the same machine. When the client has established a connection to the server, you will see a login window.

If you want to connect to a Lucane server running on another machine, you have to edit the client-config.xml file stored in the client/etc folder. In the <server host="localhost" port="9115"/> line, replace localhost with the IP address of the server. Similarly, if you need to change the server's settings, you can do this by editing the server-config.xml file in the server/etc folder. A starter's guide provides a more detailed description of the configuration options.

Lucane includes two default accounts: guest and admin. The guest account is a good place to start if you want to explore Lucane's features. You can easily figure out how to use most of the supplied modules on your own, so let's take a closer look instead at how to configure and administer Lucane.

Start with logging in as administrator. The first thing you might want to do is to change your default password and turn Web access on. From the Applications menu, choose Administration > Administration (or press the Administration button), click on the Store tab, and select the admin user. Enter a new password into the Password field and press the Save button.

Interview: Vincent Fiack, Lucane founder

NewsForge: Why did you start to develop a groupware application?

Fiack: It was a school project in my third year of computer science studies, and I had to choose a project from a list of topics. The other topics were boring: a simple Web quiz application, a school scheduler, a network analyzer.... None of them sounded appealing to me.

NF: What was the main reason for choosing Java?

Fiack: When I chose this project, I already had a clear idea of the application's architecture: core and plugins, peer-to-peer between clients. I wanted to write the application in Python, because at the time I loved that language. However, the school project had to be done in a group of three students, and the others didn't want to learn Python. So we settled for Java.

NF: What was the most difficult task during the development?

Fiack: Keeping motivated. After school, I published the then-current source code, and then stopped working on it. There were too many things to do before a "real" release. For example, internationalization meant changing all strings in an already big application that wasn't designed for that, as well as changing the protocol to enable sending complete objects. Being a single developer, I still have the motivation problem, but regular contributions and satisfied users help to keep me going.

NF: When will the next version be released?

Fiack: When it's ready! Seriously, it depends on several things. If someone finds a major bug, or if the translations are changed, then I may publish a bug fix release. If no major bugs are found, the next release will be published when I have a contact manager module ready. I haven't yet started to work on it though; real life is taking most of my free time at this moment.

NF: What new features do you plan for future versions of Lucane?

Fiack: There's a road map available. The next thing to add is a contact manager/address book. Personally, I don't need it, but many users asked for it. After that, I hope to work on network stuff, to allow users to access each other's data. We already have the "classic" Java client and Web access. I plan to integrate an LDAP server to export user data and contacts, and an FTP or WebDAV server for shared folders -- that kind of thingf.

Turning on Web access on allows users to access Lucane via a browser. Choose Application > Administration > WebConnector (or press the WebConnector button) and tick the Enable HTTP check button. If you want to enable SSL access, then tick the Enable SSL check box as well and enter the Keystore and Key passwords. Press the Apply button to save the changes and close the window. Launch your browser and point it to http://localhost:8080. If everything works properly, you'll see Lucane's Web interface.

Managing users and groups

All user and group management functions in Lucane are grouped under the Store tab of the Administration window. Creating a new user couldn't be easier. Select Users from the drop-down list and press the New button. Give the new user a name and press OK. Assign the user a password and fill out the relevant fields.

Next, set a so-called startup plugin, or the module that the user will be dropped into at startup. While you can choose whichever startup plugin you want, the Quick Launch plugin is a good choice. Simply select the org.lucane.applications.quicklaunch item from the Startup Plugin list. Press Save when you are finished.

By default Lucane also contains the shutdown user and group. Shutdown is a special user with the shutdown plugin as its startup plugin, so when this user logs on, the plugin activates and halts the server. It can be used to stop the server from the command line. If you remove the shutdown user and group, you'll have to shut down the server manually, either by using the shutdown application (as admin) or by stopping Java.

To create a new group, select Groups from the drop-down list and press the new button. Give the group a name and press OK. To add users to the created group use the Add button in the User section. You can then add plugins and services that will be available for this group. Use the Add button to add plugins and their respective services. Press Save when finished.

If you know a bit about the client/server model, you might already have figured out the difference between plugins and services. Plugins are loaded on the client's side, while services run on the server. To work properly, most plugins requires a service. For example, the Calendar plugin without a Calendar service will display a calendar application in the main menu, but it will fail during the startup when loading events, as the server will reply that the service is not available. Some plugins, however, don't require a service (chat, for instance). Additionally, some services can be used by several plugins.

Finally, you can specify parent and child groups. This can come in handy when you want to set up rights inheritance. For example, if you set the Admins as the parent group of Users, it will give the group's users access to the plugins and services of the Admins group.

Using Lucane with MySQL

Connecting Lucane to a database system is easy. If you run, for example, MySQL on the same machine as Lucane, all you have to do is to uncomment the block that comes after the <!-- MySQL --> line in the server-config.xml file. Replace the login and password values, and you are done. It's not even necessary to create tables. Lucane will detect that services are not installed and will create the necessary tables and populate them with the initial data.

There are quite a few groupware packages available, but when it comes to ease of use and flexibility, Lucane is hard to beat. It is an excellent choice for companies and workgroups that want to deploy flexible groupware without spending vast amounts of time and money.

Dmitri Popov is a freelance writer whose articles have appeared in Russian, British, and Danish computer magazines.


  • Enterprise Applications
Click Here!