Search This Blog

Thursday, July 15, 2010

Atlassian Stack: Crowd

I finally got off my lazy butt and shelled out a couple dollars and purchased starter licenses for the entire Atlassian stack.  I've been a user of a few of their components for a few months now and liked what I've seen so far.  I'm of the opinion that most of the power comes when everything is fully integrated.  I'm always writing Java programs, mostly to learn new frameworks, but have come up with an idea for something on a larger scale.  I'm thinking I can use the Atlassian tools to help guide me through the specification and development process.  I'll blog my journey from installation to day-to-day use.  Wish me luck.

I've used the free, personal-use licenses that Atlassian used to provide and always ran into a problem with their licensing mechanism: it is tied to a machine.  If I wiped my laptop to install the latest version of Ubuntu, I would have to contact Atlassian in order to get a new key.  Hoping to avoid that pain, as well as providing a "time machine" I'll be installing the stack into a virtual Ubuntu server machine based on Virtual Box.  Here are the basic steps I've used to get started:

  1. created a 20 GB Virtual Box VM based on Ubuntu 10.04 Server edition
  2. added the Webmin repository and installed Webmin.  The box will be headless and I'll need a tool to help me manage the box remotely.
  3. updated the box so it is patched to current levels
  4. downloaded and installed the current Sun Java 6 JDK taking care to export both JAVA_HOME and JDK_HOME in the /etc/environment script.  In that script, I also appended the path to point to the JDK bin directory.
  5. installed Virtual Box Guest Additions using these instructions 
  6. using Webmin, installed mysql-server and mysql-client  (I cheated and looked ahead at the installation directions and knew that a database was needed)
 That gives me a basic Java enabled machine to work with.  The plan is to take a snapshot prior to the installation of new server giving me the chance to rollback in case something really goes wrong.

Crowd is a single-signon solution and I figured it makes sense to be the first service to install.  The documentation says that deploying their applications into a single Apache Tomcat instance is not supported so I'll use their standalone versions instead.


  1. download and unzip Crowd.  I placed mine in /opt
  2. created /opt/crowd-home and edited /opt/crowd/crowd-webapp/WEB-INF/classes/crowd-init.properties to point to it
  3. using Webmin, I created a MySQL user named crowduser and gave the account all db rights
  4. using Webmin, I created the Crowd database, named crowd, taking care to specify UTF-8 as the character encoding
  5. changed the isolation level on MySQL: sudo vi /etc/mysql/my.cnf and added transaction-isolation = READ-COMMITTED  into the [mysqld] section
  6. using Webmin, restarted MySQL so the setting would take affect/li>
  7. download the JDBC driver and copy the JAR file to /opt/crowd/apache-tomcat/lib
  8. start crowd via start_crowd.sh
  9. connected to Crowd via http://localhost:8095/crowd
  10. followed the steps in the setup wizard
That was it.  I have no idea how to set up the application but a quick glance at the admin screens makes it look at though adding users and roles will be pretty simple.

    1 comment:

    1. Thanks for sharing these. It’s always useful to get pointers to the good blogs out there. You might also be interested to know more about our company - Parana Impact, which is one of the leading database marketing, data intelligence and digital marketing service provider.Atlassian Users Email List
      Suitable to small scale to large scale companies which will focus on driving more revenue and increase profitability.

      ReplyDelete