Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

Table of Contents

Introduction

This article takes you through a Confluence 3.5+ setup using the following software stack,

...

Warning

It is recommended that you finish reading the article before starting.

PostgreSQL

Confluence comes with its own embedded database called hsqldb. However, for real production use you should use a full fledged database like PostgreSQL.

Install PostgreSQL on Ubuntu

Install PostgreSQL6.0 PostgreSQL on Ubuntu.

Install Confluence

Core Package

Download the tar.gz install package and decompress it,

...

Code Block
languagebash
su - bhitch # log in as a staff user that can run sudo
cd /opt
# make a symbolic link which scripts and commands can run against
sudo ln -s ./confluence-3.5.7-std ./confluence

Manually Setup JDK

I use a manual Java setup with an instance of Java specifically for the application.

...

Code Block
languagebash
cd /home/serveradmin
sudo mv ./jdk1.6.0_16/ /opt/confluence/java # moves and renames the directory in one step

Configure Confluence to Use JDK

The downloaded Confluence package is powered by Tomcat. You can specify Tomcat use a specific java directory by modifying the Confluence confluence/bin/setenv.sh file and test with confluence/bin/version.sh as described at Running Tomcat with a specific JRE version.

Warning

This can be improved by moving "how to specify java for Tomcat" out of the Tomcat 6 setup instructions into a separate page and then using an "include" here.

Configure Confluence to Only Start and Stop with ServerAdmin

To prevent read errors and for security purposes we want Confluence to only run as serveradmin.

Modify /opt/confluence/bin/startup.sh and /opt/confluence/bin/shutdown.sh as instructed in "Only Allow serveradmin to Run Tomcat" at Portable Tomcat 6.x & Instances.

Configure Data Directory

Also we need to create the home directory,

...

Panel

# confluence.home=c:/confluence/data
confluence.home=/opt/confluence-data/

Configure PostgreSQL

Setup Database

These are the command line version of the instructions from Confluences wiki on setting up an external database.

...

Note

The name of the database is different than in the confluence documentation. Rather than the database name confluence, we use confluencedb to clearly designate a database.

Setup JDBC4 Driver

Note

As of Confluence 3.5.1 the PostgreSQL JDBC4 driver is now included. This section is still useful as a reference for future version mismatches.

...

Code Block
languagebash
su - serveradmin
wget http://jdbc.postgresql.org/download/postgresql-9.0-801.jdbc4.jar
rm /opt/confluence/confluence/WEB-INF/lib/postgresql-8.4-701.jdbc3.jar

Starting the Confluence Service

We will now start Confluence for the first time to initialize everything.

...

The intial user will be called "Server Admin" with user name serveradmin

Stopping the Service

There appears to be a problem with shutting down the Confluence server. According to Atlassian, this only happens on certain configuration and they are not able to determine yet why. I have personally experienced with every type of Virtualized Ubuntu system I have setup over the past few years.

...

Code Block
languagebash
kill 2364 # Note change 2364, to the process ID that you see on your screen.

Administrator Tasks

Warning

This section still needs to be written to take the user through setting up the base url, creating their first space, disabling automatic backup, how to do real backups and any other important activities.

Setup Confluence to Send Emails

Confluence can send email notifications for updates and also used to perform user setup and password resets.

...

  1. Disable automatic backup
  2. Setup Confluence to send emails
  3. Update Confluence plugins

Connect Apache to Confluence using Mod_JK

As this install of Confluence is powered by Tomcat we can front Confluence with the Apache Web Server.

Enable Tomcat AJP Connector

First we must enable the the Connector. In this example we will use the standard port 9009 in the Confluence Tomcat. Edit /opt/confluence/conf/server.xml.

...

Info

The UTF-8 is important as Confluence is developed to post using UTF-8.

Without this setting errors occur when working with attachments containing special characters. Further details are covered in the Bonsai Tomcat Connector article.

Select and Enable Context Path

Often you want to use the Apache Web Server to front more than one web application. In order to do this you want each web application to work within it's own context. This is pretty standard in most java applications. As such, we will pick a context path, in this case "wiki". As such the original url, http://localhost:8080/ changes to http://localhost:8080/wiki

...

This change does not take effect until the Confluence service stopped and started again. We will do that in the the next section.

Configure Apache Tomcat Connector

Warning

Still need to fill in clearer instructions on this topic.

Once port 8009 is enabled, mod_jk can be enabled by following the Apache Tomcat Connector instructions.

Change Base Url in Confluence

Warning

Put instructions here about changing the base url if fronted by Apache.

Verify Internationalization Features

Even if you do not plan to have the wiki work for multiple languages, you should verify the internationalization is working properly just to handle special characters.

Visit the http://<host address>:<port>/admin/encodingtest.action url on your system and follow the instructions.

Future Upgrade Notes

As part of planning for future upgrades here is a checklist to keep in mind.

Backup Your Data

It goes without saying, backup your data. With Cloud and Virtual computing take a snap shot. With manual backups you can use Confluence's built in backup utility (provide link to instructions) or manually make the following backups,

  • TAR the Confluece data home folder
  • Backup the database using your database management tools

Database Password

Make sure you know the admin password for your database.

Key Files

  • /opt/confluence/bin/setevn.sh
  • /opt/confluence/conf/server.xml
  • /opt/confluence/confluence/WEB-INF/classes/confluence-init.properties
  • /opt/confluence/bin/shutdown.sh
  • /opt/confluence/bin/startup.sh

...

  • /opt/confluence/confluence/WEB-INF/lib/postgresql-8.4-701.jdbc4.jar - add
  • /opt/confluence/confluence/WEB-INF/lib/postgresql-8.4-701.jdbc3.jar - remove

Special Modifications

You may choose to modify special files. For  example, I modify the footer,

  • /opt/confluence/confluence/decorators/includes/footer-content.vm

Plug-Ins

Also, keep a page listing any plug-ins you install. Upgrades generally do not require you to reinstall the plugins but they might be deprecated. After the upgrade is done, login as Administrator on Confluence and ensure plug-ins are up to date.

Disable Search Engine Indexing

In the case of a private site, you may not want Google or any other search engine to crawl your wiki. Even in the case of a password protected site this will still happen and take up unnecessary bandwidth, processing and bump up the amount of memory consumed by Confluence.

...

Code Block
User-agent: *
Disallow: /wiki/

System Profile

Using htop, initial setup without any spaces created is 396MB. The process itself uses  VIRT=913M and RES=338M.

...