Confluence 6 15 0 AdminGuide
Confluence 6 15 0 AdminGuide
15
Confluence 6.15 Documentation 2
Contents
Confluence administrator's guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Getting Started as Confluence Administrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Manage Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Add and Invite Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Delete or Disable Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Restore Passwords To Recover Admin User Rights . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Edit User Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Change a Username . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Managing Site-Wide Permissions and Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Confluence Groups for Administrators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Adding or Removing Users in Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Global Permissions Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Setting Up Public Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Configuring User Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Configuring the Internal Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Connecting to an LDAP Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Configuring the LDAP Connection Pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Configuring an SSL Connection to Active Directory . . . . . . . . . . . . . . . . . . . . . . . . 50
Connecting to an Internal Directory with LDAP Authentication . . . . . . . . . . . . . . . . . . 60
Connecting to Crowd or Jira for User Management . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Reverting from Crowd or Jira applications to Internal User Management . . . . . . . 74
Managing Multiple Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Managing Nested Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Synchronizing Data from External Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Diagrams of Possible Configurations for User Management . . . . . . . . . . . . . . . . . . . . 86
User Management Limitations and Recommendations . . . . . . . . . . . . . . . . . . . . . . . . 92
Requesting Support for External User Management . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Disabling the Built-In User Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
SAML SSO for Confluence Data Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Managing System and Marketplace Apps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Writing User Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
User Macro Template Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Customizing your Confluence Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Changing the Look and Feel of Confluence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Customizing the Confluence Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Changing the Site Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Customizing Color Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Styling Confluence with CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Basic Styling Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Styling Fonts in Confluence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Working with Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Applying a Theme to a Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Creating a Theme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Customizing Site and Space Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Upgrading Customized Site and Space Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Working With Decorator Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Custom Decorator Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Customizing a Specific Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Customizing the Login Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Modify Confluence Interface Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Customizing Email Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Changing the Default Behavior and Content in Confluence . . . . . . . . . . . . . . . . . . . . . . . 132
Administering Site Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Importing Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Changing the Site Title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Choosing a Default Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 3
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 4
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 5
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 6
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 7
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 8
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 9
Even faster via /: Press / on your keyboard, then continue typing the action you want.
Notes about finding admin functions via search:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 10
After installing Confluence, you will perform the initial configuration via a web interface called the Confluence
Setup Wizard.Introducing the Confluence Administration Console: From this point onwards, many of the
admin functions are available from the Confluence Administration Console, which is part of the Confluence
web interface. If you have administrative permissions, you'll have access to the Confluence Administration
Console via your web browser, using the standard Confluence URL for your site.
To access the Confluence Administration Console:
1. Open your Confluence URL in your web browser.
2. Choose
Is this a new Confluence site? Here are some things to get started with:
Decide whether you want to allow public (anonymous) access to your site.See Setting Up Public
Access.
Add a space and some content. See Create a Space then Pages and blogs.
Invite some users to your site. See Add and Invite Users.
Decide whether you will manage your users in Confluence or hook up an external LDAP directory. See
Configuring User Directories.
Make sure you have set up an email server. The above task list will include this step, but it is worth
mentioning it here again. Email notifications are an important part of collaborating on Confluence. See
Configuring a Server for Outgoing Mail.
Now you can continue getting to know your site, as described in the next section.
Has the site been around a while, but you're new to Confluence administration? Take a look at these topics:
Understand the Confluence permission scheme. See Permissions and restrictions.
Get to know the power of Marketplace apps (also known as add-ons or plugins), for extending and
customizing your Confluence site. See Managing System and Marketplace Apps.
Investigate more ways of customizing Confluence. See Customizing your Confluence Site.
Manage Users
A Confluence user is a person who can read or
update a Confluence site. You can choose whether
your Confluence site is accessible to anonymous
users (people who have not logged in) or only to
logged-in users. See Setting Up Public Access.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 11
Authentication
Seraph
Almost all authentication in Confluence (and Jira applications) is performed through Seraph, Atlassian's open
source web authentication framework. The goal of Seraph is to provide a simple, extensible authentication
system that we can use on any application server.
Seraph is implemented as a servlet filter. Its sole job is, given a web request, to associate that request with a
particular user (or no user if the request is anonymous). It supports several methods of authentication,
including HTTP Basic Authentication, form-based authentication, and looking up credentials already stored in
the user's session.
Seraph itself performs no user management functions. It merely checks the credentials of the incoming
request and delegates any user management functions (looking up a user, checking a user's password) to
Confluence's user management system.
If you want to integrate Confluence with your own single sign-on (SSO) infrastructure, you would do so by
installing Atlassian Crowd or by writing a custom Seraph authenticator. See our developer documentation on
HTTP authentication with Seraph.
Normally, requests for Confluence's XML-RPC and SOAP APIs (deprecated) will include an authentication
token as the first argument. With this method of authentication, XML-RPC and SOAP authentication requests
are checked directly against the user management framework, and tokens are assigned directly by the
remote API subsystem. These requests do not pass through Seraph authenticators.
However, if the token argument is blank, Seraph will be used as a fallback authentication method for remote
API requests. So, to use a custom Seraph authenticator with XML-RPC or SOAP requests, ensure that you
pass an empty string as the authentication token to remote API methods.
Password authentication
By default, password authentication is delegated from Seraph to the user management system. This is not
necessary, however. Single sign-on systems may have no password authentication at all, and get all the
necessary credentials from the SSO provider.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 12
If you have a Confluence Data Center license you can connect Confluence to your SAML 2.0 identity
provider for authentication and single sign-on.
See SAML SSO for Confluence Data Center for more information.
If you enable user signup, a 'Sign Up' option will appear on the Confluence Related pages:
screens. The option will be on the login screen, and also in the header on
Manage
public sites. People can choose the option to create their own usernames on
Users
Confluence.
Setting Up
Public
Access
Configurin
g a Server
for
Outgoing
Mail
You can restrict the signup to people whose email addresses are within a given domain or domains. This is
useful if you want to ensure that only people within your organization can add their own usernames.
You will still be able to add or invite users manually, whether user signup is enabled or not.
You need Confluence Administrator or System Administrator permissions to change the signup options.
To set the user signup options:
1. Choose
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence
5. 6.15 Documentation 13
By default, Confluence will send an email notification to all Confluence administrators whenever someone
signs up to your Confluence site. The administrators (people with Confluence Administrator or System
Administrator permissions) will receive this message when someone signs up either by clicking the 'Sign Up'
link or by clicking the invitation URL sent by an administrator.
To disable this notification:
1. Choose
You can invite new users to the site by sending them a signup URL, called an 'invitation link'. You can copy
the invitation link and paste it onto a page or into an email message, or you can prompt Confluence to send
an email message containing the same link.
The option to send invitations is independent of the signup options. You can send invitations if signup is open
to all, restricted by domain, or disabled entirely. Even if signup is restricted or disabled, a person who has
received an invitation will be able to sign up.
When someone visits the invitation link in a browser, a Confluence signup screen will appear.
To invite people to sign up:
1.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 14
1. Choose
http://confluence.example.com/signup.action?token=d513a04456312c47
This security token is a shared token – individual invitations don't have unique tokens. Anyone who obtains
this token will be able to sign up to Confluence.
You can change the token at any time, by choosing Reset. The previous invitation link will then become
unusable.
Screenshot: Inviting users
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 15
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 16
Notes
Multiple directories – You can define multiple user directories in Confluence, so that Confluence
looks in more than one place for its users and groups. For example, you could use the default
Confluence internal directory and connect to an LDAP directory server. In that case, you can define
the directory order to determine where Confluence looks first when processing users and groups.
Here is a summary of how the directory order affects the processing:
The order of the directories is the order in which they will be searched for users and groups.
Changes to users and groups will be made only in the first directory where the application has
permission to make changes.
See Managing Multiple Directories.
Email server required for domain restricted signup and for invitations – You need to set up a mai
l server for Confluence, before you can configure domain restricted signup or send email invitations to
users.
Are the user management options not visible? If you have external user management turned on,
internal user management is disabled. To configure external user management, go to
> General Configuration> Security Configuration. See Disabling the Built-In User Management.
Avoid hash, slash and question characters in usernames - there is a known issue where users
with #, ? or / in their username cannot create spaces. See
CONFSERVER-43494 CONFSERVER-13479
GATHERING IMPACT and GATHERING IMPACT for
more information.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 17
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 18
Delete a
user
account
Del
ete
from
an
inter
nal
Con
flue
nce
dire
ctor
y or
read
/writ
e
exte
rnal
dire
ctor
y
Del
ete
from
a
read
-onl
y
exte
rnal
dire
ctor
y, or
mult
iple
exte
rnal
dire
ctori
es
How
dele
ted
user
s
app
ear
to
othe
r
peo
ple
Only
remove
access to
Confluenc
e
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 19
Limitations
when
deleting a
user
account
Fre
e
text
is
not
ano
nym
ised
Dat
a
stor
ed
in
Syn
chro
ny
is
not
dele
ted
Per
son
al
spa
ces
are
not
dele
ted
Wor
kbo
x
notif
icati
ons
don'
t
disa
ppe
ar
imm
edia
tely
Dat
a
stor
ed
by
third
-par
ty
app
s is
not
dele
ted
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 20
Related pages:
Manage
Users
Configurin
g User
Directories
It's useful to understand the difference between disabling a user account, unsyncing it from an external
directory, and permanently deleting it from Confluence.
In most situations disabling or unsyncing a user account is the appropriate way to prevent a user from
accessing Confluence, for example when someone leaves your organisation. However, if you do need to
remove someone's name and personal details, you can permanently delete their user account.
When an user account is disabled:
The user won't be able to log in.
The user won't be included in your license count.
People won't be able to see the user in the People directory, mention them, or select their
name/username as a search filter.
Their full name will still appear on any spaces or content they created.
They will be listed in User Management admin screens.
Their account can be re-enabled (this will restore the connection to their content).
Any content they created will be maintained.
When a user account is unsynced from all external directories:
The user won't be able to log in.
The user won't be included in your license count.
People won't be able to see the user in the People directory, mention them, or select their
name/username as a search filter.
Their username will appear on any spaces or content they have created.
They will only be listed on the Unsynced from Directory tab of the User Management admin screens.
Their account will be restored if they are resynced with Confluence.
Any content they created will be maintained.
When a user account is deleted:
The user won't be able to log in.
The user won't be included in your license count.
People won't be able to see the user in the People directory, mention them, or select their
name/username as a search filter.
An anonymised alias will appear on any spaces or content they have created.
They won't be listed in User Management admin screens.
Their account is deleted and anonymised permanently, and can't be restored.
Any content they created will be maintained.
How you disable a user account depends on whether you manage users in the internal Confluence directory,
or in an external user directory (for example Jira, Crowd, Active Directory).
You need the Confluence Administrator global permission to do this.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 21
You unsync a user account by excluding it from the accounts to be synchronized with Confluence in your
external directory. See Synchronizing Data from External Directories to learn more about how directory sync
works.
To view users who have previously been synchronized with Confluence, but were not present in the last
directory sync, go to
Deleting a user is permanent, so cannot be undone. If you're trying to reduce your license count, or only
need to remove a someone's access to Confluence, you should disable their account instead.
How you delete a user account depends on whether you manage users in:
an internal directory, or a single read/write external directory (such as Jira, Crowd, or Active Directory)
multiple external directories, or a single read-only external directory (such as Jira, Crowd, or Active
Directory).
The delete process can take several minutes, depending on the amount of content the person had created. It
can also flood your index queue, as it reindexes all pages the user contributed to, so you may want to
perform this task at a time that won't impact other users.
You need the Confluence Administrator global permission to do this.
To permanently delete a user stored in the internal Confluence directory, or a single external directory that
has a read/write connection to Confluence:
1. Go to
Deleting a user stored in a read-only external directory or in multiple external directories, is a two-step
process. You need to remove them from all external directories and perform a directory resync before they
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 22
Once a user account has been deleted their identity will be anonymised throughout Confluence in places like
the page byline, mentions, comments, and page history.
full names be replaced with an alias like 'user-38782'
usernames will be replaced with the user key (a long string of characters).
their profile picture will be replaced with a default image.
The alias and user key stays the same throughout the site. This means people can see that pages and
comments were made by the same person, but not know the identity of that person.
If you want to remove someone's access to Confluence, but retain their user account (or you can't disable
their account for some reason), you can do this by changing their group membership.
1. Create a group, for example no-confluence-access
2. Go to
The ability to delete and anonymize a user account was added in Confluence 6.13.
For earlier Confluence versions there's a workaround you can use to permanently delete a user
account via the database. See Right to erasure in Confluence Server and Data Center.
You can also head to Confluence Server and Data Center GDPR support guides to read more about
Confluence and GDPR generally.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 23
There are some situations where personal information may still be stored in Confluence after you have
deleted a user account, and the delete process does not remove any actual content, for example if someone
has typed the user's name in plain text on a page, or if it is contained in an attached file.
Deleting a user does not delete any Confluence content (such as pages, files, or comments). This means
that any references to a person's full name, user name, or other personal information that were entered as
free text will remain after the user account is deleted. Text entered in the link text of a link or mention are also
considered free text (for example if you mention someone on a page and change the mention link text to use
just their first name, or a nickname).
Links to the deleted user's personal space (which contains their username in the URL) will also remain after
their personal space has been deleted, if the links were inserted as a web link or free text.
We suggest searching for the deleted person's name and username to see if there is any residual content left
behind.
There are also a couple of known issues that will require manual cleanup:
When multiple people are mentioned on a task, only the first (the assignee) is replaced with the
anonymised alias. This is due to an existing bug where subsequent mentions aren't indexed.
If the user to be deleted is listed on the All Updates tab on the dashboard at the point they are deleted,
their updated items will appear twice, once with their anonymised alias and once with their username.
They will drop off the All Updates tab as new updates occur, but their username will still be listed in the
search index. A full site reindex will resolve this issue.
If you have collaborative editing enabled, every keystroke in the editor is stored by Synchrony in the
Confluence database. This means that any references to a person's full name, user name, or other personal
information typed in the editor will remain in the Synchrony tables in the database.
See How to reduce the size of Synchrony tables to find out how to remove all data from these tables.
When you delete a user, their personal space is not automatically deleted, as it may contain content owned
by your organization. This means that:
their username will still be visible in the space URL
their name may still be visible in the space title or homepage title
We recommend moving any pages or blogs that you want to keep to a new space, and then deleting the
personal space entirely. Any links to the personal space will be updated with the new space key
automatically when the pages are moved, unless they have been added as a web link or free text.
The deleted user's full name will still appear in any existing workbox notifications. For example if the deleted
user had shared a page with another user, the notification will still appear in that user's workbox for up to 28
days. See Workbox Notifications for more information about how long a workbox notification is accessible
before it is automatically deleted.
When you delete a user, we replace the person's full name and username with an anonymous alias in all the
places we know about, such as mentions, page history, and in macros.
If you have installed apps from the Marketplace, there is a chance that these apps are storing data in their
own tables in the Confluence database. Refer to the documentation for your app to find out the best way to
remove this data.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 24
Using Confluence 6.5.0 or earlier? You'll need to use the database method to recover your admin
user rights. See the earlier documentation.
Recovery mode works by creating a virtual user directory with a temporary admin account. You set the
password for this admin account when applying the system property. Users can continue to log in and
access Confluence while it is in recovery mode.
To recover administrator user rights:
1. Stop Confluence.
2. Edit <installation-directory>/bin/setenv.sh or setenv.bat and add the following
system property, replacing <your-password> with a unique, temporary password.
-Datlassian.recovery.password=<your-password>
See Configuring System Properties for more information on using system properties.
3. Start Confluence manually (don't start Confluence as a service).
4. Log in to Confluence with the username recovery_admin and the temporary password you specified
in the system property.
5. Reset the password for your existing admin account, or create a new account and add it to the
appropriate administrator group.
6. Confirm that you can successfully log in with your new account.
7. Stop Confluence.
8. Edit <installation-directory>/bin/setenv.sh or setenv.bat and remove the system
property.
9. Restart Confluence using your usual method (manually or by starting the service).
Good to know:
Remove the system property as soon as you have restored admin access.
Don't leave Confluence in recovery mode, or use the recovery_admin account as a regular
administrator account.
Your temporary password should be a unique. Don't use an existing password or the one you intend to
use for your admin account.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 25
You can view and edit the details of Confluence users, including their name, On this page:
password, email address, group membership, and ability to access
Confluence. Edit a
user's
details
Edit a user's details Reset login
count
1. Choose
Related pages:
> User management Delete or
2. Do either of the following: Disable
Choose Show all users to list everyone in the Users
'confluence-users' or 'users' group Adding or
Removing
Enter a username, full name or email address in the Find User
Users in
field and hit Search
Groups
Add and
If you're already viewing someone's profile, choose Ad Invite
minister User in the sidebar. Users
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 26
Confluence records the number of failed logins attempts made against each user account. When the login
attempts exceed a preset number, the user is prompted to authenticate using CAPTCHA until they
successfully log in.
If the user you're administering has any failed login attempts, you can manually set the failed login count for a
user back to zero by clicking Reset Failed Login Count.
Change a Username
As a Confluence administrator, you can change a user's username. This On this page:
could be for any reason, but might happen when someone changes their
name, for example. Confluenc
e-manage
Each active users must have a unique username, so no two active users d users
can have the same username. You can, however, assign the username of a Users
disabled user to another active user. managed
in an
The procedure for changing a username depends on where you manage
external
your users. See Configuring User Directories for more info.
directory
Notes
Confluence-managed users
If you manage your users in the Confluence internal directory, you can rename your user in Confluence.
You'll need Confluence Administrator permissions to change a username.
To change a username:
1. Choose
If you don't manage your users in the Confluence internal directory, you may still be able to change
someone's username. Confluence can't update external users, but it will detect changes in usernames
coming from some external directories.
The following table shows the instances where you may be able to change a username in your external
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 27
Internal directory with LDAP Rename the user in the LDAP directory, Confluence will detect the
authentication renamed user.
Note: you must have 'Copy User on Login' enabled. See Copying Users
on Login for more information.
Jira 6.1 or later Rename the user in Jira, Confluence will automatically detect the
renamed user.
Atlassian Crowd 2.7 or later Rename the user in Crowd, Confluence will automatically detect the
renamed user.
LDAP Rename the user in your LDAP directory, Confluence will automatically
detect the renamed user.
Notes
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 28
individual user, and other users with the 'Add/Delete Restrictions' space On this page:
permission can add and remove page restrictions for groups.
Special
groups
Special groups Anonymou
s users
There are two special default groups in Confluence: Add or
1. confluence-administrators: This is a group of 'super-users' who can delete
access the Confluence administration screens ('administration groups
console') and perform site-wide administration. Members of this group Confluenc
can also see all spaces and pages in the Confluence site. Any user e
who is a member of this group has site-wide administration powers, Administra
regardless of any other setting. The settings on the global tor
permissions screen do not affect the powers allowed to members of permission
this group. vs
2. confluence-users: This is the default group for all new users. confluence
Permissions you assign to this group will be assigned to all newly -admin
created users. group
compariso
n
Notes
Related pages:
Manage
Users
Global
Permission
s Overview
The Confluence administrator global permission and the confluence-administrators group are not
related. Going by the names, you would think they are the same thing, but they are not. Granting a user or a
group Confluence administrator global permission provides access to a sub-set of administrative functions.
Granting membership to the confluence-administrators group gives complete access to all functions
and content.
View the comparison table.
Anonymous users
All users who don't log in when they access Confluence are considered 'anonymous'. You can grant
anonymous users the 'Use Confluence' permission via the Global Permissions screen if you need to. This will
allow non-registered users to access pages and spaces in Confluence. A space administrator can further
control anonymous access per space via the space permissions.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 29
Granting the Confluence Administrator permission to someone allows them access to many, but not
all, options in the administration console (
> General configuration). Expand the comparison table to view the options available to people granted the
Confluence Administrator permission, and to those in the confluence-admin group.
Click to view the comparison table
CONFIGURATION
General Configuration
Further Configuration
Manage Referrers
Languages
Shortcut Links
Import Templates
Mail Servers
User Macros
In-app Notifications
HipChat Integration
Attachment Storage
Spam Prevention
WebDAV Configuration
Office Connector
ATLASSIAN MARKETPLACE
Manage apps
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 30
Users
Groups
Security Configuration
Global Permissions
Space Permissions
User Directories
Whitelist
Themes
Color Scheme
Layouts
Stylesheet
PDF Layout
PDF Stylesheet
Custom HTML
ADMINISTRATION
System Information
Content Indexing
Mail Queue
Cache Management
Scheduled Jobs
License Details
Thread Dump
Application Links
Application Navigator
Analytics
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 31
Clustering
Notes
Multiple user directories: You can define multiple user directories in Confluence, so that Confluence
looks in more than one place for its users and groups. For example, you could use the default
Confluence internal directory and connect to an LDAP directory server. In that case, you can define
the directory order to determine where Confluence looks first when processing users and groups.
Here is a summary of how the directory order affects the processing:
The order of the directories is the order in which they will be searched for users and groups.
Changes to users and groups will be made only in the first directory where the application has
permission to make changes.
See Managing Multiple Directories.
This is the recommended method. It allows you to manage the group membership for a number of users at
the same time.
To add members to a group:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 32
4. Choose the Delete user from group icon next to the user whose group membership you want to
remove
You can update a user's group membership from the user management screen. This functionality allows you
to update one user at a time.
To add a user to a group or remove a user from a group:
1. Go to the user management screen for the user concerned. There are two ways to do this:
Either,
Go to the user's Profile and choose Administer User on the user's profile screen.
Or, Choose the cog icon
You can define multiple user directories in Confluence, so that Confluence looks in more than one
place for its users and groups. For example, you could use the default Confluence internal directory
and connect to an LDAP directory server. In that case, you can define the directory order to
determine where Confluence looks first when processing users and groups.
Here is a summary of how the directory order affects the processing:
The order of the directories is the order in which they will be searched for users and groups.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 33
Changes to users and groups will be made only in the first directory where the application has
permission to make changes.
See Managing Multiple Directories.
Global Description
Permission
Can Use This is the most basic permission that allows users to access the site.
Users with this permission count towards the number of users allowed by your license.
Attach Files This allows the user to upload files to be stored in their user profile.
to User
Profile This feature was made obsolete by the introduction of personal spaces in Confluence
2.2. Hence, this permission is no longer relevant. Attachments can be accessed from a
user profile view (for example, an image within the 'About Me' field of a profile view) by
attaching these files to a page within that user's personal space and referencing them
using appropriate wiki markup code.
Create This permission allows users to create new spaces within your Confluence site. When a
Space(s) space is created, the creator automatically has the 'Admin' permission for that space and
can perform space-wide administrative functions.
Confluence This permission allows users to access the 'Administration Console' that controls
Administrator site-wide administrative functions. Users with this permission can perform most, but not
all, of the Confluence administrative functions. See the comparison of 'System
Administrator' and 'Confluence Administrator' below.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 34
System This permission allows users to access the 'Administration Console' that controls
Administrator site-wide administrative functions. Users with this permission can perform all the
Confluence administrative functions, including the ones which the 'Confluence
Administrator' permission does not allow. See the comparison of 'System Administrator'
and 'Confluence Administrator' below. Refer also to the note about the
'confluence-administrators' group below.
Comparing the System Administrator permission with the Confluence Administrator permission
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 35
Application People with the 'Confluence Administrator' permission can add, modify and remove
Links application links and project links. For example, they can link Confluence to Jira.
However, Confluence administrators can configure only OAuth authentication for
application links.
The default confluence-administrators group is a special, 'super-user' group that gets permissions
above and beyond the Confluence administrator and system administrator global permissions. Members of
this group can perform site-wide administration functions, and also see the content of all pages and spaces in
the Confluence site, regardless of space permissions or page restrictions.
Restricted pages and blog posts are not visible to members of the confluence-administrators group in
the dashboard, blog roll, search and most macros, but will be visible in the following places:
In the sidebar (visible with Page Tree navigation, but not visible with Child Pages navigation)
Pages index page
Reorder pages screen
Page tree macro
Content by user macro
Quicknav
Members of this group can also see restricted pages and blog posts if they have the page URL.
Members of this group can't edit pages by default however. They would need to grant themselves space
permissions, or add themselves to the page restrictions in order to edit.
Granting a user the system administrator and Confluence administrator global permissions does not allow
that user to automatically see all spaces in your site, or see restricted pages. These permissions only give
access to administration tools. Be aware, however, that users with system administrator global permission
could add themselves to the confluence-administrators group.
You can't change the global permissions granted to the confluence-administrators group. If you don't
want your admins to be able to see all spaces and restricted pages, you can create a new group, and grant
that group the Confluence administrator and system administrator global permissions.
The Confluence administrator global permission and the confluence-administrators group are not
related. Going by the names, you would think they are the same thing, but they are not. Granting a user or a
group Confluence administrator global permission provides access to a sub-set of administrative functions.
Granting membership to the confluence-administrators group gives complete access to all functions
and content.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 36
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 37
If you're using Confluence as a knowledge base for Jira Service Desk, you can choose to allow all active
users and customers (that is logged in users who do not have a Confluence license) to view pages in specific
spaces. This permission can only be turned on via Jira Service Desk.
To revoke access for unlicensed users:
1. Go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 38
This section only appears on the Global Permissions page in Confluence if you have linked a space to your
Service Desk project (as a Knowledge base), and chosen to allow all active users and customers to access
without a Confluence license. See Serving customers with a knowledge base in the Service Desk
documentation for more info.
Confluence will let you know if there is a problem with some permissions. In rare situations, you may see the
following error messages below a permission:
'User/Group not found' - This message may appear if your LDAP repository is unavailable, or if the
user/group has been deleted after the permission was created.
'Case incorrect. Correct case is: xxxxxx' - This message may appear if the upper/lower case in the
permission does not match the case of the username or group name. If you see a number of
occurrences of this message, you should consider running the routine supplied to fix the problem.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 39
To disable anonymous access to your site, deselect the can use check box, then choose Save All. People
will not be able to see the content on the site until they have logged in.
To enable public access to a Confluence space, you must grant the following permissions to anonymous
users:
The site-wide 'can use' permission, as described above.
The relevant space permissions. If you want a space to be publicly accessible, the anonymous user
must have at least the 'View Space' permission. To set space permissions, choose Browse > Space
Admin > Permissions.
Notes
Connecting to a Directory
You can add the following types of directory servers and directory managers:
Confluence's internal directory. See Configuring the Internal Directory.
Microsoft Active Directory. See Connecting to an LDAP Directory.
Various other LDAP directory servers. See Connecting to an LDAP Directory.
An LDAP directory for delegated authentication. See Connecting to an Internal Directory with LDAP
Authentication.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 40
Atlassian Crowd or Jira 4.3 or later. See Connecting to Crowd or Jira for User Management.
You can add as many external user directories as you need. Note that you can define the order of the
directories. This determines which directory Confluence will search first, when looking for user and group
information. See Managing Multiple Directories.
Updating Directories
You cannot edit, disable or remove the directory your user belongs to. This precaution is designed to prevent
administrators from locking themselves out of the application by changing the directory configuration in a way
that prevents them logging in or removes their administration permissions.
This limitation applies to all directory types. For example:
You cannot disable the internal directory if your user is an internal user.
You cannot disable or remove an LDAP or a Crowd directory if your user comes from that directory.
In some situations, reordering the directories will change the directory that the current user comes from, if a
user with the same username happens to exist in both. This behavior can be used in some cases to create a
copy of the existing configuration, move it to the top, then remove the old one. Note, however, that duplicate
usernames are not a supported configuration.
You cannot remove the internal directory. This precaution aligns with the recommendation below that you
always keep an administrator account active in the internal directory.
Recommendations
The recommended way to edit directory configurations is to log in as an internal user when making changes
to external directory configuration.
We recommend that you keep either an administrator or system administrator user active in your internal
directory for troubleshooting problems with your user directories.
You can enable or disable a directory at any time. If you disable a directory, your configuration details will
remain but the application will not recognize the users and groups in that directory.
You have to disable a directory before you can remove it. Removing a directory will remove the details from
the database.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 41
Diagram above: Confluence using its internal directory for user management.
Overview
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 42
Server Settings
Setting Description
Name Enter a meaningful name to help you identify the LDAP directory server. Examples:
Example Company Staff Directory
Example Company Corporate LDAP
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 43
Directory Select the type of LDAP directory that you will connect to. If you are adding a new LDAP
Type connection, the value you select here will determine the default values for many of the
options on the rest of screen. Examples:
Microsoft Active Directory
OpenDS
And more.
Use SSL Check this if the connection to the directory server is an SSL (Secure Sockets Layer)
connection. Note that you will need to configure an SSL certificate in order to use this
setting.
Username The distinguished name of the user that the application will use when connecting to the
directory server. Examples:
cn=administrator,cn=users,dc=ad,dc=example,dc=com
cn=user,dc=domain,dc=name
[email protected]
By default, all users can read the uSNChanged attribute; however, only
administrators or users with relevant permissions can access the Deleted Objects
container. The specific privileges required by the user to connect to LDAP are
"Bind" and "Read" (user info, group info, group membership, update sequence
number, deleted objects), which the user can obtain by being a member of the
Active Directory's built-in administrators group.
Note that the incremental sync will fail silently if the Active Directory is accessed by
a user without these privileges. This has been reported as CWD-3093.
Schema Settings
Setting Description
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 44
Base DN The root distinguished name (DN) to use when running queries against the directory server.
Examples:
o=example,c=com
cn=users,dc=ad,dc=example,dc=com
For Microsoft Active Directory, specify the base DN in the following format: dc=domain
1,dc=local. You will need to replace the domain1 and local for your specific
configuration. Microsoft Server provides a tool called ldp.exe which is useful for finding
out and configuring the the LDAP structure of your server.
Additional This value is used in addition to the base DN when searching and loading users. If no value
User DN is supplied, the subtree search will start from the base DN. Example:
ou=Users
Additional This value is used in addition to the base DN when searching and loading groups. If no
Group value is supplied, the subtree search will start from the base DN. Example:
DN
ou=Groups
If no value is supplied for Additional User DN or Additional Group DN this will cause the subtree
search to start from the base DN and, in case of huge directory structure, could cause performance
issues for login and operations that rely on login to be performed.
Permission Settings
Note: You can only assign LDAP users to local groups when 'External Management User Management' is
not selected.
Setting Description
Read Only LDAP users, groups and memberships are retrieved from your directory server and can
only be modified via your directory server. You cannot modify LDAP users, groups or
memberships via the application administration screens.
Read LDAP users, groups and memberships are retrieved from your directory server and can
Only, with only be modified via your directory server. You cannot modify LDAP users, groups or
Local memberships via the application administration screens. However, you can add groups to
Groups the internal directory and add LDAP users to those groups.
Note for Confluence users: Users from LDAP are added to groups maintained in
Confluence's internal directory the first time they log in. This is only done once per user.
There is a known issue with Read Only, with Local Groups in Confluence that may apply to
you. See
CONFSERVER-28621 - User Loses all Local Group Memberships If LDAP Sync is Unable to find
the User, but the User appears again in subsequent syncs CLOSED
Read/Write LDAP users, groups and memberships are retrieved from your directory server. When you
modify a user, group or membership via the application administration screens, the
changes will be applied directly to your LDAP directory server. Please ensure that the
LDAP user specified for the application has modification permissions on your LDAP
directory server.
Setting Description
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 45
Default Option available in Confluence 3.5 and later, and JIRA 4.3.3 and later. This field appears
Group if you select the 'Read Only, with Local Groups' permission. If you would like users to be
Memberships automatically added to a group or groups, enter the group name(s) here. To specify
more than one group, separate the group names with commas.
In Confluence 3.5 to Confluence 3.5.1: Each time a user logs in, their group
memberships will be checked. If the user does not belong to the specified group(s), their
username will be added to the group(s). If a group does not yet exist, it will be added
locally.
In Confluence 3.5.2 and later, and JIRA 4.3.3 and later: The first time a user logs in,
their group memberships will be checked. If the user does not belong to the specified
group(s), their username will be added to the group(s). If a group does not yet exist, it
will be added locally. On subsequent logins, the username will not be added
automatically to any groups. This change in behavior allows users to be removed from
automatically-added groups. In Confluence 3.5 and 3.5.1, they would be re-added upon
next login.
Please note that there is no validation of the group names. If you mis-type the group
name, authorization failures will result – users will not be able to access the applications
or functionality based on the intended group name.
Examples:
confluence-users
confluence-users,jira-administrators,jira-core-users
Advanced Settings
Setting Description
Enable Nested Enable or disable support for nested groups. Some directory servers allow you to
Groups define a group as a member of another group. Groups in such a structure are called n
ested groups. Nested groups simplify permissions by allowing sub-groups to inherit
permissions from a parent group.
Manage User If true, you can activate and deactivate users in Crowd independent of their status in
Status Locally the directory server.
Filter out If true, user accounts marked as expired in ActiveDirectory will be automatically
expired users removed. For cached directories, the removal of a user will occur during the first
synchronization after the account's expiration date.
Note: This is available in Embedded Crowd 2.0.0 and above, but not available in the
2.0.0 m04 release.
Use Paged Enable or disable the use of the LDAP control extension for simple paging of search
Results results. If paging is enabled, the search will retrieve sets of data rather than all of the
search results at once. Enter the desired page size – that is, the maximum number of
search results to be returned per page when paged results are enabled. The default is
1000 results.
Follow Choose whether to allow the directory server to redirect requests to other servers.
Referrals This option uses the node referral (JNDI lookup java.naming.referral)
configuration setting. It is generally needed for Active Directory servers configured
without proper DNS, to prevent a 'javax.naming.PartialResultException: Unprocessed
Continuation Reference(s)' error.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 46
Naive DN If your directory server will always return a consistent string representation of a DN,
Matching you can enable naive DN matching. Using naive DN matching will result in a
significant performance improvement, so we recommend enabling it where possible.
This setting determines how your application will compare DNs to determine if they
are equal.
If this checkbox is selected, the application will do a direct, case-insensitive, string
comparison. This is the default and recommended setting for Active Directory,
because Active Directory guarantees the format of DNs.
If this checkbox is not selected, the application will parse the DN and then check
the parsed version.
Enable Enable incremental synchronization if you only want changes since the last
Incremental synchronization to be queried when synchronizing a directory.
Synchronization
Please be aware that when using this option, the user account configured for
synchronization must have read access to:
The uSNChanged attribute of all users and groups in the directory that need to be
synchronized.
The objects and attributes in the Active Directory deleted objects container.
If at least one of these conditions is not met, you may end up with users who are
added to (or deleted from) the Active Directory not being respectively added (or
deleted) in the application.
This setting is only available if the directory type is set to "Microsoft Active Directory".
Synchronization Synchronization is the process by which the application updates its internal store of
Interval user data to agree with the data on the directory server. The application will send a
(minutes) request to your directory server every x minutes, where 'x' is the number specified
here. The default value is 60 minutes.
Read Timeout The time, in seconds, to wait for a response to be received. If there is no response
(seconds) within the specified time period, the read attempt will be aborted. A value of 0 (zero)
means there is no limit. The default value is 120 seconds.
Search Timeout The time, in seconds, to wait for a response from a search operation. A value of 0
(seconds) (zero) means there is no limit. The default value is 60 seconds.
Setting Description
User This is the name of the class used for the LDAP user object. Example:
Object
Class user
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 47
User The attribute field to use when loading the username. Examples:
Name
Attribute cn
sAMAccountName
NB: In Active Directory, the 'sAMAccountName' is the 'User Logon Name (pre-Windows
2000)' field. The User Logon Name field is referenced by 'cn'.
User The RDN (relative distinguished name) to use when loading the username. The DN for each
Name LDAP entry is composed of two parts: the RDN and the location within the LDAP directory
RDN where the record resides. The RDN is the portion of your DN that is not related to the
Attribute directory tree structure. Example:
cn
User First The attribute field to use when loading the user's first name. Example:
Name
Attribute givenName
User Last The attribute field to use when loading the user's last name. Example:
Name
Attribute sn
User The attribute field to use when loading the user's full name. Example:
Display
Name displayName
Attribute
User The attribute field to use when loading the user's email address. Example:
Email
Attribute mail
User The attribute field to use when loading a user's password. Example:
Password
Attribute unicodePwd
User The attribute used as a unique immutable identifier for user objects. This is used to track
Unique I username changes and is optional. If this attribute is not set (or is set to an invalid value),
D user renames will not be detected — they will be interpreted as a user deletion then a new
Attribute user addition.
This should normally point to a UUID value. Standards-compliant LDAP servers will
implement this as 'entryUUID' according to RFC 4530. This setting exists because it is
known under different names on some servers, e.g. 'objectGUID' in Microsoft Active
Directory.
Setting Description
Group Object Class This is the name of the class used for the LDAP group object. Examples:
groupOfUniqueNames
group
Group Object Filter The filter to use when searching group objects. Example:
(&(objectClass=group)(cn=*))
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 48
Group Name Attribute The attribute field to use when loading the group's name. Example:
cn
Group Description Attribute The attribute field to use when loading the group's description. Example:
description
Setting Description
Group Members Attribute The attribute field to use when loading the group's members. Example:
member
User Membership Attribute The attribute field to use when loading the user's groups. Example:
memberOf
Use the User Membership Check this if your directory server supports the group membership attribute
Attribute, when finding the on the user. (By default, this is the 'memberOf' attribute.)
user's group membership
If this checkbox is selected, your application will use the group
membership attribute on the user when retrieving the list of groups
to which a given user belongs. This will result in a more efficient
retrieval.
If this checkbox is not selected, your application will use the members
attribute on the group ('member' by default) for the search.
If the Enable Nested Groups checkbox is seleced, your application
will ignore the Use the User Membership Attribute option and will
use the members attribute on the group for the search.
Use the User Membership Check this if your directory server supports the user membership attribute
Attribute, when finding the on the group. (By default, this is the 'member' attribute.)
members of a group
If this checkbox is selected, your application will use the group
membership attribute on the user when retrieving the members of a
given group. This will result in a more efficient search.
If this checkbox is not selected, your application will use the members
attribute on the group ('member' by default) for the search.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 49
Diagram above: Confluence connecting to an LDAP directory with permissions set to read only and local
groups.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 50
Initial Pool The number of LDAP connections created when initially connecting to the 1
Size pool.
Preferred The optimal pool size. LDAP will remove idle connections when the number of 10
Pool Size connections grows larger than this value. A value of 0 (zero) means that there
is no preferred size, so the number of idle connections is unlimited.
Pool Timeout The length of time, in seconds, that a connection may remain idle before 30
(seconds) being removed from the pool. When the application is finished with a pooled
connection, the connection is marked as idle, waiting to be reused. A value of
0 (zero) means that the idle time is unlimited, so connections will never be
timed out.
Pool Protocol Only these protocol types will be allowed to connect to the LDAP directory plain
server. If you want to allow multiple protocols, enter the values separated by a ssl
space. Valid values are: (Both
plain
plain
and ssl)
ssl
Pool Only these authentication types will be allowed to connect to the LDAP simple
Authentication directory server. If you want to allow multiple authentication types, enter the
values separated by a space. See RFC 2829 for details of LDAP
authentication methods. Valid values are:
none
simple
DIGEST-MD5
Notes:
The connection pool settings are system wide and will be used to create a new connection pool for
every configured LDAP directory server.
You must restart your application server for these settings to take effect.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 51
server, onto your Confluence server and then install On this page:
the certificate into your JVM keystore.
Prerequisites
Step 1. Install the Active Directory
Certificate Services
Step 2. Obtain the Server
Certificate
Step 3. Import the Server
Certificate
Related pages:
Connecting to an LDAP Directory
Configuring User Directories
Updating user, group, and membership details in Active Directory requires that your Atlassian application be
running in a JVM that trusts the AD server. To do this, we generate a certificate on the Active Directory
server, then import it into Java's keystore.
Prerequisites
To generate a certificate, you need the following components installed on the Windows Domain Controller to
which you're connecting.
Internet Information Services This is required before you can install Windows Certificate Services.
(IIS)
Windows Certificate Services This installs a certification authority (CA) which is used to issue
certificates. Step 1, below, explains this process.
Windows 2000 Service Pack Required if you are using Windows 2000
2
Windows 2000 High Required if you are using Windows 2000. Provides the highest available
Encryption Pack (128-bit) encryption level (128-bit).
If Certificate Services are already installed, skip to step 2, below. The screenshots below are from Server
2008, but the process is similar for Server 2000 and 2003.
1. Log in to your Active Directory server as an administrator.
2. Click Start, point to Administrative Tools, and then click Server Manager.
3. In the Roles Summary section, click Add Roles.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 52
4. On the Select Server Roles page, select the Active Directory Certificate Services check box. Click
Next twice.
5. On the Select Role Services page, select the Certification Authority check box, and then click Next
.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
5. 6.15 Documentation
Confluence 53
6. On the Specify Setup Type page, click Enterprise, and then click Next.
7. On the Specify CA Type page, click Root CA, and then click Next.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence
7. 6.15 Documentation 54
8. On the Set Up Private Key and Configure Cryptography for CA pages, you can configure optional
configuration settings, including cryptographic service providers. However, the default values should
be fine. Click Next twice.
9.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 55
9. In the Common name for this CA box, type the common name of the CA, and then click Next.
10. On the Set Validity Period page, accept the default values or specify other storage locations for the
certificate database and the certificate database log, and then click Next.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 56
11. After verifying the information on the Confirm Installation Selections page, click Install.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 57
12. Review the information on the results screen to verify that the installation was successful.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 58
The steps above describe how to install the certification authority (CA) on your Microsoft Active Directory
server. Next, you will need to add the Microsoft Active Directory server's SSL certificate to the list of accepted
certificates used by the JDK that runs your application server.
The Active Directory certificate is automatically generated and placed in root of the C:\ drive, matching a file
format similar to the tree structure of your Active Directory server. For example: c:\ad2008.ad01.atlass
ian.com_ad01.crt.
You can also export the certificate by executing this command on the Active Directory server:
You might still fail to be authenticated using the certificate file above. In this case, Microsoft's LDAP over SSL
(LDAPS) Certificate page might help. Note that you need to:
1. Choose "No, do not export the private key" in step-10 of Exporting the LDAPS Certificate and
Importing for use with AD DS section
2. Choose "DER encoded binary X.509 (.CER)" in step-11 of Exporting the LDAPS Certificate and
Importing for use with AD DS section. This file will be used in the following step.
For an application server to trust your directory's certificate, the certificate must be imported into your Java
runtime environment. The JDK stores trusted certificates in a file called a keystore. The default keystore file
is called cacerts and it lives in the jre\lib\security sub-directory of your Java installation.
In the following examples, we use server-certificate.crt to represent the certificate file exported by
your directory server. You will need to alter the instructions below to match the name actually generated.
Once the certificate has been imported as per the below instructions, you will need to restart the application
to pick up the changes.
Windows
1. Navigate to the directory in which Java is installed. It's probably called something like C:\Program
Files\Java\jdk1.5.0_12.
cd /d C:\Program Files\Java\jdk1.5.0_12
2. Run the command below, where server-certificate.crt is the name of the file from your
directory server:
3. keytool will prompt you for a password. The default keystore password is changeit.
4. When prompted Trust this certificate? [no]: enter yes to confirm the key import:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 59
You may now change 'URL' to use LDAP over SSL (i.e. ldaps://<HOSTNAME>:636/) and use the 'Secure
SSL' option when connecting your application to your directory server.
UNIX
1. Navigate to the directory in which the Java used by JIRA is installed. If the default JAVA installation is
used, then it would be
cd $JAVA_HOME
2. Run the command below, where server-certificate.crt is the name of the file from your
directory server:
3. keytool will prompt you for a password. The default keystore password is changeit.
4. When prompted Trust this certificate? [no]: enter yes to confirm the key import:
Password:
Enter keystore password: changeit
Owner: CN=ad01, C=US
Issuer: CN=ad01, C=US
Serial number: 15563d6677a4e9e4582d8a84be683f9
Valid from: Tue Aug 21 01:10:46 ACT 2007 until: Tue Aug 21
01:13:59 ACT 2012
Certificate fingerprints:
MD5: D6:56:F0:23:16:E3:62:2C:6F:8A:0A:37:30:A1:84:BE
SHA1:
73:73:4E:A6:A0:D1:4E:F4:F3:CD:CE:BE:96:80:35:D2:B4:7C:79:C1
Trust this certificate? [no]: yes
Certificate was added to keystore
You may now change 'URL' to use LDAP over SSL (i.e. ldaps://<HOSTNAME>:636/) and use the 'Secure
SSL' option when connecting your application to your directory server.
Mac OS X
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 60
1.
cd /Library/Java/Home
2. Run the command below, where server-certificate.crt is the name of the file from your
directory server:
3. keytool will prompt you for a password. The default keystore password is changeit.
4. When prompted Trust this certificate? [no]: enter yes to confirm the key import:
Password:
Enter keystore password: changeit
Owner: CN=ad01, C=US
Issuer: CN=ad01, C=US
Serial number: 15563d6677a4e9e4582d8a84be683f9
Valid from: Tue Aug 21 01:10:46 ACT 2007 until: Tue Aug 21
01:13:59 ACT 2012
Certificate fingerprints:
MD5: D6:56:F0:23:16:E3:62:2C:6F:8A:0A:37:30:A1:84:BE
SHA1:
73:73:4E:A6:A0:D1:4E:F4:F3:CD:CE:BE:96:80:35:D2:B4:7C:79:C1
Trust this certificate? [no]: yes
Certificate was added to keystore
You may now change 'URL' to use LDAP over SSL (i.e. ldaps://<HOSTNAME>:636/) and use the 'Secure
SSL' option when connecting your application to your directory server.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 61
Server Settings
Setting Description
Name A descriptive name that will help you to identify the directory. Examples:
Internal directory with LDAP Authentication
Corporate LDAP for Authentication Only
Directory Select the type of LDAP directory that you will connect to. If you are adding a new LDAP
Type connection, the value you select here will determine the default values for some of the
options on the rest of screen. Examples:
Microsoft Active Directory
OpenDS
And more.
Use SSL Check this box if the connection to the directory server is an SSL (Secure Sockets Layer)
connection. Note that you will need to configure an SSL certificate in order to use this
setting.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 62
Username The distinguished name of the user that the application will use when connecting to the
directory server. Examples:
cn=administrator,cn=users,dc=ad,dc=example,dc=com
cn=user,dc=domain,dc=name
[email protected]
Setting Description
Copy User This option affects what will happen when a user attempts to log in. If this box is
on Login checked, the user will be created automatically in the internal directory that is using
LDAP for authentication when the user first logs in and their details will be synchronized
on each subsequent log in. If this box is not checked, the user's login will fail if the user
wasn't already manually created in the directory.
If you check this box the following additional fields will appear on the screen, which are
described in more detail below:
Default Group Memberships
Synchronize Group Memberships
User Schema Settings (described in a separate section below)
Update User Whenever your users authenticate to the application, their attributes will be automatically
attributes on updated from the LDAP server into the application. After you select this option, you won't
Login be able to modify or delete your users directly in the application.
If you need to modify a user, do it on the LDAP server; it will be updated in the
application after authenticating.
If you need to delete a user, do it on the LDAP server, but also in the application. If
you delete the user only on the LDAP server, it will be rejected from logging in to the
application, but it won't be set as inactive, which will affect your license. You'll need
to disable the Update User attributes on Login option to delete the user, and then
enable it again.
Default This field appears if you check the Copy User on Login box. If you would like users to
Group be automatically added to a group or groups, enter the group name(s) here. To specify
Memberships more than one group, separate the group names with commas. Each time a user logs in,
their group memberships will be checked. If the user does not belong to the specified
group(s), their username will be added to the group(s). If a group does not yet exist, it
will be added to the internal directory that is using LDAP for authentication.
Please note that there is no validation of the group names. If you mis-type the group
name, authorization failures will result – users will not be able to access the applications
or functionality based on the intended group name.
Examples:
confluence-users
bamboo-users,jira-administrators,jira-core-users
Synchronize This field appears if you select the Copy User on Login checkbox. If this box is checke
Group d, group memberships specified on your LDAP server will be synchronized with the
Memberships internal directory each time the user logs in.
If you check this box the following additional fields will appear on the screen, both
described in more detail below:
Group Schema Settings (described in a separate section below)
Membership Schema Settings (described in a separate section below)
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 63
Note: 'Copy Users on Login' must be enabled if you want to be able to change usernames.
Schema Settings
Setting Description
Base The root distinguished name (DN) to use when running queries against the directory server.
DN Examples:
o=example,c=com
cn=users,dc=ad,dc=example,dc=com
For Microsoft Active Directory, specify the base DN in the following format: dc=domain1,
dc=local. You will need to replace the domain1 and local for your specific
configuration. Microsoft Server provides a tool called ldp.exe which is useful for finding
out and configuring the the LDAP structure of your server.
User The attribute field to use when loading the username. Examples:
Name
Attribute cn
sAMAccountName
Advanced Settings
Setting Description
Enable Enable or disable support for nested groups. Some directory servers allow you to define a
Nested group as a member of another group. Groups in such a structure are called nested groups.
Groups Nested groups simplify permissions by allowing sub-groups to inherit permissions from a
parent group.
Use Enable or disable the use of the LDAP control extension for simple paging of search results.
Paged If paging is enabled, the search will retrieve sets of data rather than all of the search results
Results at once. Enter the desired page size – that is, the maximum number of search results to be
returned per page when paged results are enabled. The default is 1000 results.
Follow Choose whether to allow the directory server to redirect requests to other servers. This
Referrals option uses the node referral (JNDI lookup java.naming.referral) configuration setting.
It is generally needed for Active Directory servers configured without proper DNS, to prevent
a 'javax.naming.PartialResultException: Unprocessed Continuation Reference(s)' error.
Note: this section is only visible when Copy User on Login is enabled.
Setting Description
Additional This value is used in addition to the base DN when searching and loading users. If no value
User DN is supplied, the subtree search will start from the base DN. Example:
ou=Users
User This is the name of the class used for the LDAP user object. Example:
Object
Class user
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 64
User The RDN (relative distinguished name) to use when loading the username. The DN for each
Name LDAP entry is composed of two parts: the RDN and the location within the LDAP directory
RDN where the record resides. The RDN is the portion of your DN that is not related to the
Attribute directory tree structure. Example:
cn
User First The attribute field to use when loading the user's first name. Example:
Name
Attribute givenName
User Last The attribute field to use when loading the user's last name. Example:
Name
Attribute sn
User The attribute field to use when loading the user's full name. Example:
Display
Name displayName
Attribute
User The attribute field to use when loading the user's email address. Example:
Email
Attribute mail
Note: this section is only visible when both Copy User on Login and Synchronize Group Memberships ar
e enabled.
Setting Description
Additional This value is used in addition to the base DN when searching and loading groups. If no
Group DN value is supplied, the subtree search will start from the base DN. Example:
ou=Groups
Group Object This is the name of the class used for the LDAP group object. Examples:
Class
groupOfUniqueNames
group
Group Object The filter to use when searching group objects. Example:
Filter
(objectCategory=Group)
Group Name The attribute field to use when loading the group's name. Example:
Attribute
cn
Group The attribute field to use when loading the group's description. Example:
Description
Attribute description
Note: this section is only visible when both Copy User on Login and Synchronize Group Memberships ar
e enabled.
Setting Description
Group Members Attribute The attribute field to use when loading the group's members. Example:
member
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 65
User Membership Attribute The attribute field to use when loading the user's groups. Example:
memberOf
Use the User Membership Check this box if your directory server supports the group membership
Attribute, when finding the attribute on the user. (By default, this is the 'memberOf' attribute.)
user's group membership
If this box is checked, your application will use the group
membership attribute on the user when retrieving the members of
a given group. This will result in a more efficient retrieval.
If this box is not checked, your application will use the members
attribute on the group ('member' by default) for the search.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 66
Diagram above: Confluence connecting to an LDAP directory for authentication only, with each user
synchronized with the internal directory that is using LDAP authentication when they log in to Confluence.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 67
1. Go to your Crowd Administration Console and define the Confluence application to Crowd. See the
Crowd documentation: Adding an Application.
2. Choose the cog icon
Setting Description
Name A meaningful name that will help you to identify this Crowd server amongst your list of
directory servers. Examples:
Crowd Server
Example Company Crowd
Application The name of your application, as recognized by your Crowd server. Note that you will need
Name to define the application in Crowd too, using the Crowd administration Console. See the
Crowd documentation on adding an application.
Application The password which the application will use when it authenticates against the Crowd
Password framework as a client. This must be the same as the password you have registered in
Crowd for this application. See the Crowd documentation on adding an application.
Note: There is a known issue where the password is not saved in some instances
CONFSERVER-33979 - New JIRA/Crowd password not saved after test
GATHERING IMPACT when
configuring Confluence to use Jira/Crowd as a external user directory.
Crowd Permissions
Setting Description
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 68
Read Only The users, groups and memberships in this directory are retrieved from Crowd and can
only be modified via Crowd. You cannot modify Crowd users, groups or memberships via
the application administration screens.
Read/Write The users, groups and memberships in this directory are retrieved from Crowd. When you
modify a user, group or membership via the application administration screens, the
changes will be applied directly to Crowd. Please ensure that the application has
modification permissions for the relevant directories in Crowd. See the Crowd
documentation: Specifying an Application's Directory Permissions.
Setting Description
Enable Nested Enable or disable support for nested groups. Before enabling nested groups, please
Groups check to see if the user directory or directories in Crowd support nested groups. When
nested groups are enabled, you can define a group as a member of another group. If
you are using groups to manage permissions, you can create nested groups to allow
inheritance of permissions from one group to its sub-groups.
Enable Enable or disable incremental synchronization. Only changes since the last
Incremental synchronization will be retrieved when synchronizing a directory. Note that full
Synchronization synchronization is always executed when restarting Fisheye.
Synchronization Synchronization is the process by which the application updates its internal store of
Interval user data to agree with the data on the directory server. The application will send a
(minutes) request to your directory server every x minutes, where 'x' is the number specified
here. The default value is 60 minutes.
Note that the license tiers for your Jira application and Confluence do not need to match to use this
feature. For example, you can manage a Confluence 50 user license with Jira Software, even if Jira
Software only has a 25 user license.
Subject to certain limitations, you can connect a number of Atlassian applications to a single JIRA application
for centralized user management.
When to use this option: You can connect to a server running JIRA 4.3 or later, JIRA Software 7.0 or later,
JIRA Core 7.0 or later, or JIRA Service Desk 3.0 or later. Choose this option as an alternative to Atlassian
Crowd, for simple configurations with a limited number of users.
To connect Confluence to a Jira application:
1. In your Jira application go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
2.
Confluence 6.15 Documentation 69
3. In order to use Confluence, users must be a member of the confluence-users group or have
Confluence 'can use' permission. Follow these steps to configure your Confluence groups in your JIRA
application:
a. Add the confluence-users and confluence-administrators groups in your JIRA
application.
b. Add your own username as a member of both of the above groups.
c. Choose one of the following methods to give your existing JIRA users access to Confluence:
Option 1: In your JIRA application, find the groups that the relevant users belong to. Add
the groups as members of one or both of the above Confluence groups.
Option 2: Log in to Confluence using your JIRA account and go to the Confluence Admi
nistration Console. Click 'Global Permissions' and assign the 'can use' permission to
the relevant JIRA groups.
4. In Confluence you can now define the directory order by clicking the blue up- and down-arrows next
to each directory on the 'User Directories' screen. Here is a summary of how the directory order
affects the processing:
The order of the directories is the order in which they will be searched for users and groups.
Changes to users and groups will be made only in the first directory where the application has
permission to make changes.
For details see Managing Multiple Directories.
Ensure that you have added Confluence URL into Jira Whitelist in Jira Administration >>
System >> Security >> Whitelist. For example: https://confluence.atlassian.com/ or refer to
this guide: Configuring the whitelist.
Setting Description
Name A meaningful name that will help you to identify this Jira server in the list of directory
servers. Examples:
Jira Service Desk Server
My Company Jira
Application The name used by your application when accessing the Jira server that acts as user
Name manager. Note that you will also need to define your application to that Jira server, via the '
Other Applications' option in the 'Users, Groups & Roles' section of the 'Administration'
menu.
Application The password used by your application when accessing the Jira server that acts as user
Password manager.
Jira Permissions
Setting Description
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 70
Read Only The users, groups and memberships in this directory are retrieved from the Jira server that
is acting as user manager. They can only be modified via that JIRA server.
Read/Write The users, groups and memberships in this directory are retrieved from the Jira server that
is acting as user manager. When you modify a user, group or membership via the
application administration screens, the changes will be applied directly to Jira.
Setting Description
Enable Nested Enable or disable support for nested groups. Before enabling nested groups, please
Groups check to see if nested groups are enabled on the JIRA server that is acting as user
manager. When nested groups are enabled, you can define a group as a member of
another group. If you are using groups to manage permissions, you can create nested
groups to allow inheritance of permissions from one group to its sub-groups.
Synchronization Synchronization is the process by which the application updates its internal store of
Interval user data to agree with the data on the directory server. The application will send a
(minutes) request to your directory server every x minutes, where 'x' is the number specified
here. The default value is 60 minutes.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 71
Diagram above: Confluence, JIRA and other applications connecting to Crowd for user management.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 72
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 73
Diagram above: Confluence connecting to JIRA for user management, with JIRA in turn connecting to LDAP.
Troubleshooting
Below are some error messages you may encounter. If you run into problems, you should turn on WARN
logging for the relevant class. See Configuring Logging.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 74
error.jirabaseurl.not.valid This is not a valid url for A runtime exception has occured.
a Jira application. Refer to the Confluence log files
for further troubleshooting
information.
Use this option if you have only a few users and groups.
1. Log in to Confluence as a Confluence system administrator.
2. Go to the user directories administration screen and move the internal directory to the top of the list of
directories, by clicking the arrows in the 'Order' column.
3. Make sure that you have at least one user from the internal directory in each of the confluence-us
ers and confluence-administrators groups.
4. Make sure that you have a username in the internal directory with Confluence system administrator
permissions.
If you do not have such a user, add a new one now, and log out of Confluence.
Log back in as the user you just added, and go back to the user directories administration
screen.
5. Disable the 'Atlassian Crowd' directory.
6.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 75
6. Manually add the required users and groups in Confluence. They will be added to the internal
directory, because you have moved it to the top of the list of directories.
If you have assigned Confluence permissions to a group which exists in your Jira application,
you must create a group in Confluence with the same name.
If a user who exists in your Jira application has created content or has had permissions
assigned to them in Confluence, you must also create that user in Confluence.
7. Add the users to the required groups.
Option 2 – Transfer Crowd/Jira application Users and Groups to the Confluence Database
This method is not officially supported. The Atlassian Support team won't be able to assist you with
this process.
We strongly recommend trying this in a test environment, and then making a full backup of your
database before deciding to deploy the change in your production environment.
Use this option to migrate External Application (Crowd or Jira applications) users into the Confluence
database. You need a knowledge of SQL to perform this task.
The SQL commands given below are tailored for MySQL. If you are using a database other than MySQL,
you will need to modify the SQL to work in your database.
Creating backups is the only way to restore your data if something goes wrong.
1. From Confluence, create a full XML site backup including attachments.
2. Stop Confluence.
3. Make a backup copy of the Confluence home and installation directories.
4. Repeat the above steps for your External Application.
5. From your MySQL administration tool, create a database backup for the Crowd/Jira application and
Confluence databases.
Use the SQL below to move groups and users from your External Application to Confluence by transferring
table content. The SQL provided is specific to MySQL and must be modifed for other databases.
1. Run the following command and take note of the resulting number. It will be referenced throughout the
following instructions as <Confluence Internal ID>.
2. From the User Directories administration page, find the name of the directory who's users/groups you
want to move. Run the following command and take note of the resulting number. It will be referenced
throughout the following instructions as <External Application ID>.
Find and remove duplicate users who belong to the same group in multiple directories
To make sure you don't introduce duplicates in the next step, when you move groups to Confluence, use the
following SQL query to locate any users that belong to a group with the same name in both your external
directory and internal Confluence directory.
1. Run the following command to find any users with the same name, that belong to the same group
across different directories:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 76
1.
Make a note of each of the usernames and groups returned. You'll need this in the next step.
2. In your external directory, remove the users from their respective groups. Their membership will still
be retained in the Confluence internal directory.
3. Run the SQL query above again. Once it returns no results, you can move to the next step.
1. It is possible that you have several groups in your Internal Directory that have the same name as
groups in your External Application. To find these, run:
a. If you have results from the previous query, for each of the group names that have duplicates,
find the id for the group in the Confluence Internal Directory (<internal group id>) and the
External Application (<external group id>). Run the following:
2. Move all the groups in the External Application to the Confluence Internal Directory.
1. It is possible that you have several users in your Internal Directory that have the same name as users
in your External Application. To find these, run:
a. If you have results from the previous query, for each of the user names that have duplicates,
find the id for the user in the Confluence Internal Directory (<internal user id>) and the External
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation
a. 77
2. Move all the users in the External Application to the Confluence Internal Directory.
1. You need to change the order of your directories so that the Internal directory is at the top, and active.
a. If you have only two directories - the Internal and the External Application directory you are
deleting, then do the following:
b. If you have more than two directories, you need to rearrange them so the Internal Directory is at
the top (list_index 0) and the External Application directory you are deleting is at the bottom.
List the directories and their order using
Change the list indexes so that they are in the order you want. Directory order can be
rearranged using
2.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 78
2. When the directories are ordered correctly, delete the External Application directory from the directory
order:
3. The External Application directory is referenced in several other tables in the database. You need to
remove the remaining references to it:
4. All references to the External Directory should now have been removed. Delete the directory using:
Reset passwords
All users who were in the External Directory you deleted, including admins, will be unable to log in. Their
passwords need to be reset by choosing the 'Forgot your password?' link on the login page. Alternatively,
use the instructions at Restore Passwords To Recover Admin User Rights to reset the administrator
password, then set the users' passwords for them via the Manage Users page in the administration screen.
Overview
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 79
You can change the order of your directories as defined to Confluence. Select 'User Directories' from the
Confluence Administration Console and click the blue up- and down-arrows next to each directory.
Notes:
Please read the rest of this page to understand what effect the directory order will have on
authentication (login) and permissions in Confluence, and what happens when you update users and
groups in Confluence.
Before you move an external directory above Confluence's internal directory, make sure you (and your
admin users) are members of a group called confluence-administrators in your external
directory or you may accidentally lock yourself out of the Confluence admin console.
This section summarizes the effect the order of the directories will have on login and permissions, and on the
updating of users and groups.
Login
The directory order is significant during the authentication of the user, in cases where the same user exists in
multiple directories. When a user attempts to log in, the application will search the directories in the order
specified, and will use the credentials (password) of the first occurrence of the user to validate the login
attempt.
Permissions
The directory order is not significant when granting the user permissions based on group membership as
Confluence uses an aggregating membership scheme by default. If the same username exists in more than
one directory, the application will aggregate (combine) group membership from all directories where the
username appears.
Example:
You have connected two directories: The Customers directory and the Partners directory.
The Customers directory is first in the directory order.
A username jsmith exists in both the Customers directory and the Partners directory.
The user jsmith is a member of group G1 in the Customers directory and group G2 in the Partners
directory.
The user jsmith will have permissions based on membership of both G1 and G2 regardless of the
directory order.
For administrators upgrading to Confluence 5.7 or later:
How group memberships are determined for users that belong to multiple user directories (such as LDAP,
Active Directory, Crowd) changed in Confluence 5.7. Group memberships are now aggregated from all direct
ories, not the first one the user appears in. In most cases, this change will have no impact as users generally
only exist in one directory, or their memberships are correctly synchronized between user directories. In
some rare cases, where group memberships are out of synch, the change may lead to users gaining
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 80
permissions to view spaces and pages (if they are a member a group in a user directory that was previously
being ignored by Confluence).
Here's an example scenario...
This is Issac. Something went wrong a while ago, so he's got the same username in two user
directories, but belongs to different groups.
Right now, the user directories in his organization's Confluence site look like this:
This means after the 5.7 upgrade he can see any pages and spaces that are restricted to the 'developers'
group.
Non-aggregating membership
It is possible to use the REST API to tell Confluence to use a non-aggregating membership scheme as
follows:
Turning on non-aggregating membership...
The REST resource supported JSON and XML. You'll need to be a system administrator and logged in to
do this.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 81
If you've chosen non-aggregating membership, the directory order is significant. If the same username exists
in more than one directory, the application will look for group membership only in the first directory where the
username appears, based on the directory order.
Example:
You have connected two directories: The Customers directory and the Partners directory.
The Customers directory is first in the directory order.
A username jsmith exists in both the Customers directory and the Partners directory.
The user jsmith is a member of group G1 in the Customers directory and group G2 in the Partners
directory.
The user jsmith will have permissions based on membership of G1 only, not G2.
If you update a user or group via the application's administration screens, the update will be made in the first
directory where the application has write permissions.
Example 1:
You have connected two directories: The Customers directory and the Partners directory.
The application has permission to update both directories.
The Customers directory is first in the directory order.
A username jsmith exists in both the Customers directory and the Partners directory.
You update the email address of user jsmith via the application's administration screens.
The email address will be updated in the Customers directory only, not the Partners directory.
Example 2:
You have connected two directories: A read/write LDAP directory and the internal directory.
The LDAP directory is first in the directory order.
All new users will be added to the LDAP directory. It is not possible to add a new user to the internal
directory.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 82
This section explains how nested groups affect logging in, permissions, and viewing and updating users and
groups.
Login
When a user logs in, they can access the application if they belong to an authorized group or any of its
sub-groups.
Permissions
The user can access a function if they belong to a group that has the necessary permissions, or if they
belong to any of its sub-groups.
If you ask to view the members of a group, you will see all users who are members of the group and all users
belonging its sub-groups, consolidated into one list. We call this a flattened list.
You can't view or edit the nested groups themselves, or see that one group is a member of another group.
If you add a user to a group, the user is added to the named group and not to any other groups.
If you try to remove a user from a flattened list, the following will happen:
If the user is a member of the top group in the hierarchy of groups in the flattened list, the user is
removed from the top group.
Otherwise, you see an error message stating that the user is not a direct member of the group.
Examples
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 83
Memberships:
The marketing group is a member of the staff group.
User jsmith is a member of marketing.
You will see that jsmith is a member of both marketing and staff. You will not see that the two groups are
nested. If you assign permissions to the staff group, then jsmith will get those permissions.
In an LDAP directory server, we have the groups engineering-group and techwriters-group. We want to
grant both groups developer-level access to the JIRA. We will have a group called jira-developers that has
developer-level access.
Add a group called jira-developers.
Add the engineering-group as a sub-group of jira-developers.
Add the techwriters-group as a sub-group of jira-developers.
Group memberships are now:
jira-developers — sub-groups: engineering-group, techwriters-group
engineering-group — sub-groups: dev-a, dev-b; users: pblack
dev-a — users: jsmith, sbrown
dev-b — users: jsmith, dblue
techwriters-group — users: rgreen
When the JIRA application requests a list of users in the jira-developers group, it receives the following list:
pblack
jsmith
sbrown
dblue
rgreen
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 84
Notes
Possible impact on performance. Enabling nested groups may result in slower user searches.
Definition of nested groups in LDAP. In an LDAP directory, a nested group is a child group entry
whose DN (Distinguished Name) is referenced by an attribute contained within a parent group entry.
For example, a parent group Group One might have an objectClass=group attribute and one or
more member=DN attributes, where the DN can be that of a user or that of a group elsewhere in the
LDAP tree:
member=CN=John Smith,OU=Users,OU=OrgUnitA,DC=sub,DC=domain
member=CN=Group
Two,OU=OrgUnitBGroups,OU=OrgUnitB,DC=sub,DC=domain
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 85
On this page:
Affected Directory Types
How it Works
Finding the Time Taken to
Synchronize
Manually Synchronizing the Cache
Configuring the Synchronization
Interval
Unsynced users
Related pages:
Configuring User Directories
Data caching and synchronization apply to the following user directory types:
LDAP (Microsoft Active Directory and all supported LDAP directories) where permissions are set to re
ad only.
LDAP (Microsoft Active Directory and all supported LDAP directories) where permissions are set to re
ad only, with local groups.
LDAP (Microsoft Active Directory and all supported LDAP directories) where permissions are set to re
ad/write.
Atlassian Crowd.
Atlassian JIRA.
Data caching and synchronization do not occur for the following user directory types:
Internal Directory with LDAP Authentication.
Internal Directory.
How it Works
The 'User Directories' screen shows information about the last synchronization operation, including the
length of time it took.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 86
You can manually synchronize the cache by clicking 'Synchronize' on the 'User Directories' screen. If a
synchronization operation is already in progress, you cannot start another until the first has finished.
Screen snippet: User directories, showing information about synchronization
Note: The option to configure the synchronization interval for Crowd and Jira directories is available in Confl
uence 3.5.3 and later. Earlier versions of Confluence allow you to configure the interval for LDAP directories
only.
You can set the 'Synchronization Interval' on the directory configuration screen. The synchronization
interval is the period of time to wait between requests for updates from the directory server.
The length you choose for your synchronization interval depends on:
The length of time you can tolerate stale data.
The amount of load you want to put on the application and the directory server.
The size of your user base.
If you synchronize more frequently, then your data will be more up to date. The downside of synchronizing
more frequently is that you may overload your server with requests.
If you are not sure what to do, we recommend that you start with an interval of 60 minutes (this is the default
setting) and reduce the value incrementally. You will need to experiment with your setup.
Unsynced users
To view users who have previously been synchronized with Confluence, but were not present in the last
directory sync, go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 87
Related pages:
Diagram above: Confluence using its internal directory for user management.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 88
Diagram above: Confluence connecting to an LDAP directory with permissions set to read only and local
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 89
groups.
Diagram above: Confluence connecting to an LDAP directory for authentication only, with each user
synchronized with the internal directory that is using LDAP authentication when they log in to Confluence.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 90
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 91
Diagram above: Confluence connecting to JIRA for user management, with JIRA in turn connecting to LDAP.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 92
Diagram above: Confluence, JIRA and other applications connecting to Crowd for user management.
General Recommendations
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 93
Please consider the following limitations and recommendations when connecting to an LDAP user directory.
The connection to your LDAP directory provides powerful and flexible support for connecting to, configuring
and managing LDAP directory servers. To achieve optimal performance, a background synchronization task
loads the required users and groups from the LDAP server into the application's database, and periodically
fetches updates from the LDAP server to keep the data in step. The amount of time needed to copy the users
and groups rises with the number of users, groups, and group memberships. For that reason, we
recommended a maximum number of users and groups as described below.
This recommendation affects connections to LDAP directories:
Microsoft Active Directory
All other LDAP directory servers
The following LDAP configurations are not affected:
Internal directories with LDAP authentication
LDAP directories configured for 'Authentication Only, Copy User On First Login'
Please choose one of the following solutions, depending on the number of users, groups and memberships
in your LDAP directory.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 94
Up to 10 000 (ten thousand) Choose the 'LDAP' or 'Microsoft Active Directory' directory type.
users, 1000 (one thousand) You can make use of the full synchronization option. Your application's
groups, and 20 (twenty) groups database will contain all the users and groups that are in your LDAP
per user server.
More than the above Use LDAP filters to reduce the number of users and groups visible to
the synchronization task.
We performed internal testing of synchronization with an AD server on our local network consisting of 10 000
users, 1000 groups and 200 000 memberships.
We found that the initial synchronization took about 5 minutes. Subsequent synchronizations with 100
modifications on the AD server took a couple of seconds to complete.
Please keep in mind that a number of factors come into play when trying to tune the performance of the
synchronization process, including:
Size of userbase. Use LDAP filters to keep this to the minimum that suits your requirements.
Type of LDAP server. We currently support change detection in AD, so subsequent synchronizations
are much faster for AD than for other LDAP servers.
Network topology. The further away your LDAP server is from your application server, the more
latent LDAP queries will be.
Database performance. As the synchronization process caches data in the database, the
performance of your database will affect the performance of the synchronization.
JVM heap size. If your heap size is too small for your userbase, you may experience heavy garbage
collection during the synchronization process which could in turn slow down the synchronization.
The LDAP connections do not support the configuration of two or more LDAP servers for redundancy
(automated failover if one of the servers goes down).
When the application synchronizes with Active Directory (AD), the synchronization task requests only the
changes from the LDAP server rather than the entire user base. This optimizes the synchronization process
and gives much faster performance on the second and subsequent requests.
On the other hand, this synchronization method results in a few limitations:
1. Externally moving objects out of scope or renaming objects causes problems in AD. If you
move objects out of scope in AD, this will result in an inconsistent cache. We recommend that you do
not use the external LDAP directory interface to move objects out of the scope of the sub-tree, as
defined on the application's directory configuration screen. If you do need to make structural changes
to your LDAP directory, manually synchronize the directory cache after you have made the changes to
ensure cache consistency.
2. Synchronizing between AD servers is not supported. Microsoft Active Directory does not replicate
the uSNChanged attribute across instances. For that reason, we do not support connecting to different
AD servers for synchronization. (You can of course define multiple different directories, each pointing
to its own respective AD server.)
3. Synchronizing with AD servers behind a load balancer is not supported. As with synchronizing
between two different AD servers, Microsoft Active Directory does not replicate the uSNChanged
attribute across instances. For that reason, we do not support connecting to different AD servers even
when they are load balanced. You will need to select one server (preferably one that is local) to
synchronize with instead of using the load balancer.
4. You must restart the application after restoring AD from backup. On restoring from backup of an
AD server, the uSNChanged timestamps are reverted to the backup time. To avoid the resulting
confusion, you will need to flush the directory cache after a Active Directory restore operation.
5. Obtaining AD object deletions requires administrator access. Active Directory stores deleted
objects in a special container called cn=Deleted Objects. By default, to access this container you need
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence
5. 6.15 Documentation 95
to connect as an administrator and so, for the synchronization task to be aware of deletions, you must
use administrator credentials. Alternatively, it is possible to change the permissions on the cn=Deleted
Objects container. If you wish to do so, please see this Microsoft KB article.
6. The User DN used to connect to AD must be able to see the uSNChanged attribute. The
synchronization task relies on the uSNChanged attribute to detect changes, and so must be in the
appropriate AD security groups to see this attribute for all LDAP objects in the subtree.
Please consider the following limitations and recommendations when connecting to a JIRA server for user
management.
When you connect to a JIRA application for user management, you will not have single sign-on across the
applications connected in this way. JIRA, when acting as a directory manager, does not support SSO.
JIRA applications, Confluence, FishEye, Crucible and Bamboo can connect to a JIRA server for user
management. Custom application connectors will need to use the new REST API.
Earlier versions of JIRA supported OSUser Providers. It was therefore possible write a special provider to
obtain user information from any external user directory. This is no longer the case.
If your JIRA instance is already under high load, then using it as a User Server will increase that load.
You cannot use JIRA Cloud applications to manage standalone users. Cloud users and users within your
self-hosted Atlassian applications need to be managed separately.
Recommendations
If all the following are true: Your environment meets the optimal requirements for
using a JIRA application for user management.
Your JIRA application is not under high
load.
You want to share user and group
management across just a few
applications, such as one JIRA Software
server and one Confluence server, or two
JIRA servers.
You do not need single sign-on (SSO)
between your JIRA application and
Confluence, or between two JIRA servers.
You do not have custom application
connectors. Or, if you do have them, you
are happy to convert them to use the new
REST API.
You are happy to shut down all your
servers when you need to upgrade your
JIRA application.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 96
If one or more of the following are true: We recommend that you install Atlassian Crowd for
user management and SSO.
If your JIRA application is already under
high load.
You want to share user and group
management across more than 5
applications.
You need single sign-on (SSO) across
multiple applications.
You have custom applications integrated
via the Crowd SOAP API, and you cannot
convert them to use the new REST API.
You are not happy to shut down all your
servers when you need to upgrade JIRA.
If you are considering creating a custom Please see if one of the following solutions will work
directory connector to define your own storage for you:
for users and groups...
If you have written a custom provider to support a
specific LDAP schema, please check the
supported LDAP schemas to see if you can use
one of them instead.
If you have written a custom provider to support
nested groups, please consider enabling nested
groups in the supported directory connectors
instead.
If you have written a custom provider to connect to
your own database, please consider loading the
data into the application's database instead.
If you need to keep the custom directory
connection, please consider whether Atlassian
Crowd meets your requirements. See the
documentation on Creating a Custom Directory
Connector.
The configuration screen for external directories in Confluence has a 'Test Settings' button. This will help
you to diagnose problems with user management in Active Directory and other LDAP servers.
To test your directory connection:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 97
1.
Confluence Server
If you have implemented a custom authenticator or in any way modified seraph-config.xml or ser
aph-paths.xml, please provide the modified file.
Diagnostics
###
# Atlassian User
###
#log4j.logger.com.atlassian.user=DEBUG
#log4j.logger.com.atlassian.confluence.user=DEBUG
#log4j.logger.bucket.user=DEBUG
#log4j.logger.com.atlassian.seraph=DEBUG
#log4j.logger.com.opensymphony.user=DEBUG
Remove the '#' signs at the beginning of the lines, so that it looks like this:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 98
###
# Atlassian User
###
log4j.logger.com.atlassian.user=DEBUG
log4j.logger.com.atlassian.confluence.user=DEBUG
log4j.logger.bucket.user=DEBUG
log4j.logger.com.atlassian.seraph=DEBUG
log4j.logger.com.opensymphony.user=DEBUG
After enabling both the above, please attempt a Confluence LDAP account login and attach a copy of
the log files that are produced when the problem occurs. To do this, locate your install directory, then
zip the full /logs directory into a single file for us to examine.The logs directory is located in your
Confluence Home directory.
In some circumstances you may want to disable Confluence's built in user management, and delegate all user
management to an external application, such as Jira Software or Jira Service Desk. You can disable internal
user management by turning on Confluence's External User Management setting. You'll need to be a system
administrator to do this.
You might disable Confluence's internal user management:
When Crowd's directory permissions are configured so that Confluence cannot update the Crowd
directories (as a system error will occur when Confluence attempts to write data into Crowd). See Connec
ting to Crowd or Jira for User Management for more information.
If you are using a Jira application for user management. This centralizes all user management in that Jira
app. See Connecting to Crowd or Jira for User Management.
To disable management of users and groups within Confluence:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 99
SAML single sign-on should work with any identity provider implementing the SAML 2.0 Web Browser SSO
Profile, using the HTTP POST binding.
We currently perform tests with the following identity providers:
Microsoft Active Directory (using ADFS 3.0)
Microsoft Azure Active Directory
OneLogin
Okta
PingIdentity
You'll need to configure your application and your IdP to provide single sign-on for your users.
Set up SSL/TLS
To make sure that SAML authentication is secure and private, you need to set up SSL/TLS in the application.
See Running Confluence Over SSL or HTTPS for more information.
Once set up, you need to make sure that the application's configured base URL is using the HTTPS protocol.
If you want to use a reverse proxy, check out the following guides:
Proxying Atlassian server applications with Apache HTTP Server (mod_proxy_http)
Securing your Atlassian applications with Apache using SSL
When using a reverse proxy that terminates SSL/TLS, you need to make sure that the request URL the
application server sees matches the fully-qualified domain name for the reverse proxy. This is usually
achieved by configuring the <Connector> directive with the appropriate proxyName, proxyPort, secure and sc
heme settings. Please check the documentation above for specific examples.
If you want Confluence to provide SSO, you'll need to add it to your IdP. The exact process varies depending
on the IdP, but you'll usually need to:
Define an 'application' in your IdP
Provide some data about the application, including data you can access on your application's Authenti
cation screen
Make sure the NameID attribute of the users in your IdP is set to the username in your Atlassian
application
Give the appropriate users permission to use the application
At the end of the setup process your IdP will provide you with a set of data that you'll need to configure your
Atlassian application.
Setting Notes
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 100
Single This value is provided by your IdP, as part of setting up SAML. It's sometimes also
sign-on called 'Entity ID'
issuer
The issuer is the IdP your application will be accepting authentication requests from
X.509 This value is provided by your IdP, as part of setting up SAML. This is sometimes
Certificate referred to as a 'Signing certificate'. The key usually starts with '-----BEGIN
CERTIFICATE-----'.
This contains the public key we'll use to verify that all received SAML authentication
requests have been issued by your IdP.
Login This defines how your users can use single-sign on. The options are:
mode
Use SAML as secondary authentication – the default way to log in will be the
standard application login form. You can log in using SAML if you go to your IdP
and select your application, or by using the this URL to log in: BASE-URL/plugin
s/servlet/external-login. We recommended this method so you can test that
everything is configured correctly, and that users can log in using SSO.
Use SAML as primary authentication – in this mode, all browser-based users
will be redirected from the application's login screen to the IdP to log in. It's still
possible to authenticate by:
Basic Auth
Form-based auth via dedicated REST endpoint
Existing Remember Me tokens
You should only enable this mode once you've verified that SAML
authentication is working as expected.
Remember When checked, successful user logins will be remembered in the user's browser.
user logins When browsing to their application, users will be logged in automatically without
having to authenticate again using SAML.
Confluence Data Center uses 'remember me' to enable users to move seamlessly
between nodes. Turning Remember user logins off in this screen can override this
Confluence behaviour and lead to users needing to log in again each time they
move to another node. We recommend keeping Remember user logins enabled.
3. The following information is provided on the Authentication screen, and will be required to configure
your IdP:
Assertion Consumer Service This is the URL the IdP will return SAML authentication requests
URL to.
Audience URL (Entity ID) This is the URL the IdP will prepare SAML authentication
requests for.
Best practices
SAML authentication requests are only valid for a limited time. You should make sure the clocks on
the server running your application/s and the IdP are synchronised.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 101
If users and groups in your application are configured using User Directories, you'll usually want to use
the same LDAP directory to be the source of users for both your IdP and Atlassian application. Users
need to exist in the user directory before they can log in using SSO.
Troubleshooting
If you make a mistake configuring the SAML authentication, or are unable to log in using your IdP, you
can restore login form authentication by using issuing a DELETE request (using a username and
password for an administrator configured in your user directory):
If an authentication error occurs, the user will only see basic details about what went wrong. For
security reasons, the details about the underlying problem are not shown. You'll need to check the
application logs to see the cause of the problem.
In some cases you might also experience errors shown by your IdP. For those you will need to use the
support and tools provided by your IdP, rather than Atlassian support.
When using SAML as primary authentication and you have CAPTCHA enabled in the
application, users that use HTTP basic authentication (for example in REST resource calls) may get
locked out if they enter an incorrect password too many times. In these cases, an administrator will
need to reset the user's CAPTCHA in the user list screen.
System and Marketplace apps are managed via the Universal Plugin Manager (known as the UPM). The UPM
can be found in most Atlassian applications, and provides a consistent experience for administering apps. To
visit the UPM, go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 102
You can disable or unsubscribe from user installed apps that are no longer being used on your site. See Disablin
g and enabling apps to find out how to do this.
Once the app is disabled, its features are immediately unavailable. If the app included macros, pages that
contained those macros will show an 'unknown macro' error. To avoid this, you can check which macros are
being used on your site before disabling an app by checking the macro usage statistics.
Go to
Macro name This is the name of the macro, as it appears in the code.
Visibility This controls who can see this macro in the macro browser or auto-complete. Options
are:
Visible to all users
Visible only to system administrators
Note that if you select Visible only to system administrators, users will still see the
output of the macro on a page, and the macro placeholder will still be visible when a
user edits a page. It is only hidden in the macro browser and autocomplete.
All macro information is discoverable, including the macro title, description, parameter
names and other metadata. Do not include confidential data anywhere in the
definition of a user macro, even if it is marked as visible only to system
administrators.
Macro Title This is the title that will appear in the macro browser and auto-complete.
Description This is the description that will appear in the macro browser. The macro browser's
search will pick up matches in both the title and description.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 103
Categories Select one or more macro browser categories for your macro to appear in.
Documentation If you have documentation for your macro, enter the URL here.
URL
Macro Body Specify how Confluence should process the body before passing it to your macro.
Processing
The macro body is the content that is displayed on a Confluence page. If your macro
has a body, any body content that the user enters will be available to the macro in
the $body variable.
Template This is where you write the code that determines what the macro should do.
Use HTML and Confluence-specific XML elements in the macro template.
You can use the Velocity templating language. Here is more information on the
Velocity project.
If your macro has a body, your template can refer to the macro body text by
specifying '$body'.
Each parameter variable you use must have a matching metadata definition. Use
@param to define metadata for your macro parameters.
When using the information passed using parameters, refer to your parameters
as $paramXXX where 'XXX' is the parameter name that you specifed in the @par
am metadata definition.
Use @noparams if your macro does not accept parameters.
See User Macro Template Syntax for more information and examples.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 104
Best practices
This section contains tips and suggestions for best practices when creating your own user macros.
We recommend that you include a short description as a comment at the top of the Template field as shown
below.
The macro browser is the easiest way for users to configure your macro. You can specify the macro
category, link to an icon, define the parameters that the macro browser will use to prompt the user for
information, and more.
As you can't guarantee that a user has supplied parameters, one of the first things to do in the macro is
check that you have received some value if you expect to rely on it later on in the macro code.
In the example below, the macro expects three parameters, and substitutes sensible defaults if they are not
supplied.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 105
#set($spacekey= $paramspacekey)
#set($numthreads= $paramnumthreads)
#set($numchars= $paramnumchars)
We recommend thoroughly testing your user macro with a number of permission scenarios, such as
restricted pages and space permissions to avoid inadvertently displaying content that a user has no
permission to see. See User Macro Template Syntax for more information.
Field Value
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 106
Template Enter the code below in the template field - this example will print the text
straight onto the page.
## @noparams
Hello World!
$body
If you wanted the text to appear in a panel you could include the relevant AUI
message class as shown here.
## @noparams
<div class="aui-message closeable">
Hello World!
$body
</div>
Now you can add the macro to your Confluence page using the Macro Browser, or by typing {hello in the
editor and selecting the macro from the list of suggestions.
NoPrint
This example demonstrates how to create a user macro that can contain text that is visible when viewing
a page, but does not print.
Field Value
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 107
## @noparams
<div class="noprint">$body</div>
Now you can add the macro to your Confluence page using the Macro Browser. Text entered into the
body of the macro placeholder will not be printed, but will appear when the page is viewed online.
Field Value
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 108
Template Enter the code below in the template field. If your macro requires more than one
parameter, you can use variables $param0 to $param9 to represent them.
## @param 0:title=colour|type=string
## @param 1:title=size|type=string
<span style="color: $param0; font-size:
$param1">$body</span>
Alternatively, you can also use explicitly-named parameters in your macro. These
macro parameters will appear as variables with the name $param<x> where <x>
is the name of your parameter.
## @param Colour:title=colour|type=string
## @param Size:title=size|type=string
<span style="color: $paramColour; font-size:
$paramSize">$body</span>
Formatted Panel
This example demonstrates how to write a user macro that creates a panel that is preformatted with
specific colors. It will create a panel that looks like this:
(Title)
Note: The panel's title will be empty if the user does not give a value for the title parameter.
Field Value
Categories Formatting
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 109
Template Enter the code below in the template field. See below for a more detailed explanation of the code b
## @param Title:title=Title|type=string|desc=Title
<ac:structured-macro ac:name="panel">
<ac:parameter ac:name="titleBGColor">#ccc</ac:parameter>
<ac:parameter ac:name="borderStyle">solid</ac:parameter>
<ac:parameter ac:name="borderColor">#6699CC</ac:parameter>
<ac:parameter ac:name="borderWidth">2</ac:parameter>
<ac:parameter ac:name="titleColor">#000000</ac:parameter>
<ac:parameter ac:name="title">$!paramTitle</ac:parameter>
<ac:rich-text-body>$body</ac:rich-text-body>
</ac:structured-macro>
Item Description
defines the
parameter title that
will appear in the
macro browser as
"Title".
type=string
defines the
description of the
parameter in the
macro browser.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 110
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 111
From Matthew
You can specify parameters for your macro, so that users can pass it information to determine its behavior on
a Confluence page.
When adding a macro to a Confluence page, the macro browser will display an input field for each macro
parameter. The field type is determined by the parameter type you specify.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 112
Additional notes:
The order of the parameters in the template determines the order in which the macro browser displays
the parameters.
We recommend that you define the parameters at the top of the template.
There may be additional attributes, depending on the parameter type you specify.
The sections below describe each of the attributes in detail.
(an A unique name for the parameter. The parameter name is the first Required
unnamed, attribute in the list. The name attribute itself does not have a name. See
first the section on name below.
attribute)
title The parameter title will appear in the macro browser. If you do not Recommended
specify a title, Confluence will use the parameter name.
type The field type for the parameter. See the section on type below. Recommended
desc The parameter description will appear in the macro browser. Optional
required Specifies whether the user must enter information for this parameter. Optional
Defaults to false.
multiple Specifies whether the parameter accepts multiple values. Defaults to Optional
false.
Parameter name
The parameter name is the first attribute in the list. The name attribute itself does not have a name.
Example: The following code defines 2 parameters, named 'foo' and 'bar':
## @param foo
## @param bar
Parameter type
The field type for the parameter. If you do not specify a type, the default is string.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 113
boolean Displays a checkbox to the user and passes the value 'true' or 'false' to the macro as a string.
enum Offers a list of values for selection. You can specify the values to appear in a dropdown in the macro
browser. Example of specifying the enum values:
## @param
colour:title=Colour|type=enum|enumValues=Grey,Red,Yellow,Green
Note about i18n: Confluence does not support internationalization of the enum values.The value the
user sees is the one passed to the macro as the parameter value, with the capitalization given. In th
case 'Grey', 'Red', etc.
string A text field. This is the default type. Example with a required field:
## @param
status:title=Status|type=string|required=true|desc=Status to
display
confluence-content Offers a control allowing the user to search for a page or blog post. Example:
## @param
page:title=Page|type=confluence-content|required=true|desc=Select
a page do use
spacekey Offers a list of spaces for selection. Passes the space key to the macro. Example:
## @param space:title=Space|type=spacekey
date Confluence accepts this type, but currently treats it in the same way as 'string'. Example:
Note about dates: A user can enter a date in any format, you should validate the date format in your
user macro.
int Confluence accepts this type, but treats it in the same way as 'string'. Example with a default value:
## @param numPosts:title=Number of
Posts|type=int|default=15|desc=Number of posts to display
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 114
percentage Confluence accepts this type, but treats it in the same way as 'string'. Example:
## @param pcent:title=Percentage|type=percentage|desc=Number of
posts to display
The parameters are available in your template as $paramfoo, $parambar for parameters named "foo" and
"bar".
Normally, a parameter like $paramfoo that is missing will appear as '$paramfoo' in the output. To display
nothing when a parameter is not set, use an exclamation mark after the dollar sign like this: $!paramfoo
Using no parameters
If your macro does not accept parameters, you should use @noparams in your template.
If the user macro contains no parameters and does not specify @noparams, then the macro browser will
display a free-format text box allowing users to enter undefined parameters. This can be confusing if the
macro does not accept parameters.
Example: Add the following line at the top of your template:
## @noparams
Including the macro body and parameters, the following Confluence objects are available to the macro:
$body The body of the macro (if the macro has a body) String
$space The Space object that this content object (page, blog Space
post, etc) is located in (if relevant).
Macros can also access objects available in the default Velocity context, as described in the developer
documentation.
Security consideration
When creating a User Macro you should avoid using $content.getChildren() or $content.ge
tDescendants() as these methods will list all pages, regardless of page restrictions or space
permissions. This may lead to page viewers seeing pages that they do not have permission to see.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 115
We also recommend thoroughly testing your user macro with a number of permission scenarios,
such as restricted pages and space permissions.
You can determine which macro parameters should appear in the placeholder in the Confluence editor.
By default as many parameters as can fit will be displayed in the placeholder, as shown here:
You can control which parameters you want to display here, to ensure the most relevant information is visible
to the author.
For example, the Confluence Warning macro has two parameters, title and icon. We consider title to be the
most interesting parameter, so we have configured the Warning macro to show only the value of the title para
meter.
Let's assume an author adds the Warning macro to a page, and gives it a title of 'The title of the warning'.
The macro configuration leads to a placeholder as shown here:
To configure the macro placeholder for a user macro, you will add attributes to the @param entry in the
template.
For example, if our Warning macro is a user macro, the configuration for the title parameter is as follows:
## @param
title:type=string|option-showNameInPlaceholder=false|option-showValue
InPlaceholder=true
The attribute showNameInPlaceholder specifies that the title parameter's name should not be shown.
The attribute showValueInPlaceholder specifies that the title parameter's value should be shown.
If none of the parameters in a macro include any of the above attributes, then the default behavior is to show
all the parameters that fit in the placeholder: full title and value.
If one or more parameters has either attribute set, then all parameters that do not include the attributes will
default to false (that is, they will not be shown).
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 116
Related pages:
Integrating Confluence with Other Applications
Tracking Customizations Made to your
Confluence Installation
Confluence administrator's guide
Changes you make to the whole site will also apply Working With Decorator Macros
to all spaces that are inheriting the global look and Customizing a Specific Page
feel. Users with space administrator permissions Upgrading Customized Site and
can further customize the appearance of a Space Layouts
space and override the global look and feel for that
space. See Customize your Space for more.
If you want more control, you can choose to use an ordinary Confluence page as your site landing page,
instead of sending people to the dashboard. See Configuring the Site Home Page to find out more.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 117
Using a page instead of the dashboard can be useful if most people will be reading, rather than creating,
pages in your site. However, for sites where you want to encourage teams to collaborate, the dashboard
provides the best tools for resuming work in progress and keeping up with what is happening in the site.
Advanced customizations
You can further customize the dashboard by editing the global layout file. See Customizing Site and Space
Layouts for more information on how to do this. You'll need some knowledge of Velocity to modify the layout
files.
There are two locations that you can add content to:
Web panels added to atl.dashboard.secondary will appear below the site welcome message.
Web items added to system.dashboard.button will appear next to the Create space and Invite
users button at the top right of the dashboard.
If you modify layouts in Confluence you will need to reapply your modifications each time you upgrade
Confluence. The more dramatic your customizations are, the harder it may be to reapply the changes when
upgrading. See Upgrading Customized Site and Space Layouts to find out what will be involved before
modifying the layouts.
The Site Logo appears in the header and is visible throughout Confluence. You need Confluence
Administrator permissions to change the site logo.
To change the site logo:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 118
4.
display in the header.
5. Choose Save.
Confluence's Auto Look and Feel will detect the colors in your new logo, and change the site color scheme to
match.
If you would prefer to use the default color scheme with your custom logo go to
> General Configuration > Color Scheme > Edit and then choose Reset to revert back to the default
scheme.
1. Site logo: auto look and feel has updated the header colours to complement the logo.
2. Site title: this is the name of your site.
You can also change the site favicon (the icon that appears in your browser tab). You need Confluence
Administrator permissions to do this.
1. Go to
The Space Logo appears in the sidebar and as an icon in the Sites Directory. The default space logo applies
to all spaces that do not have a custom space logo applied - see Configure the Sidebar.
You need to be a Confluence Administrator to change the default space logo.
To change the default space logo:
1. Go to
Space Administrators can change the logo for their space. This overrides the default space logo and any cha
nges to the default space logo will not appear in these spaces. See example above - 'Sample Space' has a
custom logo.
See see Configure the Sidebar to find out how to change the logo in a specific space.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 119
Confluence administrators can configure a new color scheme for the site. On this page
The default color scheme for the site will also become the default for all Reset your
spaces within it. color
scheme
To change the site's color scheme:
after
1. Choose the cog icon uploading
a site logo
, then choose General Configuration Related pages:
2. Choose Color Scheme in the left-hand panel
3. Click Edit Changing
4. Enter standard HTML/CSS2 color codes, or use the color-picker the Look
and Feel of
to choose a new color from the palette provided. Confluenc
5. Hit Save e
Any changes you make will immediately be reflected across the Confluence
site.
When you upload a site logo, Confluence automatically detects the colors in your logo and customizes the
color scheme for you.
You can change the color scheme as above, or reset your color scheme back to the default (and still keep
your new site logo).
To reset the color scheme:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 120
If you are not familiar with CSS, see the links in the CSS Resources section below. You should spend some
time to become confident with Cascading Style Sheets before you start editing your Confluence style sheets.
Security
Custom CSS can be used to inject scripts into a page, opening the risk of cross-site scripting (XSS) attacks.
With this feature enabled, space administrators could upload styles that steal other users' login credentials,
trick their browsers into performing actions on the wiki without their knowledge, or even obtain global
administration privileges. As such, this feature is disabled by default. Confluence administrators should only
enable custom CSS if they are comfortable with the risks listed in this paragraph.
Scaling
Each page needs to scale. Depending on the resolution of the user's screen, the content should render
intelligently. Your designs needs to degrade gracefully. Try resizing each page that exists in Confluence.
There are quite a few pages in the browse-space-section, like drafts, labels, page hierarchy, and so on. Your
style has to work everywhere, not just in the first page you happen to be looking at.
It is easy to turn off certain links, headers, or even menu items by simply setting their style to 'hidden'. This
can help you to roll out Confluence to users that may not be very Wiki-savvy yet. The simpler the UI, the
easier it may be for them to use. However, please remember that removing the link to a part of the
application does not mean that the functionality is not available. Every user can still change their style from
within their browsers, or access the URL directly. Don't rely on CSS to disable parts of Confluence.
Users familiar with Confluence will expect to find the same controls that they are accustomed to. Removing
buttons or controls from the interface is not advised as it may frustrate your users and cause them to
circumvent your design by using direct URL access, as mentioned above.
Any CSS styling applied to your site will not be applied to the Administration console. This is to ensure
changes to CSS do not prevent administrators from accessing Admin functions in future.
Be aware of any plans to upgrade your Confluence instance. Future versions of Confluence may not be
compatible with your custom CSS — this may cause your CSS to break, requiring maintenance when
Confluence is upgraded. Ask your Confluence administrator for more information.
As a rule you should test your modifications on the various web browsers supported by Confluence.
As creating custom CSS has potentially limitless possibilities, Atlassian will not support issues that are
caused by or related to CSS customization.
Getting Started
4.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 121
4. Save your changes. The new CSS will be visible on all content pages in the space.
To edit your global CSS stylesheet:
1. Choose
CSS Resources
The header is the menu area at the top of a default Confluence page where the Breadcrumb Links, Browse
menu, User menu and the Quick Search box reside. In this example, we are going to change the
background of the header to include a custom graphic.
1. Create a custom graphic. For this example, we created a custom header graphic of 1046 x 61 pixels.
2. Upload the custom graphic to a page in the space that you are customizing.
3. Note the page ID of the page where you uploaded the new graphic. (in this example, the page ID was '
658833839'.
4. Compose your custom CSS for the header. The example below loads the new graphic (called 'header.
png') from a specific page (denoted by page ID ' 658833839') in the same space.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
4.
Confluence 6.15 Documentation 122
#header .aui-header {
background-image:url('../download/attachments/658833839/header.p
ng');
background-repeat: no-repeat;
}
Notes
Note: By default, only system administrators can edit the CSS for a space or for the site. To allow any user
with Space Admin permissions to edit the CSS for a space, go to
> General Configuration > Security Configuration and select Custom Stylesheets for Spaces.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 123
In order to customize the fonts in Confluence, you first need to set the body font to the font you want.
Secondly, you may want to adjust the font size because different fonts have different relative sizes.
The relevant CSS is shown below. It changes Confluence's font from the default of Helvetica/Arial – sans
serif to Times/Times New Roman – serif. To adjust for the fact that Times is a bit smaller than Helvetica, we
increase the font size to 14 pixels. The many styles that 'wiki-content' in their definition are necessary to
change the font size for all the tags in the wiki content.
body {
font-family: Times, "Times New Roman", serif;
font-size: 14px;
}
.wiki-content,
.wiki-content p,
.wiki-content table,
.wiki-content tr,
.wiki-content td,
.wiki-content th,
.wiki-content ol,
.wiki-content ul,
.wiki-content li {
font-size: 14px;
}
Notes
Note: By default, only system administrators can edit the CSS for a space or for the site. To allow any user
with Space Admin permissions to edit the CSS for a space, go to
> General Configuration > Security Configuration and select Custom Stylesheets for Spaces.
Confluence comes with a single default theme installed, or you can Apply a
download and install other themes from The Atlassian Marketplace. Theme to
a Space
Once a theme is installed it can be applied to the whole site or to individual Applying a
spaces. Theme to
a Site
To see the themes installed in your site: Creating a
1. Go to Theme
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 124
will be applied by default to the new space. The space theme can then be
changed by anyone with by anyone with space administrator permissions for
that space.
Creating a Theme
If you want to create your own theme, you will need Related pages:
to write a Confluence plugin. Please refer to the
following pages in our developer documentation: Applying a Theme to a Site
Apply a Theme to a Space
Get started with plugin development.
Follow the developer's tutorial for writing a
Confluence theme.
Create a theme using the theme plugin
module.
When you edit a site layout, you'll be modifying the Related pages:
default decorators in every space in your site, except Velocity Template Overview
for those that have already been edited in a space. Basic Introduction to Velocity
See Customize Space Layouts for more information Customizing your Confluence Site
on how to edit the decorators for a single space.
You'll need System Administrator permissions to edit
site layouts.
If you modify layouts in Confluence you will need to reapply your modifications each time you
upgrade Confluence. The more dramatic your customizations are, the harder it may be to reapply the
changes when upgrading. See Upgrading Customized Site and Space Layouts to find out what will
be involved before modifying the layouts.
Confluence is built on top of the open source SiteMesh library, a web-page layout system.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 125
To edit the layout of Confluence, you will need to modify these decorator files. A decorator file is a .vmd file
and is written in Velocity. You can learn more from the Velocity User Guide.
Once you are familiar with Velocity, you can edit the decorator files to personalize the appearance of
Confluence.
The decorator files in Confluence are grouped into the following categories:
Site layouts: These are used to define the controls that surround each page in the site. For example,
the header, footer and dashboard.
Content layouts: These control the appearance of content such as pages and blog posts. They do
not change the way the pages themselves are displayed, but allow you to alter the way the
surrounding comments or attachments are displayed.
Export layouts: These control the appearance of spaces and pages when they are exported to
HTML.
When editing Custom Decorator Templates, there are a number of macros available to define complex or
variable parts of the page such as menus and breadcrumbs. You may insert these macros anywhere in your
templates. More information on Working With Decorator Macros.
Advanced customizations
The velocity directory is at the front of Confluence's Velocity template search path. As such, you can
override any of Confluence's Velocity templates by placing an identically named file in the right place. While
we don't recommend you do this unless you know exactly what you're doing, it does give you complete
control over the look of every aspect of Confluence. It also means that you can edit your templates in a
text-editor if you wish, rather than through the web interface.
Caching
Velocity is configured to cache templates in memory. When you edit a page from within Confluence, it knows
to reload that page from disk. If you are editing the pages on disk, you will either have to turn off velocity's
caching temporarily in WEB-INF/classes/velocity.properties, or restart the server to make your
changes visible.
You will find the Velocity files in your Confluence installation directory. The primary Velocity files are located
in the <CONFLUENCE-INSTALLATION>\confluence\decorators directory. For example, you will find
the following files in that directory: main.vmd, space.vmd, form-aui.vmd, global.vmd, and more.
If the layout has changed so extensively as to not be visible, you can browse to the URL directly:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 126
http://<confluence base
url>/admin/resetdecorator.action?decoratorName=decorators/main.vmd
If you are using custom layouts based on defaults from a previous Confluence version, you run the
risk of breaking functionality, or worse, missing out on great new features!
Take care on each new release of Confluence to reapply your changes to the new default templates.
To reapply your custom layouts, you need to:
1. Obtain the source of your custom layouts from your current version of Confluence.
2. Reapply your customizations to the new default layouts.
Ideally, you should keep a record of each customization you have applied to each of your Confluence site or
space layouts.
If not, you should be able to find your customizations using the following method. This method extracts all
site- and space-level layouts from your Confluence site as a single output. From this output, you should be
able to identify your customizations.
Custom layouts are stored in the DECORATOR table within your Confluence database. You can SELECT for
the source of the layout using SQL like this:
This example was tested on MySQL, but should be applicable to all SQL databases.
When you upgrade Confluence to another major release of Confluence, you will need to manually reapply
any customizations you made to any site-wide or space-specific layouts. Unless otherwise stated, you should
not need to reapply customizations after conducting a minor release upgrade of Confluence.
What are 'major' and 'minor' releases? Major release upgrades are ones where the 1st digit of
Confluence's version number or the 1st digit after the 1st decimal place differ after the upgrade, for example,
when upgrading from Confluence 3.0 to 3.1, or 2.8 to 3.0. Minor release upgrades are ones where the 1st
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 127
digit of Confluence's version number and the 1st digit after the 1st decimal place remain the same after the
upgrade, for example, when upgrading Confluence 3.0 to 3.0.1.
If you have made Confluence site-wide layout customizations:
1. Choose the cog icon
Changes may interact unpredictably with future versions of Confluence. When upgrading, you should always
test your custom modifications thoroughly before deploying them on a live site. It's beyond the scope of
Atlassian Support to test and deploy these changes.
Velocity is configured to cache templates in memory. When you edit a page from within Confluence, it knows
to reload that page from disk. If you are editing the pages on disk, you will either have to turn off Velocity's
caching temporarily in WEB-INF/classes/velocity.properties, or restart the server to make your
changes visible.
The velocity.properties file is available in the confluence-x.x.x.jar file, where x.x.x is the
Confluence version number. The JAR file is located in the WEB-INF/lib directory. If you wish to make
modification to the files in the JAR, we recommend the following steps:
1. Stop Confluence.
2. Make a backup copy of the JAR file.
3. Un-jar the file
4. Locate and edit the appropriate file that you wish to modify.
5. Re-jar the confluence-x.x.x.jar file.
6. Relocate the JAR file to the appropriate directory.
7. Restart Confluence.
Decorator Macros are Velocity macros which are used to draw complex or variable parts of the page such as
menus and breadcrumbs when editing Custom decorators. Decorator macros can be inserted anywhere in your
templates.
The macro is called by inserting a string of the form: #macroName("argument1" "argument2" "argument3").There
are no commas between the arguments. Unless otherwise noted, these macros take no arguments.
NOTE: These macros will only work reliably when customizing main.vmd. They may not work in other Velocity
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 128
decorators. Decorator macros will not work inside normal confluence pages.
Macro Usage
#breadcrumbs() Draws the "You are here" breadcrumbs list, like the
one found above the page name in the default
template.
#searchbox() Inserts a search box into the page, like the one to
the far right of the breadcrumbs in the default
template.
#helpicon() Draws the help icon, and link to the Confluence help
page.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 129
About Decorators
Confluence is built on top of the Open Source SiteMesh library, a web-page layout system that provides a
consistent look and feel across a site. SiteMesh works through "decorators" that define a page's layout and
structure, and into which the specific content of the page is placed. If you are interested, you can read more in
the SiteMesh documentation.
What this means for Confluence is that you can customize the look and feel of parts of your Confluence site
through editing decorators, for example:
The "Main" decorator defines the generic header and footer
The "Page" decorator defines how a page is displayed
The "Printable" decorator defines the look and feel of the printable versions of pages.
You can view and edit these decorators from within Confluence. Changes to the decorators will affect all spaces
in that Confluence installation.
The decorator that is used to draw Confluence's administrative pages cannot be edited from within Confluence.
This means that if you make a mistake that renders the rest of the site unuseable, the administrative pages
should still be available for you to fix the template.
At any time, you can browse the default decorators that come packaged with Confluence by following the "View
Default" links on the "Site Layouts" page. The template browser also allows you to view the "#parsed" templates
that are included within the template when it is compiled. While you can't edit these included templates, you will
probably have to copy some or all of them into your custom template as you do your customization.
To edit Confluence decorators you will need a good knowledge of HTML, and some understanding of the Velocit
y templating language.
To edit a decorator:
1. Go to Confluence Admin > Layouts.
2. Choose Create Custom beside the decorator you wish to edit.
3. Save your changes.
If you make a mistake or want to undo your changes, choose Reset Default beside the edited decorator.
Alternatively, the custom templates are stored in the DECORATOR table in the database. If you have somehow
managed to render Confluence completely unuseable through editing your templates, delete the relevant entries
from the DECORATOR table.
Macros
Some parts of the page are drawn using Velocity macros, including the navigation bar. The macros you should
know about when editing decorators are described in Working With Decorator Macros.
The velocity directory is at the front of Confluence's velocity template search path. As such, you can override
any of Confluence's velocity templates by placing an identically named file in the right place.
While we don't recommend you do this, it does give you complete control over the look of every aspect of
Confluence. It also means that you can edit your templates in a text-editor if you wish, rather than through your
browser.
There are, however, two important caveats:
1. Velocity is configured to cache templates in memory. When you edit a page from within Confluence, it
knows to reload that page from disk. If you are editing the pages on disk, you will either have to turn off
velocity's caching temporarily in WEB-INF/classes/velocity.properties, or restart the server to
make your changes visible.
2. Changes may interact unpredictably with future versions of Confluence. When upgrading, you should
always test your custom modifications thoroughly before deploying them on a live site.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 130
If you'd like to change the appearance of a specific page, you can modify the corresponding Velocity template.
Here's how to find out which one:
1. Access the page. Note the name of the action. For example, the "Contact Administrators" page is <baseU
rl>/administrators.action.
2. Browse to <confluence-install>/confluence/WEB-INF/lib/confluence-x.y.jar. Copy the file.
3. Unzip or unjar the file using a standard unzipper or the java jar utility.
4. Open xwork.xml. Search the file for the name of the action corresponding to the page you'd like to modify.
You'll see an entry like:
<action name="administrators"
class="com.atlassian.confluence.user.actions.AdministratorsAction">
<interceptor-ref name="defaultStack"/>
<result name="success"
type="velocity">/administrators.vm</result>
</action>
5. The file to look for is the vm or vmd file. In the above example, it's administrators.vmd. Because there is
no context path (just a / before the name of the file), its in the root of the Confluence webapp. For the
stand-alone, that's <confluence-install>/confluence folder.
6. Modify the file.
For details on how to configure the file, check the Velocity Template Overview.
Customizing the Login Page
This page gets you started on customizing the Confluence login page, to Related pages:
add your own logo or custom text. This will not customize the login process,
just what users sees when they log in. Changing
the Site
Notes: Logo
Velocity
Customizations to the Confluence login page will need to be
Template
reapplied when you upgrade Confluence. Consider this before
Overview
making drastic changes to the layout, and be sure to keep a list of
Customizin
what you have changed for your upgrade process later.
g Site and
Please test your changes on a test Confluence site first.
Space
Only administrators with access to the server where Confluence is running Layouts
can modify the Confluence login page. Changing
the Look
and Feel of
Confluenc
e
Modify
Confluenc
e Interface
Text
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 131
All Confluence UI text is contained in a single Java properties file. This file can be modified to change the default
text, and also to translate Confluence into languages other than English.
The UI text file is ConfluenceActionSupport.properties. From your Confluence install directory:
\confluence\WEB-INF\lib\confluence-x.x.x.jar
Replace "x.x.x" with your Confluence version, for example for 4.3.2, it
will be named "confluence-4.3.2.jar".
Within this File, the relevant file to edit is
:\com\atlassian\confluence\core\ConfluenceActionSupport.properties.
parameter.name=Parameter value
Parameter names are any text before the '=' character and should never be modified. Any text after the '='
character is the parameter value, which can be modified freely and can also contain variables. An example
involving variables is:
popular.labels=The three most popular labels are {0}, {1} and {2}.
For more information on replacing values, check out Translating ConfluenceActionSupport Content. Note that
plugins store their text internally, so you must modify plugin text individually.
1. Stop Confluence
2. Under your install directory, open \confluence\WEB-INF\lib\confluence-x.x.x.jar\com\atl
assian\confluence\core\ConfluenceActionSupport.properties
3. Search for the text you wish to modify, replace it and save the file in <Confluence-Install>\conflu
ence\WEB-INF\classes\com\atlassian\confluence\core. Please create this folder structure, if
it does not exist already.
If you re-bundle the JAR file, rather than re-deploy the class in the WEB-INF\classes directory,
make sure to move the backup JAR file out of the /lib directory, or the backup may be deployed
by mistake.
4. Restart Confluence
Confluence provides a set of keyboard shortcuts. You could customize the shortcuts by making modifications
inside the ConfluenceActionSupport.properties file.
To disable a particular shortcut, you can simply just comment out a respective line of code. One may like
to disable the shortcut to one of the navigation links: View, Edit, Attachments, Info . For instance, to
disable shortcut to Attachmentsone would comment out the following line:
#navlink.attachments.accesskey=a
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 132
To modify an access key, one could simply just change the letter, bearing in mind the fact that the letter
must be unique.
Customizing Email Templates
Customizing the Confluence email templates is not supported. If you do decide to edit the templates
we strongly recommend you use a test instance of Confluence.
Any customizations you make to the Confluence email notification templates will need to be reapplied
after upgrading Confluence.
Email notification templates are contained within the confluence-email-notifications plugin, which is a
system app (plugin) that is installed automatically when you install Confluence.
Only administrators with access to the Confluence installation directory can modify the Confluence email
templates.
Confluence uses Soy templates (also known as Closure templates) for email notifications. You can find out more
in the Google Developer docs or see our developer tutorial which contains a short introduction to using Soy
templates.
To change the email notification templates:
1. In the Confluence web application folder, find the file /confluence/WEB-INF/atlassian-bundled-
plugins/confluence-email-notifications-plugin-x.x.jar
Note: This plugin is independently versioned, the version number will not necessarily match Confluence's
version number.
2. Copy this file to a working location and extract the jar file. Find out more about how to edit files within .jar
archives.
3. Within the jar file, templates are stored in the /templates/ folder. Edit the Soy templates to make your
changes.
4. Zip all the files and change the file extension to .jar (or refer to the guide on editing files within .jar
archives for other methods).
5. Drop the new jar file into the /confluence/WEB-INF/atlassian-bundled-plugins folder
(replacing the original file - you might want to make a copy of the original file for easy roll back) and then
restart your instance.
6. Test your changes carefully before installing the updated plugin in production.
We strongly recommend you use a test instance for editing the templates contained within the plugin. If you are
unable to enable the plugin, check the Confluence logs for information, it may be that there are problems with
your edits to the Soy templates.
RELATED TOPICS
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 133
A template is a predefined page that can be used as a prototype when creating new pages. Templates can be
created by users, or provided by a blueprints. See Page Templates and Blueprints.
Administrators can import templates, to make them available to other people using Confluence. See Importing
Templates.
Confluence also provides 'system templates' which contain default content for the site welcome message (see E
diting the Site Welcome Message) and default space content (see Customizing Default Space Content).
Administrators can also disable templates and blueprints, to stop them appearing in the Create and Create
Space dialogs anywhere in their Confluence site.
To disable a template or blueprint across the entire Confluence site:
Choose the cog icon
To see the template bundles that are currently available for import on your Confluence site:
1. Log in to Confluence as a System Administrator or Confluence Administrator.
2. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 134
Step 2. (Optional) Download and install additional template bundles from the Atlassian Marketplace
Follow the steps below if you want to add more template bundles to your site.
Before installing an add-on (also called a plugin) into your Confluence site, please check the add-on's
information page to see whether it is supported by Atlassian, by another vendor, or not at all. See our
guidelines on add-on support.
To upload more templates:
1. Go to the Atlassian Marketplace and download the template bundle that you need. It will be in the form
of a JAR file. Save the JAR file somewhere in your file system.
2. Log in to Confluence as a System Administrator.
3. Go to
You now have one or more template bundles on your site. The templates are not available until you have
imported them.
To import a template:
1. Log in to Confluence as a System Administrator or Confluence Administrator.
2. Go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 135
Notes
Building your own template bundles. You can build a template bundle as an app (also known as a
'plugin' or 'add-on') and then upload it to your Confluence site. You can then import the templates from
your custom template bundle, as described above. You will need some programming knowledge to
develop a template bundle. See Creating A Template Bundle.
Duplicate template names. If a template with the same name already exists on import, a duplicate
template of the same name will be created. You will need to check the templates and rename them
manually.
Removing the template. Removing the app that contains a template will not remove the template
from your Confluence site if you have already imported it. You will need to remove the template
manually via the administration console or space administration screen.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 136
Related pages:
Changing the Site Logo
Editing the Site Welcome Message
Customizing your Confluence Site
Confluence Administrator's Guide
Confluence comes with the following languages installed and ready to use:
eština (eská republika | Czech Republic)
Dansk (Danmark | Denmark)
Deutsch (Deutschland | Germany)
Eesti (Eesti | Estonia)
English (UK)
English (US)
Español (España | Spain)
Français (France)
Íslenska (Ísland | Iceland)
Italiano (Italia | Italy)
Magyar (Magyarország | Hungary)
Nederlands (Nederland | The Netherlands)
Norsk (Norge | Norway)
Polski (Polska | Poland)
Português (Brasil | Brazil)
Român (România | Romania)
Slovenina (Slovenská republika | Slovak Republic)
Suomi (Suomi | Finland)
Svenska (Sverige | Sweden)
( | Russia)
( | China)
( | Japan)
( | Republic of Korea)
Individual users can choose the language that Confluence will use to display screen text and messages.
Note that the list of supported languages depends on the language packs installed on your Confluence site.
The language used for your session will depend on the settings below, in the following order of priority from
highest to lowest:
The language preference defined in your user profile. Note that you need to be logged in for this
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 137
This feature is useful if you are working on creating translations of the Confluence user interface. After
opening the Confluence dashboard, you can add the following action to the end of your Confluence URL:
?i18ntranslate=on
This will cause each element of the user interface to display its special key name. This makes it easier to
find the context for each key within the user interface. You can then search for the key on http://translations.a
tlassian.com where you can enter an appropriate translation for your custom language pack.
The key names are displayed with a 'lightning bolt' graphic. Here's an example from a space sidebar:
To turn off the translation view, add the following to the end of the Confluence URL:
?i18ntranslate=off
You can customize the message that is presented to the user on the ' Contact Site Administrators' page.
To edit the administrator contact message:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 138
4. Enter your text in the Custom Contact Administrators Message box. You can enter any text or Con
fluence wiki markup .
5. Choose Save.
By default, the 'contact administrators message' looks much like the highlighted area in the screenshot
below, starting with 'Please enter information...'.
Screenshot: The default 'Contact Site Administrators' message
To restore the message to its default simply remove the custom message you entered when following the
instructions above, so that the 'Custom Contact Administrators Message' field is empty.
If you prefer to disable the ability for users to send an email message to the site administrators, you can
disable the form portion of this screen. You can only disable the form if you first provide a 'Custom Contact
Administrators Message' as described above.
To enable or disable the administrator contact form:
1. Choose the cog icon
You can configure Confluence to use Captcha to help prevent spam, including the spamming of Confluence
administrators. The administrator contact form is covered by the site-wide Captcha settings as documented
in Configuring Captcha for Spam Prevention.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 139
If you choose to set a page as your site homepage but would like your users to still be able to access the
Confluence dashboard, you can add a link to the Application Navigator.
To add the Confluence Dashboard to the Application Navigator:
1. Go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 140
The default content in the template only appears for new spaces (those that On this page:
are created after you have defined the content). Changes to the template do Edit the
not affect existing home pages. default
home page
Edit the default home page for a blank space for a blank
space
To edit the default (blank) space content template: Reset the
original
1. Choose the cog icon default
content
, then choose General Configuration
2. Choose Global Templates and Blueprints in the left-hand panel. Related pages:
3. Choose Edit next to 'Default Space Content' or 'Default Personal Spaces
Space Content' depending on whether you want to customize the Page
content for new site space or personal space home pages. Templates
4. Enter the content that you want to appear on the home page for new
blank spaces. you can add variables, macros and other content in the
saw way as edited a page template.
5. Choose Save.
The following variables are available to be added to the default space content templates.
$spaceKey - inserts the space key into the site space homepage
$spaceName - inserts the space name into the site space homepage
$userFullName - inserts the user (owner of the personal space) into the personal space homepage
$userEmail - inserts the email address of the user (owner of the personal space) into the personal
space homepage.
Default space templates differ from ordinary page templates in that they do not present the user with a form
to complete, so variables should be limited to those listed in the Variables menu.
Some macros, such as the Table of Contents macro, may not display correctly when you preview the
template as they are designed to work on a page. The macros will display correctly on the home page when
you create a new space. For more information on editing a template, including adding macros see - Adding
Content to a Template.
You'll need Confluence administrator permissions to Configuring the Site Home Page
edit the site welcome message. Changing the Site Title
Changing the Site Logo
To edit the site welcome message:
Confluence administrators can either click the Edit li
nk below the site welcome message on the
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 141
dashboard, or:
1. Go to
The site welcome message is a template, not a page, so you'll be using the template editor to make your
changes.
You can add text, links and macros, as you would in any confluence page, but the process for adding files,
including images is a little different.
You can't upload an image or other file into a template directly. First you'll need to upload the file to a page in
your site, then in your template, choose Insert > Files > Search on other pages to embed the file or image.
You can allow people who are not Confluence administrators to edit the site welcome message by using the
include Include Page macro to include content from elsewhere in your site, rather than adding content
directly to the template.
To include content from a page in the site welcome message:
1. Create a new page in a space that is visible to all users. It's important that all users can see content in
that space - if a person does not have permissions to view the space where you've created the page,
they won't be able to see the page content on the dashboard.
2. Add some text, images or macros, then save the page.
3. Restrict who can edit the page (this is optional, but useful if you only want to allow some people to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 142
3.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 143
The workbox displays a notification when someone does one of the following in Confluence:
Shares a page or blog post with you.
Mentions you in a page, blog post, comment or task.
Comments on a page or blog post that you are watching.
Likes a page or blog post that you are watching.
The workbox does not show notifications triggered because you are watching a space. Only watches on
pages and blog posts are relevant here.
The notification in your workbox appears as 'read' if you have already viewed the page or blog post.
If your Confluence site is linked to a Jira application, you will also see the following Jira notifications in your
workbox:
Comments on issues that you are watching.
Mentions.
Shares of issues, filters and searches.
The polling intervals are used by the Confluence server that displays in-app notifications and tasks in its
workbox.
Option Description
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 144
Active This is the number of seconds that Confluence will wait before checking (polling) for new
polling notifications relevant to the page that the user is currently viewing. This setting applies to the
interval page open in the browser tab that currently has focus. It does not matter whether the user has
the workbox open or not.
Inactive This is the number of seconds that Confluence will wait before checking (polling) for new
polling notifications relevant to all pages that are not currently in focus. These pages may be on the
interval Confluence server that displays the workbox, or on other Confluence or Jira servers that send
their notifications to this server.
This setting defines an upper limit. For inactive pages, Confluence starts with a polling interval
equal to the active polling interval, then gradually increases the interval between polls until it
reaches the limit defined here.
If your Confluence site is connected to a Jira application, you can include notifications from your Jira
application, for example Jira Software or Jira Service Desk.
To include notifications from a Jira application:
Your Jira application and Confluence must be connected via an application link. See Linking to Another
Application.
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 145
You may wish to configure Confluence to display its own notifications in its workbox, but prevent notifications
from Jira applications from appearing in the workbox, even when JIRA applications and Confluence are
linked via application links.
The Jira administration interface does not offer a way of disabling notifications sent to Confluence.
To stop Jira applications from sending notifications to Confluence: Disable the following plugins in Jira.
(See the Universal Plugin Manager guide to disabling plugins.)
'Workbox – Common Plugin'
'Workbox – Jira Provider Plugin'
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 146
Notes:
Your Confluence servers must be running Confluence 4.3.3 or later.
Confluence can display notifications from more than one server.
Confluence can send notifications to only one server.
Only one of the linked Confluence servers can display the in-app notifications.
Screenshot: This Confluence server displays in-app notifications from itself, from Jira, and from another
Confluence server
You can configure Confluence to send all notifications to a different Confluence server. In this case, the
current Confluence server will not display the workbox.
To send notifications to another Confluence server: Follow the instructions in our example for Confluenc
eQuiet above.
Screenshot: This Confluence server sends its in-app notifications to another Confluence server
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 147
We recommend running Jira and Confluence in separate stand-alone instances behind an Apache Web
Server. The following documentation will guide you through the installation processes:
Installing Confluence
Installing Jira applications
Running Confluence behind Apache
Integrating Jira with Apache
We don't support deploying Confluence and any other application (including Jira) in the same Tomcat
container. See Can Multiple Atlassian Products Be Deployed in a Single Tomcat Container? for more
information.
This is the fun stuff. Check out Use Jira applications and Confluence together to find out about all the
integration points, great time saving features, and to check exactly which Jira application and version you'll
need.
If you already have a Jira application you can choose to delegate user management to Jira, and manage all
your users in one place. You can control which Jira groups also have permissions to use Confluence. Your
license tiers for each application do not need to be the same.
See Configuring Jira Integration in the Setup Wizard to delegate user management to Jira when installing
Confluence for the first time.
See Connecting to Crowd or Jira for User Management to delegate user management to Jira for an existing
Confluence site.
See Linking to Another Application to find out how to connect Confluence to your Jira application using an
application link. This only needs to be done once.
If you delegated user management to Jira as part of Confluence's setup process, an application link to Jira
will be all set up and ready to go.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 148
In addition to registering the external gadgets, we recommend that you set up an OAuth or Trusted
Application relationship between the application that serves the gadget (the service provider) and Confluence
(the consumer). The trust relationship is required for gadgets that access restricted data from the external
web application.
See how to configure OAuth or Trusted Applications Authentication, using Application Links.
If the external web application provides anonymous access to all the data you need in the gadgets, then you
do not need a trust relationship.
For example, if your gadgets will retrieve data from Jira and your Jira server includes projects and issues that
are restricted to logged-in users, then you will need a trust relationship between Confluence and Jira. If you
do not set up the trust relationship, then the gadgets will show only the information that Jira makes visible to
anonymous users.
You can add all the gadgets from your Jira, Bamboo, FishEye or Crucible site – or from another Confluence
site – to your Confluence gadget directory. People can then pick and choose the gadgets to add to their
Confluence pages.
To subscribe to another site's gadgets:
1. Go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 149
If you cannot subscribe to an application's gadgets, you will need to register the gadgets one by one. This is
necessary for applications and websites that do not support gadget subscription, and for applications where
you cannot establish a trusted relationship via Application Links.
First you will need to get the gadget URL and copy it to your clipboard.
http://example.com/my-gadget-location/my-gadget.xml
If the gadget is supplied by a plugin, the URL will have this format:
http://my-app.my-server.com:port/rest/gadgets/1.0/g/my-plugin.key:my-gadget/my-p
ath/my-gadget.xml
For example:
http://mycompany.com/jira/rest/gadgets/1.0/g/com.atlassian.streams.streams-jira-
plugin:activitystream-gadget/gadgets/activitystream-gadget.xml
To find a gadget's URL in JIRA:
Go to your dashboard by clicking the Dashboards link at the top left of the screen.
Click Add Gadget to see the list of gadgets in the directory.
Find the gadget you want, using one or more of the following tools:
Use the scroll bar on the right to move up and down the list of gadgets.
Select a category in the left-hand panel to display only gadgets in that category.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 150
Start typing a key word for your gadget in the Search textbox. The list of gadgets will change as
you type, showing only gadgets that match your search term.
Right-click the Gadget URL link for that gadget and copy the gadget's URL into your clipboard.
To find a gadget's URL in Confluence:
Choose Help > Confluence Gadgets to see the list of available Confluence gadgets.
Find the gadget you want.
Right-click the Gadget URL link for that gadget and copy the gadget's URL into your clipboard.
If the gadget comes from a non-Atlassian web application or web site, please consult the relevant
documentation for that application to get the gadget URL.
Now that you have the gadget's URL, you can register it in Confluence, so that people can add it to their
pages. You need system administrator permissions to register a gadget.
To register the gadget in Confluence:
1. Go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 151
To remove a single gadget from Confluence, click the Delete button next to the gadget URL.
If you have subscribed to an application's gadgets, you will need to remove the entire subscription. You
cannot unregister a single gadget. Click the Delete button next to the gadget feed URL.
The gadget(s) will no longer be available in the macro browser, and people will not be able to add them using
the Gadget macro. Any pages that already use the gadget will show a broken gadget link.
Users with System Administrator permissions can change the behavior of the Office Connector.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 152
Warnings: Disabled If this option is enabled, the user will receive a warning when importing a Word document.
Show a user when they are about to overwrite existing content.
warning
before
allowing a
user to
perform an
import
Allow Disabled If this option is enabled, the Office Connector will use authentication tokens in the URL.
authentication
tokens in the This needs to be enabled to edit Office 2013 documents.
URL path
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 153
Temporary The The {viewfile} macro will cache data temporarily. This option allows you to set the location o
storage for Confluence settings are:
viewfile Home
macro directory. Confluence home directory – The temporary file will be stored in your Confluence Ho
A directory specified in the directories.properties file – You can specify a lo
Office Connector's directories.properties file:
1. Locate the OfficeConnector-x.xx.jar file (where x.xx is the version number)
Home directory and copy it to a temporary location
2. Unzip the JAR file and find the resources/directories.properties file. The
like this:
3. Edit the last line, adding the path to your required temporary location directly after th
example:
On Windows:
com.benryan.confluence.word.edit.cacheDir=c:\my\path\
On Linux:
com.benryan.confluence.word.edit.cacheDir=/home/myuse
4. Save the file, recreate the JAR and put it back in your Confluence Home directory, o
JAR.
Maximum file 500 This is the maximum size of the cache used by the {viewfile} macro. (See above.)
space for
cache (MB)
Number of 6 This is the maximum number of threads used to convert PowerPoint, Excel files or PDF slid
Conversion this setting to manage Confluence performance, by limiting the number of threads so that th
Queues does not consume too many resources.
Click Manage Queues to view attachments that are still pending conversion.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 154
Related pages:
Upgrading Beyond Current
Licensed Period
Confluence installation and
upgrade guide
Confluence administrator's guide
If you change your license (for example to a license with more users), or migrate from Confluence Cloud and
you will need to update your license.
To update your Confluence license:
1. Go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 155
If you're using Data Center, you may need to apply the license to each node individually, if it does not
automatically propagate to all nodes.
The number of registered users allowed on your Confluence site may be limited, depending on your license
type.
The License Details page will indicate the number of users currently signed up (your registered user count).
It:
includes only users who have the 'can use' global permissions for the Confluence site.
does not include anonymous users, who may access your Confluence site if you have allowed
anonymous access.
does not include deactivated users.
If you exceed the number of users included in your license, your Confluence instance will become read-only,
that means no users will be able to create or edit content until you reduce the number of users.
You can reduce your user count by removing or deactivating users who do not require access to
Confluence. See Delete or Disable Users.
If you have connected Confluence to an LDAP directory, you may want configure Confluence to only
synchronize a subset of users from LDAP rather than all users. See How to change the number of users
synchronized from LDAP to Confluence in the Knowledge Base. This can be a complicated process and we
recommend that you only use this method if necessary.
If you decide to downgrade your Confluence license to pay for fewer users you need to ensure that the
number of users currently signed up (as shown on the License Details page) is lower that the number
allowed by your new license before your apply the new license.
If you have more users than your new license allows you will need to reduce your user count before applying
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 156
You can find your Support Entitlement Number (SEN) in three places:
In Confluence - go to
Database Configuration
This document provides information on connecting On this page:
Confluence to an external database. Choosing an external database
About the embedded H2
database
Choosing an external database Database setup
Database drivers
Note: Take time to choose your database wisely.
Database connection methods
The XML backup built into Confluence is not suited
Database troubleshooting
for migration or backup of large data sets. If you
need to migrate later, you may need to use a third Related pages:
party database migration tool.
Database JDBC Drivers
Below is more information on selecting and Supported Platforms
migrating to an external database: Embedded H2 Database
Managing Confluence Data
Migrating to a Different Database
Supported Databases
Database Troubleshooting
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 157
Your Confluence installation includes an embedded H2 database, to enable you to try Confluence without
setting up an external database. The embedded H2 database is only supported while you are evaluating
Confluence. You must migrate to a supported external database before using Confluence as a production
system.
To find out if you are still using the embedded database, go to
Database setup
Database drivers
You must use a supported database driver. See Database JDBC Drivers for the drivers we support.
If you attempt to use an unsupported or custom JDBC driver (or a driverClassName from an unsupported
or custom driver in your JINDI datasource connection) collaborative editing will fail.
You can connect Confluence to your database using a JDBC URL or a JNDI datasource.
By default the setup wizard only provides the option to use a JDBC connection, as this is the recommended
connection method.
If you want to use a JNDI datasource, see Configuring a datasource connection for the steps you'll need to
take before you set up Confluence, as the setup wizard will only provide the option to use a datasource if it
detects a datasource in your Tomcat configuration.
Database troubleshooting
The Confluence setup wizard will stop you at the Database configuration
step if it can't find an appropriate driver for the database you select.
To make your database driver available to Confluence:
1. Stop Confluence.
2. Download and extract the appropriate driver from the list below.
3.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 158
Related pages:
Database
Configurati
on
Supported
Platforms
Microsoft Microsoft We recommend that you use the bundled Type Database
SQL Server JDBC Driver 4 JDBC driver. setup for
for SQL Microsoft
Server If you decide to use a later version, we may SQL Server
download not be able to provide support for any
problems you encounter.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 159
Oracle JDBC driver Due to licensing constraints, Oracle drivers are Database
downloads not bundled with Confluence. setup for
Oracle
For Oracle 12c (R1 and R2) use the 12.2.0.x
driver (ojdbc8.jar)
We recommend using the thin drivers only.
See the Oracle JDBC driver FAQ.
If you attempt to use an unsupported or custom JDBC driver (or a driverClassName from an unsupported
or custom driver in your JINDI datasource connection) collaborative editing will fail. You must use a
supported driver.
1. Install Oracle
If you don't already have an operational Oracle server, download and install it now. See the Oracle
documentation for instructions.
When setting up your Oracle server:
Character encoding must be set to AL32UTF8 (this the Oracle equivalent of Unicode UTF-8).
If you're logging in with the user 'sys' you'll need to include the "as sysdba" or "as sysoper" to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 160
It is very important that the user is granted the exact privileges indicated above. Confluence
requires only these privileges so you should grant specific privileges to the user. create table, cr
eate sequence, and create trigger shouldn't be assigned as part of a role.
Do not grant the user the select any table permission. That permission can cause
problems with other schemas.
When you create a user, specify the tablespace for the table objects as shown above.
3. Install Confluence
Check out the Confluence Installation Guide for step-by-step instructions on how to install Confluence on
your operating system.
Due to licensing restrictions, we're not able to bundle an Oracle driver with Confluence. To make your
database driver available to Confluence:
1. Stop Confluence.
2. Head to Database JDBC Drivers and download the appropriate driver. The driver file will be called
something like ojdbc8.jar
3. Drop the .jar file in your <installation-directory>/confluence/WEB-INF/lib directory.
4. Restart Confluence then go to http://localhost:<port> in your browser to continue the setup
process.
The Confluence setup wizard will guide you through the process of connecting Confluence to your database.
Simple Port This is the Oracle port. If you didn't change the port when you installed
Oracle, it will default to 1521.
Simple Service This is the service name (of your confluence database.
name
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 161
Both Username This is the username of your dedicated database user. In the example
above, this is confluenceuser.
Both Password This is the password for your dedicated database user.
lsnrctl status
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 162
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<HOSTNAME>)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<HOSTNAME>)(PORT=8080))(P
resentation=HTTP)(Session=RAW))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this
service...
Service "XE" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully
The host and port are determined by the line containing PROTOCOL=tcp (the line without Presen
tation=HTTP).
Under Services Summary, each service which has an instance with READY status is a
connectable service. The name following Service is a service name for connecting to the
database name following Instance on the next line.
The SID is the name of the database instance, as defined by the $ORACLE_SID variable when you
have sourced the Oracle environment to your shell.
For example, if you are running Confluence on the same server as the Oracle database, with the above l
snrctl status output, you would use one of the following URLs:
jdbc:oracle:thin:@//localhost:1521/XE
jdbc:oracle:thin:@localhost:1521:XE
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 163
If you want to use a JNDI datasource, see Configuring a datasource connection for the steps you'll need to
take before you set up Confluence, as the setup wizard will only provide the option to use a datasource if it
detects a datasource in your Tomcat configuration.
In the database setup screen, hit the Test connection button to check:
that Confluence can connect to your database server
that the database character encoding is correct
that your database user has appropriate permissions for the database
that your database user has NOT been granted the SELECT ANY TABLE privilege
Once the test is successful, hit Next to continue with the Confluence setup process.
Troubleshooting
If Confluence complains that it is missing a class file, you may have placed the JDBC driver in the
wrong folder.
The following page contains common issues encountered when setting up your Oracle database to
work with Confluence: Known Issues for Oracle.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 164
1. Install PostgreSQL
If you don't already have PostgreSQL installed, download and install it now.
A few tips when installing PostgreSQL:
The password you provide during the installation process is for the 'postgres' account, which is the
database root-level account (the super user). Remember this username and password as you'll need it
each time you log in to the database.
The default port for PostgreSQL is 5432. If you decide to change the default port, make sure it does
not conflict with any other services running on that port.
Choose the locale that best matches your geographic location.
Don't launch Stack Builder at the completion of the installer.
3. Install Confluence
Check out the Confluence Installation Guide for step-by-step instructions on how to install Confluence on
your operating system.
The Confluence setup wizard will guide you through the process of connecting Confluence to your database.
Be sure to select "My own database".
Simple Port This is the PostgreSQL port. If you didn't change the port when you
installed Postgres, it will default to 5432.
Simple Database This is the name of your confluence database. In the example above, this
name is confluence
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 165
Both Username This is the username of your dedicated database user. In the example
above, this is confluenceuser.
Both Password This is the password for your dedicated database user.
If you want to use a JNDI datasource, see Configuring a datasource connection for the steps you'll need to
take before you set up Confluence, as the setup wizard will only provide the option to use a datasource if it
detects a datasource in your Tomcat configuration.
In the database setup screen, hit the Test connection button to check:
that Confluence can connect to your database server
that the database character encoding is correct
that your database user has appropriate permissions for the database
Once the test is successful, hit Next to continue with the Confluence setup process.
If Confluence and PostgreSQL are hosted on different servers, see the PostgreSQL documentation on how
to set up pg_hba.conf to make sure Confluence and PostgreSQL can communicate remotely.
Troubleshooting
If Confluence complains that it is missing a class file, you may have placed the JDBC driver in the
wrong folder.
If you're unable to connect to the database from Confluence and they are on different machines, most
likely you have a firewall in between the two machines or your pg_hba.conf file is misconfigured.
Verify that your firewall is set to allow connections through 5432 or double check your hba
configuration.
The following page contains common issues encountered when setting up your PostgreSQL database
to work with Confluence: Known issues for PostgreSQL.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 166
If you don't already have Microsoft SQL Server installed, download and install it now. See Installation for SQL
Server on MSDN for step-by-step instructions.
Note about authentication modes...
SQL Server allows two types of authentication: SQL Server Authentication and Windows Authentication.
To make sure Confluence will be able to connect to your database you'll need to set your SQL server to
allow Mixed Authentication (both SQL Server and Windows modes). This setup is generally found under
Properties > Security > Server Authentication.
Once you've installed SQL Server, create a database user and database for Confluence as follows:
1. Using your SQL administrator permissions, create a new database (for example confluence)
2. Set the default collation for the database to SQL_Latin1_General_CP1_CS_AS (case sensitive).
If you see a 'database could not be exclusively locked to perform the operation' error, you may need to
prevent other connections by setting the mode to single user for the transaction
If this query returns 1, then READ_COMMITTED_SNAPSHOT is ON, and you're good to go.
If this query returns 0, READ_COMMITTED_SNAPSHOT option is OFF and you will need to turn it on
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 167
as follows:
4. Using your SQL administrator permissions, create a new SQL user account for Confluence (for
example, confluenceuser).
5. Give this user full create, read and write permissions for the database tables. Confluence must be able
to create its own schema. Refer to the SQL Server documentation for how to do this.
3. Install Confluence
Check out the Confluence Installation Guide for step-by-step instructions on how to install Confluence on
your operating system.
The Confluence setup wizard will guide you through the process of connecting Confluence to your database.
Simple Port This is the SQL Server port. If you didn't change the port when you installed
SQL Server, it will default to 1433.
Simple Database This is the name of your confluence database. In the example above, this is c
name onfluence
Simple Instance To find out your instance name, connect to your database and run one of the
name following:
select @@SERVICENAME;
SELECT SERVERPROPERTY('InstanceName');
If you have a default named instance setup in SQL Server, you won't need to
specify this parameter.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 168
Both Username This is the username of your dedicated database user. In the example above,
this is confluenceuser.
Both Password This is the password for your dedicated database user.
If you want to use a JNDI datasource, see Configuring a datasource connection for the steps you'll need to
take before you set up Confluence, as the setup wizard will only provide the option to use a datasource if it
detects a datasource in your Tomcat configuration.
In the database setup screen, hit the Test connection button to check:
Confluence can connect to your database server
the database collation and isolation level is correct
your database user has appropriate permissions for the database
Once the test is successful, hit Next to continue with the Confluence setup process.
In Confluence 6.6 we replaced the open source jTDS driver for Microsoft SQL Server with the official
Microsoft JDBC Driver for SQL Server. You will be automatically migrated to the new driver when you
upgrade to 6.6 or later.
If for some reason the automatic migration fails (for example, if you're using a datasource connection), you'll
need to make this change manually. See Migrate from the jTDS driver to the supported Microsoft SQL Server
driver in Confluence 6.4 or later.
Troubleshooting
If you get the following error message, check you've given the confluenceuser user all the
required database permissions when connecting from localhost.
You may need to open additional ports. See this Microsoft KB about the ports required for SQL
Server.
The following page contains common issues encountered when setting up your SQL Server database
to work with Confluence: Known Issues for SQL Server.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 169
If you don't already have MySQL installed, download and install it now. See the MySQL documentation for
step-by-step instructions.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 170
i.
Windows service. If your hardware is going to be used as a dedicated MySQL Server, you may
wish to choose the options to Install As Windows Service (and Launch the MySQL Server
automatically). Refer to the MySQL documentation for further information.
Note: If you choose not to install the MySQL Server as a Windows Service, you will need to
ensure that the database service has been started before running Confluence.
j. Select Modify Security Settings to enter and set your MySQL Server (root) access password.
2. Edit the my.cnf file (my.ini on Windows operating systems) in your MySQL server. Locate the [my
sqld]section in the file, and add or modify the following parameters:
(Refer to MySQL Option Files for detailed instructions on editing my.cnf and my.ini.)
Locate the [mysqld]section in the file, and add or modify the following parameters:
Specify the default character set to be UTF-8:
[mysqld]
...
character-set-server=utf8
collation-server=utf8_bin
...
[mysqld]
...
default-storage-engine=INNODB
...
[mysqld]
...
max_allowed_packet=256M
...
[mysqld]
...
innodb_log_file_size=2GB
...
Ensure that the global transaction isolation level of your Database had been set
to READ-COMMITTED.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 171
[mysqld]
...
transaction-isolation=READ-COMMITTED
...
Check that the binary logging format is configured to use 'row-based' binary logging.
[mysqld]
...
binlog_format=row
...
Once you've installed and configured MySQL, create a database user and database for Confluence as
follows:
1. Run the 'mysql' command as a MySQL super user. The default user is 'root' with a blank password.
2. Create an empty Confluence database schema (for example confluence):
If Confluence is not running on the same server, replace localhost with the hostname or IP address of
the Confluence server.
4. Install Confluence
Check out the Confluence Installation Guide for step-by-step instructions on how to install Confluence on
your operating system.
Due to licensing restrictions, we're not able to bundle the MySQL driver with Confluence. To make your
database driver available to Confluence:
1. Stop Confluence.
2. Head to Database JDBC Drivers and download the appropriate driver. The driver file will be called
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 172
2.
The Confluence setup wizard will guide you through the process of connecting Confluence to your database.
Simple Port This is the MySQL port. If you didn't change the port when you installed
MySQL, it will default to 3306.
Simple Database This is the name of your confluence database. In the example above, this
name is confluence
Both Username This is the username of your dedicated database user. In the example
above, this is confluenceuser.
Both Password This is the password for your dedicated database user.
If you want to use a JNDI datasource, see Configuring a datasource connection for the steps you'll need to
take before you set up Confluence, as the setup wizard will only provide the option to use a datasource if it
detects a datasource in your Tomcat configuration.
In the database setup screen, hit the Test connection button to check:
Confluence can connect to your database server
the database character encoding, collation, isolation level and storage engine are correct
your database user has appropriate permissions for the database.
Once the test is successful, hit Next to continue with the Confluence setup process.
Troubleshooting
If Confluence complains that it is missing a class file, you may have placed the JDBC driver in the
wrong folder.
If you get the following error message, verify that you have given the confluenceuser user all the
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 173
The following page contains common issues encountered when setting up your MySQL database to
work with Confluence: Database Troubleshooting for MySQL
Embedded H2 Database
To enable you to try Confluence without setting up On this page:
an external database, your Confluence installation
includes an embedded H2 database. Connect to the embedded H2
database using DB Visualizer
The embedded H2 database is used by default when Connect to the embedded H2
you choose the Trial installation path. database using the H2 console
Migrate to a supported external
database
Related pages:
Confluence Home and other
important directories
Database Configuration
The embedded database files are stored in your Confluence home directory <confluence-home>/databa
se.
The embedded H2 database is only supported while you are evaluating Confluence. You must migrate to a s
upported external database before using Confluence as a production system.
To find out if you are still using the embedded database, go to
If you need to make changes directly in the database, and you're using the H2 database, here's how you can
connect to it using DBVisualizer.
DBVisualizer is just one database administration tool. You can use any administration tool that supports
embedded H2 databases. The steps will be similar.
1. Shut down Confluence.
2. Back up your <confluence-home>/database directory.
3. Launch DBVisualizer.
4. Choose Create new database connection and follow the prompts to set up the connection.
The information you'll need is:
Database driver: H2 embedded
Database Userid: sa
Database password: leave this field blank
Database filename:<confluence-home>/database/h2db
leave off the .h2.db file extension.
5. Connect to the database.
Refer to the DBVisualizer documentation for help using DBVisualizer.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 174
Alternatively you can connect using the browser based H2 console. The easiest way to access the console is
to double click the H2 database jar file at <installation-directory>\confluence\WEB-INF\lib\h
2-x.x.x.jar.
If you're using the H2 database, but running Confluence as a production system, you should start planning to
migrate to a supported database as soon as possible.
To migrate to a supported external database:
1. Check Supported Platforms to find out which databases and versions are supported.
2. Head to Migrating to Another Database for a step-by-step guide.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 175
On this page:
Limitations of database migration
Database migration
Method one – standard procedure
Step 1: Take note of your
Marketplace apps
Step 2: Back up your data
Step 3: Set up the new
database
Step 4. Install Confluence
(same version number) in a
new location
Step 5. Download and
install the database driver if
necessary
Step 6. Run the Confluence
setup wizard and copy your
data to your new database
Step 7. Re-install your
Marketplace apps
Step 8. Check settings for
new machine
Method two – for installations with
a large volume of attachments
Before you start
Step 1: Take note of your
Marketplace apps
Step 2: Back up your data
Step 3: Set up the new
database
Step 4. Install Confluence
(same version number) in a
new location
Step 5. Download and
install the database driver if
necessary
Step 6. Run the Confluence
setup wizard and copy your
data to your new database
Step 7: Copy your
attachments across
Step 8. Re-install your
Marketplace apps
Step 9. Check settings for
new machine
A note about case sensitivity in
your database
Setting up a new
Confluence instance
Migrating an existing
Confluence instance to a
different database
Troubleshooting
Related pages:
Database Configuration
Confluence Home and other
important directories
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 176
Note: The XML export built into Confluence is not suited for the backup or migration of large data sets. There
are a number of third party tools that may be able to assist you with the data migration. If you would like help
in selecting the right tool, or help with the migration itself, we can put you in touch with one of the Atlassian
Experts.
Database migration
There are two ways you can perform the migration, both described on this page:
1. Method one is the standard procedure.
2. Use method two if the total size of attachments in your installation exceeds 500MB.
Take note of the apps (also knowns as plugins or add-ons) currently installed and enabled in Confluence, so
that you can reinstate them later. Make a note of the following for each app:
App name and vendor
Version
Enabled or disabled status. This is useful if you have enabled or disabled modules yourself, making
your configuration differ from the default.
1. Create an XML backup of your existing data. See Manually Backing Up the Site. Make a note of the
location where you put the XML file. You will need it later to import your Confluence data into your new
database.
2. Stop Confluence.
3. Make a copy of the Confluence Home directory. This is a precautionary measure, to ensure you can
recover your data if it is mistakenly overwritten.
4. If you are using an external database, make a separate backup using the utilities that were installed
with that database. This also is a precautionary measure.
Choose the database setup instructions for your new database, and follow those instructions to do the
following:
Install the database server.
Perform any required configuration of the database server, as instructed.
Add the Confluence database and user. Make a note of the username and password that you define in
this step. You will need them later, when running the Confluence Setup Wizard.
Now you will install Confluence again, with a different home directory path and installation path.
Note: You must use the same version of Confluence as the existing installation. (If you want to upgrade
Confluence, you must do it as a separate step.) For example, if your current site is running Confluence 5.1.2,
your new installation must also be Confluence 5.1.2.
When running the Confluence installer:
Choose Custom Install. (Do not choose to upgrade your existing installation.)
Choose a new destination directory. This is the installation directory for your new Confluence. It
must not be the same as the existing Confluence installation.
Choose a new home directory. This is the data directory for your new Confluence. It must not be the
same as the existing Confluence installation.
Note that Confluence bundles some database drivers, but you'll need to install the driver yourself if it is not
bundled. Follow the database setup instructions for your new database, to download and install the database
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 177
driver if necessary.
Step 6. Run the Confluence setup wizard and copy your data to your new database
Re-install any apps (also known as plugins or add-ons) that are not bundled with Confluence.
Use the same version of the app as on your old Confluence site.
The data created by the app will already exist in your new Confluence site, because it is included in
the XML backup.
If you are moving Confluence to a different machine, you need to check the following settings:
Configure your new base URL. See Configuring the Server Base URL.
Check your application links. See Linking to Another Application.
Update any gadget subscriptions from external sites pointing to this Confluence site. For example, if
your Jira site subscribes to Confluence gadgets, you will need to update your Jira site.
Review any other resources that other systems are consuming from Confluence.
These instructions only apply to attachments stored in the file system. If you store attachments in the
database see Attachment Storage Configuration to find out how to migrate between different attachment
storage methods.
Take note of the apps (also knowns as plugins or add-ons) currently installed and enabled in Confluence, so
that you can reinstate them later. Make a note of the following for each app:
App name and vendor
Version
Enabled or disabled status. This is useful if you have enabled or disabled modules yourself, making
your configuration differ from the default.
1. Create an XML backup of your existing data. See Manually Backing Up the Site. Make a note of the
location where you put the XML file. You will need it later to import your Confluence data into your new
database.
2. Stop Confluence.
3. Make a copy of the attachments directory (<CONFLUENCE-HOME-DIRECTORY>\attachments) in
your Confluence Home directory. You will need it later to copy your Confluence attachments data into
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 178
3.
Choose the database setup instructions for your new database, and follow those instructions to do the
following:
Install the database server.
Perform any required configuration of the database server, as instructed.
Add the Confluence database and user. Make a note of the username and password that you define in
this step. You will need them later, when running the Confluence Setup Wizard.
Now you will install Confluence again, with a different home directory path and installation path.
Note: You must use the same version of Confluence as the existing installation. (If you want to upgrade
Confluence, you must do it as a separate step.) For example, if your current site is running Confluence 5.1.2,
your new installation must also be Confluence 5.1.2.
When running the Confluence installer:
Choose Custom Install. (Do not choose to upgrade your existing installation.)
Choose a new destination directory. This is the installation directory for your new Confluence. It
must not be the same as the existing Confluence installation.
Choose a new home directory. This is the data directory for your new Confluence. It must not be the
same as the existing Confluence installation.
Note that Confluence bundles some database drivers, but you'll need to install the driver yourself if it is not
bundled. Follow the database setup instructions for your new database, to download and install the database
driver if necessary.
Step 6. Run the Confluence setup wizard and copy your data to your new database
Re-install any apps (also known as plugins or add-ons) that are not bundled with Confluence.
Use the same version of the app as on your old Confluence site.
The data created by the app will already exist in your new Confluence site, because it is included in
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 179
If you are moving Confluence to a different machine, you need to check the following settings:
Configure your new base URL. See Configuring the Server Base URL.
Check your application links. See Linking to Another Application.
Update any gadget subscriptions from external sites pointing to this Confluence site. For example, if
your Jira site subscribes to Confluence gadgets, you will need to update your Jira site.
Review any other resources that other systems are consuming from Confluence.
'Collation' refers to a set of rules that determine how data is sorted and compared. Case sensitivity is one
aspect of collation. Other aspects include sensitivity to kana (Japanese script) and to width (single versus
double byte characters).
For new Confluence instances, we recommend using case sensitive collation for your Confluence database.
This is the default collation type used by many database systems.
Note: Even if the database is configured for case sensitive collation, Confluence reduces all usernames to
lower case characters before storing them in the database. For example, this means that 'joebloggs',
'joeBloggs' and 'JoeBloggs' will be treated as the same username.
The default Confluence configuration uses case sensitive database collation. This is typical of databases
created under default conditions. If you are migrating from this type of configuration to a new database, we
recommend that the new database uses case sensitive collation. If you use case insensitive collation, you
may encounter data integrity problems after migration (for example, via an XML import) if data stored within
your original Confluence site required case sensitive distinctions.
Troubleshooting
See our troubleshooting guide if you're unable to restore your XML backup.
New installations
When installing Confluence for the first time you will need to consider character encoding:
when creating your database
when connecting to the database via a JDBC connection string or datasource (if you use the simple
setup method in the Confluence setup wizard, we'll take care of this for you).
The Confluence setup wizard will alert you if there is a problem with your character encoding, this will make
sure you don't experience problems down the track. It is much easier to solve problems now, than later when
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 180
Existing installations
For existing Confluence sites, where the first version of Confluence installed was 6.4 or earlier, we many not
have checked the collation or character encoding of your database during the initial setup.
If your database is not correctly configured to use UTF-8 character encoding (or the equivalent for your
database, for example AL32UTF8 for Oracle databases):
you may see a health check warning while using Confluence
you may not be able to start Confluence after an upgrade.
If this happens, you'll need to change the character encoding for your existing database. The way you do this
will depend on your database.
Also see Troubleshooting Character Encodings for help diagnosing character encoding problems.
MySQL
See How to Fix the Collation and Character Set of a MySQL Database for details of what you'll need to do to
fix the character encoding in your database. You should also make sure the collation is correct.
Microsoft SQL Server
See How to fix the collation of a Microsoft SQL Server Confluence database for details of what you'll need to
do to fix the character encoding in your database.
PostgreSQL
If you use PostgreSQL, the best option is to recreate your database.
See Database Setup for PostgreSQL for how to create your database using the correct character encoding,
then follow the steps in Migrating to Another Database.
Oracle
If you use Oracle, the best option is to recreate your database.
See Database Setup for Oracle for how to create your database using the correct character encoding, then
follow the steps in Migrating to Another Database.
If database queries are taking too long to perform, and your application is becoming unresponsive, you can
configure a timeout for database queries. There is no default timeout in Confluence.To configure a database
query timeout, do the following on your test server:
1. Shut down Confluence.
2. Extract databaseSubsystemContext.xml from the confluence-x.x.x.jar that is in confluence/WE
B-INF/lib/, and put a copy in confluence/WEB-INF/classes/.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 181
<bean id="tenantedTransactionManager"
class="org.springframework.orm.hibernate.HibernateTransactionManager"
plugin:available="true">
<property name="sessionFactory" ref="sessionFactory"/>
<property name="defaultTimeout" value="120"/>
</bean>
The timeout is measured in seconds and will forcibly abort queries that take longer than this. In some cases,
these errors are not handled gracefully by Confluence and will result in the user seeing the Confluence error
page.
4. Start Confluence.
Once the timeout is working properly in your test environment, migration the configuration change to Confluence.
You will need to reapply these changes when upgrading Confluence, as the original databaseSubsystemC
ontext.xml file changes from version to version.
Surviving Database Connection Closures
When a database server reboots or a network failure has occurred, all connections in the database connection
pool are broken. To overcome this issue, Confluence would normally need to be restarted.
However, database connections in the database connection pool can be validated by running a simple SQL
query. If a broken database connection is detected in the pool, a new one is created to replace it.
To do this, Confluence can use a validation query for your database connection. This is enabled by default on
new installations (Confluence 6.5 and later), but if you've upgraded from an older Confluence version you can
choose to enable this manually by following the steps below.
Different databases have slightly different SQL syntax requirements for their validation query. The validation
query should be as simple as possible, as this is run every time a connection is retrieved from the pool.
The following validation queries are recommended for the following types of databases:
MySQL select 1
PostgreSQL select 1
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 182
For Oracle
<property name="hibernate.c3p0.preferredTestQuery">select 1 from
dual</property>
4. Save confluence.cfg.xml
5. If you're using Confluence 5.10.3 or earlier you'll need to add the following system property with the
validation query for your database.
For example:
-Dc3p0.preferredTestQuery="select 1"
6. Restart Confluence.
You should now be able to recover from a complete loss of all connections in the database connection pool
without the need to restart Confluence.
server.xml (excerpt)
...
<Resource name="jdbc/confluence" auth="Container"
type="javax.sql.DataSource"
username="postgres"
password="postgres"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/yourDatabaseName"
maxTotal="60"
maxIdle="20"
validationQuery="select 1" />
...
4. Save conf/server.xml
5. Restart Confluence.
You should now be able to recover from a complete loss of all connections in the database connection pool
without the need to restart Confluence.
Configuring a datasource connection
This guide covers how to configure a JNDI datasource connection to your
database. With this type of connection, Confluence asks the application
server (Tomcat) for your database connection information.
If you'd prefer to use a JDBC connection see the guide for your database:
Database Setup for PostgreSQL
Database Setup for SQL Server
Database Setup For MySQL
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 183
The Confluence setup wizard will only provide an option to use a datasource if it detects one in your Tomcat
configuration. If you want to use a datasource, follow the steps below.
1. Stop Confluence
In the Confluence setup wizard, you'll be prompted to choose your database. At this point, you should:
1. Stop Confluence.
2. Back up the following files, in case you need to revert your changes:
<installation-directory>/conf/server.xml
<installation-directory>/confluence/WEB-INF/web.xml
<home-directory>/confluence.cfg.xml
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 184
3. Insert the following DataSource Resource element for your specific database directly after the lines
above (inside the Context element, directly after the opening <Context.../> line, before Mana
ger).
PostgreSQL...
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://<host>:1433;database=<database-name>"
maxTotal="60"
maxIdle="20"
validationQuery="select 1"/>
If you're using Confluence 6.3 or earlier, you'll need to specify the jTDS driver for SQL Server. See
Configuring a SQL Server Datasource in Apache Tomcat in our 6.3 documentation for a sample
configuration.
MySQL...
url="jdbc:mysql://<host>:3306/<database-name>?useUnicode=true&
amp;characterEncoding=utf8"
maxTotal="60"
maxIdle="20"
defaultTransactionIsolation="READ_COMMITTED"
validationQuery="Select 1"/>
Oracle...
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 185
Replace <database-user>, <password>, <host> and <database-name> (or <SID> for Oracle)
with details of your own database. You may also need to change the port, if your database server is
not running on the default port.
4. Configure the connection pool and other properties. See the Apache Tomcat 9 Datasource
documentation for more information.
Configurable properties...
Here are the configuration properties for Tomcat's standard data source resource factory (org.ap
ache.tomcat.dbcp.dbcp.BasicDataSourceFactory):
driverClassName - Fully qualified Java class name of the JDBC driver to be used.
maxTotal - The maximum number of active instances that can be allocated from this pool
at the same time.
maxIdle - The maximum number of connections that can sit idle in this pool at the same
time.
maxWaitMillis - The maximum number of milliseconds that the pool will wait (when there
are no available connections) for a connection to be returned before throwing an exception.
password - Database password to be passed to the JDBC driver.
url - Connection URL to be passed to the JDBC driver. (For backwards compatibility, the
property driverName is also recognized.)
user - Database username to be passed to the JDBC driver.
validationQuery - SQL query that can be used by the pool to validate connections
before they are returned to the application. If specified, this query MUST be an SQL
SELECT statement that returns at least one row. When a database server reboots, or there
is a network failure, all the connections in the connection pool are broken and this normally
requires a application server reboot. However, the Commons DBCP (Database Connection
Pool) used by Tomcat can validate connections before issuing them by running a simple
SQL query, and if a broken connection is detected, a new one is created to replace it. To do
this, you will need to set the "validationQuery" option on the database connection pool.
5. If you plan to use collaborative editing, you'll need to make sure:
You're using a supported database driver. Collaborative editing will fail if you're using an
unsupported or custom JDBC driver or driverClassName in your datasource. See Database
JDBC Drivers for the list of drivers we support.
Your database connection pool allows enough connections to support both Confluence and
Synchrony (which defaults to a maximum pool size of 15)
You're using simple username and password authentication for your database.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 186
<resource-ref>
<description>Connection Pool</description>
<res-ref-name>jdbc/confluence</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Now that your datasource is configured, you can continue with the setup wizard.
1. Start Confluence.
2. Go to http://localhost:8090 to return to the setup wizard.
3. When prompted choose My own database (datasource).
4. Enter the JNDI name of your datasource, for example,java:comp/env/jdbc/confluence
5. Follow the prompts to finish setting up Confluence.
<property name="hibernate.setup"><![CDATA[true]]></property>
<property
name="hibernate.dialect"><![CDATA[net.sf.hibernate.dialect.Pos
tgreSQLDialect]]></property>
<property
name="hibernate.connection.datasource"><![CDATA[java:comp/env/
jdbc/confluence]]></property>
<property name="hibernate.setup"><![CDATA[true]]></property>
<property
name="hibernate.dialect"><![CDATA[net.sf.hibernate.dialect.SQL
ServerIntlDialect]]></property>
<property
name="hibernate.connection.datasource"><![CDATA[java:comp/env/
jdbc/confluence]]></property>
MySQL...
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 187
<property name="hibernate.setup"><![CDATA[true]]></property>
<property
name="hibernate.dialect"><![CDATA[com.atlassian.hibernate.dial
ect.MySQLDialect]]></property>
<property
name="hibernate.connection.datasource"><![CDATA[java:comp/env/
jdbc/confluence]]></property>
Oracle...
<property name="hibernate.setup"><![CDATA[true]]></property>
<property
name="hibernate.dialect"><![CDATA[com.atlassian.confluence.imp
l.hibernate.dialect.OracleDialect]]></property>
<property
name="hibernate.connection.datasource"><![CDATA[java:comp/env/
jdbc/confluence]]></property>
Start Confluence.
If you're upgrading Confluence (manually or using the installer) you will need to:
Stop Confluence (if you have attempted to start it).
Copy your database driver into the <installation-directory>/lib directory.
Edit <installation-directory>/conf/server.xml and add your datasource resource.
Edit <installation-directory>/confluence/WEB-INF/web.xml to configure Confluence to
use this datasource.
If you forget to do these steps, Confluence will not start up after upgrade and you'll see the following error:
Having a robust backup strategy for your Confluence site is essential. You should back up your database, install
directory, and home directories (including attachments) on a regular basis, using the database administration
and/or backup tool of your choice.
See Production Backup Strategy for more information.
Confluence provides a scheduled XML backup option, which backs up your site by performing a full site XML
export each day. This method can be useful for small sites, test sites, or in addition to your database and
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 188
directory backups. We don't recommend you rely solely on this backup method for your production site.
Why XML site export is not suitable for larger sites...
There are a number of reasons why XML site backups are unsuitable for large Confluence sites:
As the number of pages in your site increases, the XML backup takes progressively longer to
complete, and in extreme cases the process of generating the export can cause an outage.
XML backups can consume a lot of disk space rapidly. For example a 1GB Confluence site will create
30GB worth of backups in a month, if unattended.
If the XML export file is very large, restoring your site can take a long time, or may time out.
Marketplace and other user-installed apps are not included in the XML backup. After importing your
backup into a new Confluence site, you will need to re-install all user installed apps.
See Configuring Backups to find out more about the scheduled XML backup, including how to disable this
backup, or change how often this job runs.
If you have a Confluence Data Center license, the scheduled XML backup is disabled by default.
In the event do you need to restore your site from a backup, the way you do this depends on your backup
method.
See Restoring Data from other Backups for tips on how to restore Confluence from a database backup.
See Restoring a Site to find out how to import data from an XML site export file into an existing
Confluence site.
If you're migrating from Confluence Server to Confluence Cloud, you can use the Cloud Migration
Assistant for Confluence to migrate your content and spaces.
Create a backup or dump of your database using tools provided by your database.
If your database doesn't support online backups, you will need to stop Confluence while you do this.
Create a file system backup of your home directory (both local home and shared home for Data
Center)
Once this is in place, you can disable the daily backup scheduled job.
Having a backup of your database and home directories is more reliable, and easier to restore than a large
XML backup.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 189
Backing up the whole home directory is the safest option, however most files and directories are populated
on startup and can be ignored. At minimum, these files/directories must be backed up:
<conf-home>/confluence.cfg.xml
<conf-home>/attachments (you can exclude extracted text files if space is an issue)
The rest of the directories will be auto-populated on start up. You may also like to backup these directories:
<conf-home>/config – if you have modified your ehcache.xml file.
<conf-home>/index – if your site is large or reindexing takes a long time – this will avoid the need for
a full reindex when restoring.
The location of the home directory is configured on installation and is specified in the confluence.init.p
roperties file. For installation created with the automatic installer the default locations are:
For Clustered instances only: Backing up the whole shared home directory is the safest option, however
some files and directories are populated at runtime and can be ignored:
<conf-home>/thumbnails
<conf-home>/viewfile.
The commands to back up your database will vary depending on your database vendor, for example the
command for PostgreSQL is pg_dump dbname > outfile.
You should refer to the documentation for your particular database to find out more.
How do I restore?
Our guide on Migrating Confluence Between Servers has instructions on restoring a backup using this
technique.
Other processes
XML site backups can be used for other processes in Confluence, for example moving servers or switching
to a different database. Using the backup strategy described above will work for those processes too.
Our migrate server procedure– used to set up a test server – can use a SQL dump as well.
The database migration procedure uses the XML backup for small data sets. Large data sets will
require third party database migration tools.
Note: The XML export built into Confluence is not suited for the backup or migration of large data sets. There
are a number of third party tools that may be able to assist you with the data migration. If you would like help
in selecting the right tool, or help with the migration itself, we can put you in touch with one of the Atlassian
Experts.
Configuring Backups
Confluence can automatically back up your data by On this page:
performing a full site export at a scheduled time
each day. Configuring automated backups
Performing manual backups
If you have a Confluence Server license, the Scheduled XML backups in
scheduled XML backup happens every day at Confluence Data Center
2:00am by default.
If you have a Confluence Data Center licens
e, the scheduled backup is disabled, as it is
not suitable for large sites.
The zipped XML backup file will be named 'backup
-yyyy_MM_dd', and stored in the backups directory
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 190
We don't recommend relying on these automatic backups in production sites. You should instead
back up your database, installation directory and home directory manually. See Production Backup
Strategy for more information.
For security reasons, the ability to change the backup file location Backup administration screen is disabled
by default.
To enable custom backup paths:
1. Stop Confluence.
2. Edit the <confluence-home>/confluence.cfg.xml file.
3. Change the value of the following property to true:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 191
<property
name="admin.ui.allow.daily.backup.custom.location">true</propert
y>
> General Configuration > Backup administration to enter the new path.
The directory must be on either a local drive or a mounted network drive. Make sure the mounted drive is on
a physical server and not a Virtual Machine image.
If you migrate Confluence to a new server or change your architecture, you will need to update this path.
Changing your home directory location will not automatically update your backup file path if you've enabled a
custom path.
If you have an appropriate Production Backup Strategy, you may want to disable automatic backups to save
on disk space.
To disable automatic backups entirely:
1. Go to
To change the frequency of backups, or to change the time the backup runs each day:
1. Go to
> General Configuration > System Information to look up the System Time.
If you need a one-off XML backup, you can manually perform a site export. See Manually Backing Up the
Site for more information.
These files are not saved to the same location as the automated backups, they are saved in the temp directo
ry. You can change where the zipped XML files are saved by changing the location of your <Confluence-
home>/temp directory. See Confluence Home and other important directories for more information on how
to do this.
The scheduled XML backup is disabled by default in Confluence Data Center, as the job is known to cause
outages in sites with a lot of data.
We recommend that your backup strategy includes full backups of your database, local home and shared
home directories on a regular basis.
If you do choose to enable the scheduled XML backup (for example on a staging or test site), the default
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 192
backup path is <shared-home>/backups. You can find the location of your shared home in the confluen
ce.cfg.xml file, look for the confluence.cluster.home property.
These scripts are user-submitted and should be used with caution as they are not covered by Atlassian technical
support. If you have questions on how to use or modify these scripts, please post them to Atlassian Answers.
This script examines backup filename and deletes them if necessary, it may need to be edited.
'If you want 3 day old files to be deleted then insert 3 next to Date -
"your number here"
'This script will search out and delete files with this string in them
".2005-12-04-" This of course depends on the number you enter.
'You can always do a wscript.echo strYesterday or strFileName to see
what the script thinks you are searching for.
dtmYesterday = Date - 3
strYear = Year(dtmYesterday)
strMonth = Month(dtmYesterday)
If Len(strMonth) = 1 Then
strMonth = "0" & strMonth
End If
strDay = Day(dtmYesterday)
If Len(strDay) = 1 Then
strDay = "0" & strDay
End If
strYesterday = strYear & "-" & strMonth & "-" & strDay
Old XML backups can be deleted automatically by inserting a nightly or weekly automation script or cron similar
to the following:
Or, using the older form of the tail command if your system does not support the standard form:
Old XML backups can be deleted automatically by inserting a nightly or weekly automation script or cron similar
to the following. Set the BACKUP_DIR and DAYS_TO_RETAIN variables to appropriate values for your site.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 193
#!/bin/sh
BACKUP_DIR="/data/web/confluence/backups"
DAYS_TO_RETAIN=14
#!/bin/bash
CNFL=/var/confluence
CNFL_BACKUP=/backup/cnflBackup/`date +%Y%m%d-%H%M%S`
rm -rf $CNFL/temp/*
mkdir $CNFL_BACKUP
mysqldump -uroot -p<password> confluence|gzip >
$CNFL_BACKUP/confluence.mysql.data.gz
tar -cjvf $CNFL_BACKUP/data.bzip $CNFL > $CNFL_BACKUP/homedir.status
Good to know:
We don't recommend you rely on XML site exports as your main backup method. Instead, you
should regularly back up your database, install and home directories. See Production backup
strategy for more information.
Marketplace and user-installed apps are not included in the XML export. After importing your
site export file into a new Confluence site, you'll need to re-install all apps that are not bundled
with Confluence as the plugindata table is not backed up in a manual backup.
You can't import a site export XML file into an earlier version of Confluence.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 194
If you repeatedly experience timeout errors, try creating the export directly from the server. This will speed up
the process and prevent timeouts.
For example, use this URL: http://localhost:8090/confluence/admin/backup.action. directly
from your server.
The site export includes spaces (including pages, blogs, comments, attachments, and unpublished changes),
users and groups. Essentially everything in your site except add-ons.
Confluence will create the backup as a zipped XML file in your <home-directory>/backups> directory.
You'll need access to the Confluence server itself in order to retrieve this file.
By default, you can't retrieve the backup file from within Confluence. This feature is disabled for security
reasons, but you can choose to enable it. Once enabled, Confluence will prompt you to download the backup
file when the backup process finished. We recommend that you keep this feature off in production
environments.
To enable download of the backup file from within Confluence:
1. Stop Confluence.
2. Edit the <confluence-home>\confluence.cfg.xml file.
3. change admin.ui.allow.manual.backup.download to true.
4. Restart Confluence.
If the value of the above configuration property is 'true', it will be possible to download the backup file after
manually backing up the site via the Confluence Administration Console. If the value of this property is 'false'
or the property is not present in the configuration file, you will need to retrieve the backup file from the file
system on the Confluence server. By default, the value is 'false'.
There are some restrictions on which Confluence versions you will be able to import this file into. The most
important is that you can't import into an earlier version of Confluence. See Restoring a Site for more
information and troubleshooting tips.
Restoring a Site
This page describes how to restore data from an
XML site export file into an existing Confluence site.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 195
Related pages:
Production Backup Strategy
Exporting a site
Importing a Space
All content replaced. Importing a site will replace all your content and users. Back up your database
before you start.
Selective space restoration not possible. You can't select a single space to restore from the entire
site backup.
Version compatibility. Confluence accepts site backups from many previous Confluence versions.
You can check which versions are accepted in the Backup and Restore screen. You can only import
into a later version of Confluence, not an earlier one.
For best results, export from and import into the same Confluence version.
XML export files should not be used to upgrade Confluence. Upgrade Confluence by following Up
grading Confluence.
Here's what it looks like for Confluence 6.15. The accepted versions for your Confluence version may
be different.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 196
Confluence 6.6.
If your export is from Confluence Cloud you can only import it into Confluence 6.0 or later.
There are two ways to import a site - by uploading a file, or from a directory on your Confluence server.
Uploading a file is only suitable for small sites. For best results, we recommend importing from the restore
directory.
To upload and import a small site:
1. Go to
Building the index is optional during the import process. The content of your site won't be searchable until the
index is created, but if you have a very large site, you may choose to rebuild the index manually after the
import is complete.
If you're using Confluence Data Center, and you run a Synchrony standalone cluster there are a
few extra steps. You need to stop Synchrony completley, and we also recommend performing the
import with just one Confluence node running, and directing traffic away from that node.
Once the import is complete, you can restart your Synchrony cluster, and then restart your remaining
nodes (one at a time).
This is not required if you allow Confluence to manage Synchrony for you.
Troubleshooting
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 197
All user data was overwritten during the import process. You need to log in with a system
administrator account from the site that was exported. If you don't know the password, you'll need to
reset it from the database. See Restore Passwords To Recover Admin User Rights.
Is your site export from Confluence Cloud?
You can only import into Confluence 6.0 or later. The Cloud export does not include a system
administrator account, so you will need to start Confluence in recovery mode, create a new system
administrator account, and make it a member of the confluence-administrators group. See Restore
Passwords To Recover Admin User Rights for more.
Did you download the export file on a Mac?
If you get an error saying that Confluence can't find the exportDescriptor.properties file,
chances are OS X has unzipped the backup for you and sent the original zipped file to the trash. You
need to retrieve the original zip file from the trash and then try the import again.
Importing into a site with a Synchrony standalone cluster?
You must stop your Synchrony cluster before commencing the site import.
Production backup strategy preferred. We recommend that you follow the Production Backup
Strategy (which involves backing up your database and home directory) for your production
Confluence site, because Confluence XML exports are not recommended as the sole backup
mechanism.
Restoring from other backups. If your daily backup zip files can't be restored for some reason, but
you have backups of both your database and your Confluence home directory, you'll be able to restore
from these backups.
Restoring a Space
You can export a space – including pages, comments and attachments – to
a zip that contains an XML file and, optionally, all the attachments in the
space. To import the space to another Confluence site, restore the zip as
described below.
You need System Administrator permissions in order to restore a space
from an XML zip file.
To find out which versions your current Confluence version can accept
space exports from, go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 198
On this page:
Export and
import
compatibili
ty
Importing a
space from
Confluenc
e Cloud
Importing a
space from
Confluenc
e Server or
Data
Center
Upl
oad
a
site
or
spa
ce
exp
ort
file
Imp
ort
from
the
hom
e
dire
ctor
y
Groups
and
permission
s
Troublesho
oting
Workaroun
d for
restoring
spaces
from
Confluenc
e 5.3 and
earlier
Related pages:
Restoring
a Site
As the way users are managed is different in Confluence Cloud there are a few extra steps when importing a
space from Confluence Cloud into Confluence Server or Data Center.
See Import a space from Confluence Cloud for a step-by-step guide.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 199
We recommend performing a full backup of your database before importing a space. Occasionally the
space import process may fail, and a backup will make it easier for you to roll back.
There are two ways to import a space – by uploading a file, or from a directory on your Confluence server.
Uploading a file is only suitable for small spaces. For best results, we recommend importing from the restore
directory.
Importing from the home directory is a great alternative for large spaces, as you don't need to upload the file
via your browser.
To import a space from the home directory:
1. Copy your space export file to <confluence-home>/restore.
(If you're not sure where this directory is located, the path is listed in the Backup and Restore screen)
2. Go to
Importing a space will not import any users or groups that may have been granted specific space
permissions in your source Confluence site. This means that if any pages are restricted to these groups, you
may not be able to see them until you recreate these groups in your destination site.
Troubleshooting
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 200
If you need to import a space from a version prior to Confluence 5.3 into a later version of Confluence, you
can use a temporary Confluence installation to upgrade the space export to the right version number:
1. Download the same version of Confluence as the version you exported the space from (you can get
older versions of Confluence at the Confluence Downloads Archive).
2. Install that version of Confluence on a temporary server.
3. Import the space into this temporary Confluence site.
4. Upgrade Confluence on your temporary site to the same version as the site where you want to import
the space (see Upgrading Confluence for instructions).
5. Export the space from your temporary Confluence site (it'll now have the right version number).
6. Import the space into your production Confluence site.
Many Confluence administrators will have a production instance running the "live" version of Confluence, as well
as a test instance for testing upgrades and so on. In this situation, it's quite common that the two instances are
running different versions of Confluence. This document describes how to copy the data from a production
instance to a test instance, where the production version may be different to the test version.
Before proceeding with this guide, ensure you have read and understood the normal procedure for upgrading
Confluence.
Essentially, we are copying both the production home directory and database to the test instance. We then
update the database details on the test instance to point to the test database, leaving all other instance
metadata (most importantly the Confluence build number) the same as production.
1. Shut down your test instance.
2. Restore the production database to the test database server.
3. Create a backup of the confluence.cfg.xml file found in the home directory of the test instance.
4. Copy the production confluence-home directory to the test application server.
5. Open the confluence.cfg.xml which has been copied in a text editor. Change the database settings
to match the test database server. Ensure you do not point to your production database. (You can
compare with the backup you made in Step 3 if you need to get the database settings. Don't just copy this
file – you need the build number unchanged from production to indicate the database is from an older
version of Confluence.)
Before starting your test instance, you need to do the following steps to ensure no contact with production
systems.
To ensure no contact with external systems, you will need to disable both inbound and outbound mail services.
1. Disable global outbound mail by running the following database query:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation
1. 201
Change the 'SELECT *' to a 'DELETE' in the above queries once you are sure you want to remove the specified
accounts.
Once this is done, you can start your test instance without any mails being sent or retrieved. Think carefully
about other plugins which may access production systems (SQL macro, etc.). These should be disabled
promptly after starting the test instance.
You can create a developer license for this server and update the License Details after starting up.
Restoring Data from other Backups
Typically, Confluence data is restored from the Administration Console or from the Confluence Setup Wizard.
If you are experiencing problems restoring from an zipped XML backup file, it is still possible to restore provided
you have:
1. A backup of your home directory.
2. A backup of your database (if you're using an external database).
Instructions for this method of restoring differ depending on whether you are using the embedded database or
an external database (like Oracle, MS SQL Server, MySQL or Postgres).
Embedded Database
If you are running against the embedded database, the database is located inside the database folder of your
Confluence Home Directory. Hence, all you need to do is:
1. Retrieve the most recent backup of your home directory.
2. Unpack the Confluence distribution and point the confluence-init.properties file to this directory.
External Database
1. Prepare backups of your home directory and database (preferably backups that are dated the same).
That is, make sure the home directory is accessible on the filesystem and the database available to be
connected to.
2. If this database happens to have a different name, or is on a different server, you need to modify the jdbc
url in the confluence.cfg.xml file inside the Confluence Home Directory. The value of this property is
specified as hibernate.connection.url.
3. Unpack the Confluence distribution and point the confluence-init.properties file to the home
directory.
Retrieving File Attachments from a Backup
File attachments on pages can be retrieved from a backup without needing to import the backup into
Confluence. This is useful for recovering attachments that have been deleted by users.
Both automated and manual backups allow this, as long as the 'Include attachments' property was set. If you
want to restore pages, spaces or sites, see the Confluence Administrator's Guide instead.
Before following the instructions for recovering attachments below, we will review how backups store file and
page information.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 202
The backup zip file contains entities.xml, an XML file containing the Confluence content, and a directory for
storing attachments.
Page attachments are stored under the attachments directory by page and attachment id. Here is an example
listing:
Inside the attachment directory, each numbered directory inside is one page, and the numbered file inside is one
attachment. The directory number is the page id, and the file number is the attachment id. For example, the file
\attachments\98\10001 is an attachment with page id 98 and attachment id 10001. You can read entities.xml to
link those numbers to the original filename. Entities.xml also links each page id to the page title.
Inside the entities.xml is an Attachment object written in XML. In this example, the page id is 98, the attachment
id is 10001 and the filename is myimportantfile.doc. The rest of the XML can be ignored:
This XML describes a page. In this example, the page id is 98 and the title is Editing Your Files. The rest of the
XML can be ignored:
Each file must be individually renamed and re-uploaded back into Confluence by following the instructions
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 203
Best if you know each filename you need to restore, especially if you want just a few files:
1. Unzip the backup directory and open entities.xml.
2. Search entities.xml for the filename and find the attachment object with that filename. Locate its page and
attachment id.
3. Using the page and attachment id from entities.xml, go to the attachments directory and open that
directory with that page id. Locate the file with the attachment id.
4. Rename the file to the original filename and test it.
5. Repeat for each file.
6. To import each file back into Confluence, upload to the original page by attaching the file from within
Confluence.
Best if you have a small backup but want to restore many or all the attachments inside:
Following process is applicable to space export only. Site xml backups do not require page id to be
updated manually due to the nature of persistent page_id's.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 204
Problem Solution
Exception while importing backup Follow Troubleshooting XML backups that fail on restore instead
Common problems
The errors may be caused by a slightly corrupt database. If you're seeing errors such as 'Couldn't backup
database data' in your logs, this guide will help you correct the error on your own. We strongly recommend
that you backup your database and your Confluence home directory beforehand, so that you can restore
your site from those if required. If you are unfamiliar with SQL, we suggest you contact your database
administrator for assistance.
Preferable solution
The Production Backup Strategy is a very reliable and more efficient way to do backups. If you are running
into problems with XML backups - whether memory related or because of problems like the one described
here - use the native backup tool as an alternate solution.
To work out where the data corruption or problems are, increase the status information reported during
backup, then edit the invalid database entry:
1. Stop Confluence.
2. If you have an external database, use a database administration tool to create a manual database
backup.
3. Backup your Confluence home directory. You will be able to restore your whole site using this and the
database backup.
4. Open the my_confluence_install/confluence/WEB-INF/classes/log4j.propertiesand
add this to the bottom and save:
log4j.logger.com.atlassian.confluence.importexport.impl.XMLDatab
inder=DEBUG, confluencelog
log4j.additivity.com.atlassian.confluence.importexport.impl.XMLD
atabinder=false
5. Find your atlassian-confluence.log. Move or delete all existing Confluence logs to make it easier to
find the relevant logging output.
6. Restart Confluence and login.
7. Begin a backup so that the error reoccurs.
8. You must now check your log files to find out what object could not be converted into XML format.
Open confluence-home/logs/atlassian-confluence.log. Scroll to the bottom of the file.
9. Do a search for 'ObjectNotFoundException'. You should see an error similar to this:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 205
10. Open a DBA tool such as DbVisualizer and connect to your database instance. Scan the table names
in the schema. You will have to modify a row in one of these tables.
11. To work out which table, open atlassian-confluence.log, check the first line of the exception.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 206
11.
This says there was an error writing the ContentPermission object with id 5 into XML. This
translates as the row with primary key 5 in the CONTENTLOCK tableneeds fixing. To work out what
table an object maps to in the database, here's a rough guide:
Pages, blogposts, comments --> CONTENT table
attachments --> ATTACHMENTS table
More information can be found in the schema documentation
12. Now you must find the primary key of the incorrect row in this table. In this case, you can check the
first line and see that the row has a primary key of 5.
13. Each property is written to a column, so the last property that was being written has the incorrect
value. The row being written to when the exception was thrown was CONTENT (line 5) with a value of 2
535 (line 6). Now you know the column and value. This value 2535 is the id of an entry that no longer
exists.
14. Using a database administrative tool, login ot the Confluence database. Locate the row in the relevant
table and correct the entry. Check other rows in the table for the default column value, which may be
null, 0 or blank. Overwrite the invalid row value with the default.
15. Restart Confluence.
16. Attempt the backup again. If the backup fails and you are stuck, please lodge a support request with
your latest logs.
this indicates that the Primary Key constraint 'PK_OS_PROPERTYENTRY_314D4EA8' has duplicate entries
in table 'OS_PROPERTYENTRY'.
You can locate the constraint key referring to 'PK_OS_PROPERTYENTRY_314D4EA8' in your table
'OS_PROPERTYENTRY' and locate any duplicate values in it and remove them, to ensure the "PRIMARY
KEY" remains unique. An example query to list duplicate entries in the 'OS_PROPERTYENTRY' table is:
1. If you are using the embedded database, be aware that it is bundled for evaluation purposes and does
not offer full transactional integrity in the event of sudden power loss, which is why an external
database is recommended for production use. You should migrate to an external database.
2. If you are using an older version of Confluence than the latest, you should consider upgrading at this
point.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 207
Common problems
The errors may be caused by a slightly corrupt database. You will need to find the XML backup file entry that
is violating the DB rules, modify the entry and recreate the XML backup:
1. On the instance being restored, follow the instructions to disable batched updates (for simpler
debugging), log SQL queries and log SQL queries with parameters at Enabling Detailed SQL
Logging.
2. Once all three changes have been made, restart Confluence.
3. Attempt another restore.
4. Once the restore fails, check your log files to find out what object could not be converted into XML
format. For Confluence distribution users, check your Confluence install directory under the /logs/ a
nd check both atlassian-confluence.log and catalina.out file. The correct file will contain
SQL debug output.
5. Scroll to the bottom of the file and identify the last error relating to a violation of the database
constraint. For example:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 208
This example indicates a row in your attachment table with ID = 38 that has a null title.
6. Go to the server that the backup was created on. You must have a copy of the database from which
the backup was created. If you do not have this, use a DBA tool to restore a manual backup of the
database.
7. Open a DBA tool and connect to the original database instance and scan the table names in the
schema. You will have to modify a row in one of these tables.
8. To work out which table, open catalina.out, check the first line of the exception. To work out what
table an object maps to in the database, here's a rough guide:
Pages, blogposts, comments --> CONTENT table.
attachments --> ATTACHMENTS table.
9. To correct the example error, go to the attachment table and find that attachment object with id 38.
This will have a a null title. Give a title using the other attachments titles as a guide. You may have a
different error and should modify the database accordingly.
10. Once the entry has been corrected, create the XML backup again.
11. Import the backup into the new version.
12. If the import succeeds, revert the changes made in your SQL logging to re-enable disable batched
updates and turn off log SQL queries and log SQL queries with parameters.
13. Restart Confluence.
com.atlassian.confluence.importexport.ImportExportException: Unable
to complete import because the data does not match the constraints in
the Confluence schema. Cause:
MySQLIntegrityConstraintViolationException: Duplicate entry
'1475804-Edit' for key 'cps_unique_type'
This indicates that the XML export came from a version of Confluence with a corrupt permissions database,
caused by some 3rd party plugin. This is an issue that was fixed when CONF-22123 was implemented in
Confluence 3.5.2. The simplest workaround is to export the space again after upgrading the instance to 3.5.2
or above. If that is not an option, then either the export will need to be edited manually to remove the
duplicate permission entries or the source instance will need to have the offending entries removed. The
following SQL queries can be used to look for such entries:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 209
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 210
This indicates that the Primary Key constraint 'PK_OS_PROPERTYENTRY_314D4EA8' has duplicate entries
in table 'OS_PROPERTYENTRY'.
You can locate the constraint key referring to 'PK_OS_PROPERTYENTRY_314D4EA8' in your table
'OS_PROPERTYENTRY' and locate any duplicate values in it and remove them, to ensure the "PRIMARY
KEY" remains unique. An example query to list duplicate entries in the 'OS_PROPERTYENTRY' table is:
This means there's an unexpected null value in a table. In the above example, the error is in the name
column in the USERS table. We've also seen them in the ATTACHMENTS table.
Remove the row with the null value, redo the xml export, and reimport.
1. If you are using the embedded database, be aware that it is bundled for evaluation purposes and does
not offer full transactional integrity in the event of sudden power loss, which is why an external
database is recommended for production use. You should migrate to an external database.
2. If you are using an older version of Confluence than the latest, you should consider upgrading at this
point.
The problem with different settings for case sensitivity varies between databases. The case
sensitivity of the database is usually set through the collation that it uses. Please vote on the existing
issue
This page provides information about a change to Confluence Cloud that is happening in the future.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 211
Currently, usernames are still included in space exports, so the information on this page about
attributing content by email address does not apply yet.
The user base of your Confluence Cloud and Confluence Server or Data Center sites are seperate. Although the
same people may have accounts in both sites, the way information is stored about them is different. For
example, in Confluence Cloud usernames may be replaced by email addresses, and they have an additional ID
(a random string of characters) that acts as a unique identifier.
When you import a space into Confluence we attempt to attribute content based on username. If the two
usernames match, we will attribute content to the user.
In spaces exported from Cloud, where we may not be able to match by username, we give you the choice to:
attempt to match users by their email address.
skip attributing content altogether, and instead attribute all content to 'unknown user'.
To reduce the risk of making restricted pages visible to the wrong person, imported content will always be
attributed to 'unknown user' if:
the email address is used by multiple user accounts (with different usernames), or
the user account doesn't have an email address (for example if it is private, and not included in the
export).
If your user directories are tightly managed, you can confidently choose to attribute content to existing users
based on their email address when importing a space from Cloud. But, if you allow people to change their email
address in Confluence, you may prefer to skip this, and attribute all content to 'unknown user', and then have an
administrator manually update any page restrictions.
Any Cloud user accounts found in the space export, that are not reconciled with an existing Server / Data Center
user, will appear in the Unsynced from directory list. They may be listed by email address, or by ID (depending
on whether the Cloud user has chosen to keep their email address private).
Permissions and restrictions are respected, so if a space or page is restricted to just one of these users, it will
not be visible to other people. An administrator will need to restore permissions after the import is complete.
Here's an example of how unknown users may appear in a page.
If the content you import is not attributed to existing users, there will be some work to do to restore the correct
permissions to the right people. People may not be able to see the space until you do this.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 212
First step is to make sure the space has at least one space administrator. To do this:
1. Go to
Now that the space has at least one space admin, they can restore any other permissions.
1. Go to the space and choose Space tools > Permissions from the bottom of the sidebar
2. Grant each user the desired permissions. It can be useful to have the space permissions screen in
Confluence Cloud open while you do this.
As long as any groups are named the same in Cloud and Server / Data Center you shouldn't need to make any
changes to groups. If your groups aren't named the same, you can add any relevant groups at this point.
Pages with view restrictions applied in Confluence Cloud may be associated with unknown users in Server /
Data Center. This means the pages won't be visible.
Space admins can remove individual page restrictions
1. Go to the space and choose Space tools > Permissions from the bottom of the sidebar
2. Go to the Restricted Pages tab. Any pages with view or edit restrictions will be listed.
3. Click the padlock icon beside the page to remove one of the View restrictions.
4. If the page is still restricted, use your browser back button and click the padlock beside another View
restriction. Repeat this process until enough restrictions have been removed that you can see the page
(you'll land on Page Information).
5. Choose
> Restrictions.
6. You can now reinstate the view and edit restrictions. It can be useful to have the Cloud page open to refer
to.
Removing restrictions so that you can see the page may mean that the page becomes temporarily visible to
others. If this is a concern you can either apply a temporary view restriction to a parent page, or perhaps remove
space permissions until you've finished restoring the right view restrictions.
When importing a space from Confluence Cloud, there's a small risk that content is attributed to the wrong user,
which would make any restricted pages visible to the wrong person. This is because the only information we can
use to match the user is their email address, which can be changed by the user themselves or by an
administrator.
It's essential that email addresses are associated with the correct user accounts. Content may be attributed to
the wrong user account if the email address has been changed maliciously, or accidentally, for example if a
username and email combination has been reused, so that a former and current employee share the same
username and email address.
We mitigate this risk by only associating content to user accounts that have a unique email address. We don't
match accounts with no email address, or where the same email address has been used for multiple user
accounts with different usernames, even if they exist in different user directories.
However, if the space you are importing is sensitive, you may want to manually check whether there have been
any changes to email addresses recently, before importing a space from Confluence Cloud.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 213
Earlier Confluence versions allowed attachments to be stored in WebDav or the Confluence database. This
is not an option for new installations.
By default, Confluence stores attachments in the attachments directory within the configured Confluence
home folder.
Database (deprecated)
Confluence 5.4 and earlier gives administrators the option to store attachments in the database that
Confluence is configured to use.
While storing attachments in the database can offer some advantages (such as ease of backup, and
avoiding issues with some characters in attachment filenames), please be aware that the amount of
space used by the database will increase because of greater storage requirements.
WebDav (deprecated)
If you are storing attachments in WebDav or your database, you can migrate to storing attachments in the file
system. When migrating attachments from your database to a filesystem, the attachments are removed from
the database after migration.
When the migration occurs, all other users will be locked out of the Confluence instance. This is to
prevent modification of attachments while the migration occurs. Access will be restored as soon as
the migration is complete.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 214
The following external website provides further information on migrating attachments from database to file
system storage that you might find helpful - https://www.scandio.de/blog/de/2013/05/confluence-attachment-
migration-the-safe-way-2.
When a file is uploaded, Confluence will attempt to extract and index its text. This allows people to search for
the content of a file, not just the filename. This process is quite memory intensive and can cause out of
memory errors when very large files are uploaded. Confluence has a number of safeguards to prevent this
happening:
If the uploaded file is larger than 100 MB, Confluence will not attempt to extract text or index the file
contents. Only the filename will be searchable.
If the uploaded file is one of the following types, Confluence will only extract up to:
1 MB of text from Excel (.xlsx)
8 MB of text from PDF (.pdf)
10 MB of text from other text files (including .txt, .xml, .html, .rtf etc)
16 MB of text from Word (.docx)
If the text extracted from the file was greater than 1 MB, it will be searchable, but Confluence will not
show this text as an excerpt with the search result.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 215
If Confluence stops extracting text, only a portion of the file's content will be searchable.
Confluence will only attempt to extract and index the file once. If it fails, it will not try again.
Some of the values above are configurable via system properties. If you experience out of memory errors
when people upload large files, you may want to reduce these limits further, using the following properties:
atlassian.indexing.attachment.maxsize
officeconnector.excel.extractor.maxlength
officeconnector.textextract.word.docxmaxsize
atlassian.indexing.contentbody.maxsize
The way attachments are stored changed significantly in Confluence 3.0. If you are upgrading from
Confluence 2.10 or earlier see Upgrading Confluence for recommended upgrade paths, and read the
version of the Hierarchical File System Attachment Storage page in our Confluence 3.0 documentation
which provides more detail about migrating to the new file system structure.
Confluence stores attachments, such as files and images, in a file system. Confluence's attachment storage
layout is designed to:
1. Limit the number of entries at any single level in a directory structure (as some file systems have a limit
on the number of files that can be stored in a directory).
2. Partition attachments per space making it possible for a system admin to selectively back up attachments
from particular spaces.
Attachments in Confluence have a number of identifying attributes: content id of the file itself, the space id and c
ontent id of the page the file is attached to. This means the file logically belongs to a piece of content which
logically belongs in a space (not all content belongs to a space). For files within a space in Confluence, the
directory structure is typically 8 levels, with the name of each directory level based on the following algorithm:
The modulo calculation is used to find the remainder after division, for example 800 modulo 250 = 50.
An example:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 216
To find the directory where attachments for a particular space are stored, go to <confluence
url>/admin/findspaceattachments.jsp and enter a space key. It will return the directory on the file
system where attachments for that space are stored.
File D in the above diagram is stored in a slightly different structure. Files that are not conceptually within a
space replace the level 2 - 4 directories with a single directory called 'nonspaced'. Examples of such files are the
global site logo and attachments on unsaved content.
When a text based file is uploaded in Confluence (for example Word, PowerPoint, etc), its text is extracted and
indexed so that people can search for the content of a file, not just the filename. We store the extracted text so
that when that file needs to be reindexed, we don't need to re-extract the content of the file.
The extracted text file will be named with the version number, for example 2.extracted_text, and stored
alongside the file versions themselves (within level 8 in the explanation above). We only keep the extracted text
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 217
Database diagrams
We find that creating your own visualization of the Confluence database can be useful if you want to focus
on particular tables or relationships. There are a number of tools you can use to create a visualization. Your
own database tool may have options to do this.
View our visualization (excludes some tables, including ActiveObjects tables)
We used DbVisualizer. See Viewing Table Relationships in the DbVis documentation to find out how it's
done.
Expand the link below to see a table of the primary and foreign keys for each table.
Click here to show/hide the table...
Note that Marketplace apps can also add tables to your database.
Primary Key Table Name Primary Key Foreign Key Table Name Foreign Key Column
Column Name Name
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 218
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 219
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 220
The following sections describe the principal tables involved in each logical area of Confluence –
authentication, content, system information, and so on.
Authentication
This section describes the tables involved in user authentication, which is implemented via the Atlassian
Crowd framework embedded in Confluence.
Table Description
cwd_directory The user directories in your Confluence site. Examples of directories are the
Confluence internal directory, or an LDAP directory.
cwd_application The applications (Jira, Confluence, and so on) defined in the authentication
framework.
Content
This section describes the tables involved in storing content. Content is the information that Confluence users
are storing and sharing.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 221
Table Description
attachmentdata The binary data for attached files. This table is only used in older Confluence
versions where Confluence was configured to store attachments in the
database. Otherwise, attachments are stored in the local file system.
content_perm_set A one-to-many mapping for content items and their permissions, with added
metadata.
Clustering
Table Description
clustersafety Normally, this table only contains one row. The value of the safetynumber is what
Confluence uses to find out whether another Confluence site is sharing its database
without being part of the cluster.
journalentry The journal service keeps the search index in synch across each Confluence node.
System information
These tables store data related to the status and configuration of the Confluence site.
Table Description
confversion Used by the upgrade system to determine what to expect from the database, so
as to negotiate upgrades.
plugindata A record of the plugins that have been installed, and when.
data is a blob of the actual plugin JAR file. This is principally cluster-related.
diagnosticalerts The diagnostics tool continuously checks for symptoms or behaviours that we
know may contribute to problems in your site. Events are stored for a limited
amount of time in this table.
Spaces
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 222
Table Description
spaces Information about the spaces themselves: key, human-friendly name and numeric ID.
Appearance
The following table contains information about the look and feel of your Confluence site.
Table Description
Miscellaneous
Table Description
bandana A catch-all persistence layer. This table contains things like user settings
and space- and global-level configuration data, and is used as storage by
plugins such as the Dynamic Task List plugin. Essentially, for storing
arbitrary data that doesn't fit anywhere else.
hibernate_unique_key Used by the high/low ID generator – the subsystem which generates our
primary keys.
If you interfere with this table, you may not be able to create objects in
Confluence.
indexqueueentries Manages full-content indexing across the system. The table generally
contains the last 12 hours (approximately) of updates, to allow re-syncing
of cluster nodes after restarts.
keystore Used by the trusted apps framework to store the server's private key, and
other servers' public keys.
links Tracks links within the server (that is, across and within spaces).
The following query identifies the last date on which content was modified in each space within a single
Confluence instance:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 223
It returns a list of space names, and the last date and time at which any content was added or changed.
Alternatively, this query identifies spaces where the content hasn't changed since a specified date:
The result is a simple list of space names and corresponding space keys.
Data Import and Export
Confluence administrators and users can import data into Confluence from a number of sources. The
permissions required differ, depending on the scope of the import. See Import Content Into Confluence.
You can also export Confluence content to various formats. See Export Content to Word, PDF, HTML and XML.
Related pages:
Managing Confluence Data
Confluence Administrator's Guide
To make sure Confluence maintains the formatting of the text document, add <pre> to the beginning and
</pre> to the end. This will let Confluence know that it should treat the text as pre-formatted.
If you're working in a Unix-like environment, you can add the opening and closing tags to all files in a
particular directory by following these steps:
1. Go to the directory containing the files
2. Run the following command in the terminal:
for i in $(ls); do echo "<pre>" >> m$i; cat $i >> m$i; echo
"</pre>" >> m$i; mv m$i $i; done
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 224
1. Go to the space and choose Space tools > Content Tools from the bottom of the sidebar
2. Choose Import.
3. Type the directory path into the Import directory box.
4. Select Trim file extensions to remove file extensions from the page titles when converting the files to
Confluence pages
The Confluence pages will take their titles from the files' names (including their extensions). To avoid
having page titles with a suffix like '.txt' check this box.
5. Select Overwrite existing pages if you want to replace existing Confluence pages with the same title
with the one you're importing.
6. Choose Import.
Screenshot: Importing text files
Audit log
The audit log allows administrators to look back at changes that have been made in your site. This is useful
when you need to troubleshoot a problem or if you need to keep a record of important events, such as changes
to global permissions. You'll need Confluence Administrator permissions to view the audit log.
To view the audit log
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 225
The audit log doesn't record information directly relating to pages such as page edits (you can see these in the
page history) location, or changes to page restrictions.
By default, events are removed from the log after 3 years. You can choose how long to keep events in the log
settings (up to 10 years).
You can also export the log to CSV format if you'd like to explore it in more detail, or if you need to maintain a
longer term record.
Configuring Confluence
This section focuses on settings and configurations Related pages:
within the Confluence application.
Customizing your Confluence Site
For guidelines on external configuration, see Config Confluence administrator's guide
uring a Confluence Environment.
Viewing System Information
Configuring the Server Base URL
Configuring the Confluence Search and Index
Configuring Mail
Configuring Character Encoding
Other Settings
Configuring System Properties
Working with Confluence Logs
Scheduled Jobs
Configuring the Whitelist
Configuring the Time Interval at which Drafts
are Saved
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 226
JMX (Java Management Extensions API) allows you to monitor the status of your Confluence instance in real
time. JMX uses objects called MBeans (Managed Beans) to expose data and resources from your application,
providing useful data such as the resource usage of your instance and its database latency, allowing you to
diagnose problems or performance issues.
In this page we'll guide you through how to use JConsole to monitor Confluence locally and remotely. JConsole
is included in the Java Development Kit (JDK), but you can use any JMX client.
This guide provides a basic introduction to the JMX interface and is provided as is. Our support team
can help you troubleshoot a specific Confluence problem, but aren't able to help you set up your
monitoring system or interpret the results.
If you are troubleshooting a particular issue, or only need to monitor Confluence for a short time, you can use
local monitoring. Local monitoring can have a performance impact on your server, so its not recommended for
long term monitoring of your production system.
To monitor locally:
1. Start JConsole (you'll find it in the bin directory of the JDK installation directory)
2. Select Local Process.
3. Select the Confluence process. It will be called something like org.apache.catalina.startup.Boo
tstrap start
See Using JConsole for more information on local monitoring.
Remote monitoring is recommended for production systems, as it does not consume resources on your
Confluence server.
To monitor remotely:
1. Add the following properties to your setenv.sh / setenv.bat file. The port can be any port that is not
in use.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 227
2. Decide how you will secure your remote connection. See Remote Monitoring and Management for more
information.
Although it is possible to disable authentication, we do not recommend doing this on a production system.
3. Start JConsole (you'll find it in the bin directory of the JDK installation directory).
4. Select Remote Process.
5. Enter your hostname and port (this is the port you specified earlier, not the Confluence port).
6. Click Connect.
See Using JConsole for more information on remote monitoring.
Confluence MBeans
You can use the following Confluence MBeans to see live information about your Confluence instance.
CacheStatistics
This MBean shows information about Confluence caches. This info can also be found on the Cache Statistics pa
ge.
IndexingStatistics
This MBean shows information related to search indexing. Here's some useful attributes.
SystemInformation
This MBean shows information such as the Confluence version and uptime. This info can also be found on the S
ystem Information page.
RequestMetrics
This MBean shows information related to system load and error pages served.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 228
MailServer-SMTPServer
This MBean shows information related to email dispatch attempts and failures. There will be an MBean for every
SMTP Mailserver that has been configured in the Confluence instance.
EmailsAttempted The number of email messages Confluence has tried to send. Integer
MailTaskQueue
SchedulingStatistics
This MBean shows information related to current jobs, scheduled tasks and the time that they were last run.
Additional MBeans
To also monitor Hibernate and Hazelcast (Confluence Data Center only) you will need to add the following
properties to your setenv.sh / setenv.bat file first.
This will make the Hibernate and Hazelcast MBeans available in your JMX client.
The Top Threads Plugin for JConsole is useful for monitoring whether the CPU is spiking. Use the following
command to start JConsole with this plugin:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 229
The 'Modification' section of the Confluence 'System Information' screen lists the files that have been
changed since your Confluence application was installed. You will find this information particularly useful when
upgrading Confluence to a new version, because you will need to re-apply all customizations after the upgrade.
To see the modifications made to files in your Confluence installation:
1. Choose the cog icon
Notes
The modification tracker does not detect changes to class files from the confluence.jar or other JAR
files. If you modify classes, the Confluence modification detection does not report the modification.
View Space Activity
Space activity information is disabled by default, and the 'Activity' tab won't
be visible unless the Confluence Usage Stats system app is enabled. See Related pages:
notes below. Page
If enabled, the space activity screen displays statistics on the activity in each History
space. These include: and Page
Compariso
How many pages and blog posts have been viewed, added or n Views
updated over a given period. Watch
Which content is the most popular (most frequently viewed). Pages,
Which content is the most active (most frequently edited). Spaces
Which people are the most active contributors/editors of content. and Blogs
How do I
To view the activity in a space:
get more
1. Go to the space and choose Space Tools at the bottom of the statistics
sidebar from
2. Choose Activity Confluenc
e?
You'll see a graphic display of the number of pages and blog posts that have been viewed, added, and
edited, showing trends over a period of time.
Screenshot: The Space Activity tab
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 230
In addition to the graphical representation of Views and Edits, the top ten most popular and most active
pages and/or blog posts will be listed, with a link to each.
Notes
To view Space Activity the Confluence Usage Stats system plugin must be enabled. This plugin is
known to cause performance problems on large installations and is disabled by default. System
administrators can enable this system app.
The app only collects data when it's activated.
If you're using Confluence Data Center or Confluence Cloud, space activity information isn't available.
Page hits aren't unique - the graph on the Space Activity screen includes all page hits, including
multiple visits by the same user.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 231
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 232
The top ten most popular and most active pages and/or blog posts will be listed, with a link to each.
Notes
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 233
The Confluence Usage Stats plugin, which provides the 'Global Activity' screen, is known to cause
performance problems on large installations. This plugin is disabled by default. A status report on the
progress of the performance issues with this plugin is available in this issue:
USGTRK-15 - Authenticate to see issue details .
Your Confluence system administrator can enable the plugin, but please be aware of the possible
impact upon your site's performance.
The plugin is sometimes called 'Confluence Usage Tracking'.
If your Confluence site is clustered, the global activity information will not be available.
After adding memory, setting a proxy, or changing other Java options, it can be difficult to diagnose whether the
system has picked them up. This page tells you how to view the system properties that your Confluence site is
using.
You can see the expanded system properties on the 'System Information' screen of the Confluence
Administration Console. You do not need to restart Confluence before viewing the information.
To see the system properties recognized by your Confluence installation:
1. Choose the cog icon
Example
If Confluence is installed to run in a non-root context path (that is, it has a context path), then the server base
URL should include this context path. For example, if Confluence is running at:
http://www.foobar.com/confluence
http://www.foobar.com/confluence
Notes
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 234
Using different URLs. If you configure a different base URL or if visitors use some other URL to access
Confluence, it is possible that you may encounter errors while viewing some pages.
Changing the context path. If you change the context path of your base URL, you also need to make
these changes:
1. Stop Confluence.
2. Go to the Confluence installation directory and edit <installation-directory>\conf\serve
r.xml.
3. Change the value of the path attribute in the Context element to reflect the context path. For
example, if Confluence is running at http://www.foobar.com/confluence, then your path a
ttribute should look like this:
In this example we've used /confluence as the context path. Note that you can't use /resourc
es as your context path, as this is used by Confluence, and will cause problems later on.
4. Save the file.
5. Restart Confluence and check you can access it at http://www.foobar.com/confluence.
Note: There's a known issue that affects some Confluence versions which can cause links to break
when the context path is changed. See
CONFSERVER-55267 - Links to internal pages and attachments are changed to a self-referential link after
changing the context path or protocol (http/https) in the base URL CLOSED
for details.
Proxies. If you are running behind a proxy, ensure that the proxy name matches the base URL. For
example: proxyName="foobar.com" proxyPort="443" scheme="https". This will make sure we
are passing the information correctly. For more information on proxing Atlassian applications, see Proxyi
ng Atlassian Server applications.
This information needs to be added in the Connector element at {CONFLUENCE_INSTALLATION}\con
f\server.xml.
Configuring the Confluence Search and Index
Confluence administrators can adjust the behavior of the Confluence search, and manage the index used by the
search.
Configuring Indexing Language
Configuring Search
Content Index Administration
Enabling OpenSearch
Rebuilding the Ancestor Table
Setting Up Confluence to Index External Sites
Setting Up an External Search Tool to Index Confluence
Related pages:
Search
Confluence Administrator's Guide
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 235
Configuring Search
There are a few ways to search for content in Related pages:
Confluence:
Search
Using the search panel, which allows you to
quickly search and filter results.
Using the advanced search page.
Using a search macro embedded on a
Confluence page (for example, the
Livesearch Macro or QuickNav Gadget).
Read more about the different search options in
Confluence.
By default, the search panel feature is enabled, with
the maximum number of simultaneous requests set
to 40. These options can be modified as described
below.
Confluence admins can set the maximum number of simultaneous searches users can perform using the
search panel. By default, the maximum is set to 40. This limit applies to a single Confluence node. If you're
running Confluence Data Center with multiple nodes, this number will increase.
If your Confluence server serves a large number of individuals who use this feature regularly, some of whom
are being denied access to it, you may wish to increase this value.
To change the maximum number of simultaneous search requests in Confluence:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 236
The search panel feature offers a quick way for users to search and filter content in Confluence. We
recommend keeping this feature enabled, unless it's causing significant performance issues on your site.
If you disable the quick search option:
The search panel will no longer appear when users click the search field. When you enter a search
query, we'll take you to the advanced search page.
The Confluence QuickNav Gadget will no longer drop down a list of search results. When you enter a
search query, we'll take you to the advanced search page.
Other search macros, including the Livesearch Macro and the Page Tree Search Macro, won't be affected if
you disable the quick search option.
To disable quick search options from your Confluence site:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 237
The search index is maintained automatically, but you may need to rebuild it manually if your searching and
mail threading are malfunctioning, or if directed to in the upgrade notes for a new version.
To rebuild the search index:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 238
The 'Did You Mean' feature is no longer available in Confluence. This index is therefore redundant, and will
be removed at some time in the future.
Slow reindexing
Does the reindexing take a long time to complete? The length of time depends on the following factors:
Number of pages in your Confluence instance.
Number, type and size of attachments.
Amount of memory allocated to Confluence.
Disk throughput.
It may help to increase the heap memory allocation of Confluence by following the instructions here Increasin
g Jira application memory. The process is basically the same for Confluence or Jira applications.
If you are running an older version of Confluence and find that the index rebuild is not progressing, you may
need to shut down Confluence, and restart it with the following Java system property set: bucket.indexin
g.threads.fixed=1. This will cause the re-indexing to happen in a single thread and be much more stable
(but slower).
Confluence uses a search engine called Lucene. If you need to see more details of the indexed pages in
your Confluence site, you can download and run Luke. Luke is a development and diagnostic tool that
accesses existing Lucene indexes and allows you to display and modify their content in several ways.
Start Luke and use it to open the index directory, located in your Confluence Home directory. For example:
c:\confluence\data\confluence-home\index.
Note: Confluence 5.2 (and later) use Lucene 4.3 (or later). If the Luke library has not been updated to
support the latest version of Lucene, you can compile Luke yourself, from the fork on Github – please read
the warnings and notes in the README file of that repository.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 239
If you are still experiencing problems after performing the above rebuild, the next step might be to rem
ove the index and rebuild it from scratch.
The space activity feature uses the index to store data. If you remove the index file, the existing
activity data will disappear.
A tip for the development community: If you have the Confluence source, you can look for references
to the SmartListManager to find the screens and lists that rely on the content index.
Enabling OpenSearch
With OpenSearch autodiscovery, you can add Confluence search to your Related pages:
Firefox or Internet Explorer search box. By default, OpenSearch
autodiscovery is enabled. This feature can be enabled or disabled as Search
described below. Confluenc
e
To enable or disable OpenSearch autodiscovery: Administra
tor's Guide
1. Choose the cog icon
The way you fix problems with the ancestor table changed significantly in Confluence 6.14.
If you're using Confluence 6.13 or earlier, see Rebuilding the Ancestor Table in Confluence 6.13 or
earlier to find out how to rebuild the ancestor table.
The ancestor table records the parent and descendant (child) relationship between pages. It is also used when
determining whether a page will inherit view restrictions from a parent page.
Occasionally records in the ancestor table can become corrupted. The Repair the Ancestors Table scheduled
job finds and automatically fixes problems in the ancestors table. The job runs daily.
If you suspect there is a problem, you can also run this job manually.
1. Go to
If you want to see the result of the job each time it runs, you can change the logging level of com.atlassian.c
onfluence.pages.ancestors to INFO.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 240
You'll then see a message similar to the one below in the Confluence application log, each time the job runs:
If you're using Confluence 6.13 or earlier the way you rebuild the ancestor table is different. See Rebuilding the
Ancestor Table in Confluence 6.13 or earlier for more information.
Setting Up Confluence to Index External Sites
Confluence cannot easily index external sites, due to Related pages:
the way Lucene search works in Confluence, but the
re are two alternatives: Setting Up an External Search
Tool to Index Confluence
1. Embed External Pages Into Confluence Configuring the Confluence
2. Replace Confluence Search Search and Index
If you only have a small number of external sites to index, you may prefer to enable the HTML-include Macro
and use it embed the external content inside normal Confluence pages.
Use your own programmer resources to replace Confluence's internal search with a crawler that indexes both
Confluence and external sites. This advanced option is easier than modifying the internal search engine. It
requires removing Confluence internal search from all pages and replacing the internal results page with your
own crawler front-end.
1. Setup a replacement federated search engine to index the Confluence site, as well as your other sites,
and provide the results that way. You would need to host a web crawler, such as these open-source
crawlers. Note that you can perform a search in Confluence via the Confluence API.
2. Replace references to the internal search by modifying the site layout so that it links to your search
front-end
3. Host another site containing the search front-end. You may wish to insert it into a suitable context path
in your application server so that it appears to be from a path under Confluence. Tomcat sets
Confluence's paths from the Confluence install\confluence\WEBINF\web.xml file.
Configuring Mail
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 241
> General Configuration > Mail Servers. This will list all currently configured SMTP servers.
2. Click Add New SMTP Server (or edit an existing server).
3. Edit the following fields as required:
Name: By default, this is simply 'SMTP Server'.
From Address: Enter the email address that will be displayed in the 'from' field for email
messages originating from this server.
This field is mandatory. This must be an ordinary email address, you can't enter variables in this
field.
From Name: Enter the name that will be displayed in the 'from' field for email messages
originating from this server. This is the text which appears before the user's registered email
address (in square brackets).
This field accepts the following variables, which reference specific details defined in the relevant
Confluence user's profile:
Variable Description
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 242
2. Click Send Test Email to check that the server is working. Check that you get the test email in your
inbox.
3. You can flush the email queue to send the email message immediately. Go to Mail Queue, and click F
lush Mail Queue. See The Mail Queue.
A user can test that notifications are working as follows:
1. Go to your user profile (using the Settings link) and edit your email preferences. See Email
Notifications.
2. Enable Notify On My Actions. (By default, Confluence does not send you notifications for your own
changes.)
3. Go to a page you wish to get notifications about.
4. Choose Watch at the top-right of the page. See Watch Pages, Spaces and Blogs.
5. Edit the page, make a change, and save the page.
6. Check your email inbox. You may need to wait a while for the email message to arrive.
The simplest way to set up a mail server through the Confluence Administration console. See Configuring a
Server for Outgoing Mail.
If you want to add different options or parameters you can also set up a mail session for the Confluence
distribution. In the example below we'll set up Gmail.
To set up a mail session for the Confluence distribution:
1. Stop Confluence.
2. Move (don't copy) mail-x.x.x.jar from <confluence-install>\confluence\WEB-INF\lib to
<confluence-install>\lib (x.x.x. represents the version numbers on the jar files in your
installation).
Don't leave a renamed backup of the jar files in \confluence\WEB-INF\lib. Even with a different file
name, the files will still be loaded as long as it remains in the directory.
3. Edit the <confluence-install>\conf\server.xml file and add the following at the end of the
Confluence <context> tag, just before </Context>.
Note: you're editing the <context> tag that contains the Confluence context path, not the one that contains
the Synchrony context path.
<Resource name="mail/GmailSMTPServer"
auth="Container"
type="javax.mail.Session"
mail.smtp.host="smtp.gmail.com"
mail.smtp.port="465"
mail.smtp.auth="true"
mail.smtp.user="[email protected]"
password="yourPassword"
mail.smtp.starttls.enable="true"
mail.transport.protocol="smtps"
mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
/>
4. Restart Confluence.
5. Go to
java:comp/env/mail/GmailSMTPServer
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 243
Note that the JNDI Location is case sensitive and must match the resource name specified in server.xml.
8. Save your changes and send a test email.
You can set the default send option (send / do not send) and the default schedule (daily or weekly).
To configure the Recommended Updates email notification:
1. Choose the cog icon
You can also turn off the recommended updates notification for the entire site, by disabling the 'Confluence
daily summary email' system app. See Disabling and enabling apps.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 244
By default, Confluence uses UTF-8 character encoding. Confluence has a number of checks in place to
make sure your database is also using UTF-8 (or equivalent for your database).
While it is possible to change the character encoding, it is not recommended. Changing the Confluence
character encoding will change your HTTP request and response encoding and your filesystem encoding as
used by exports and Velocity templates. You may also be prevented from restarting or upgrading
Confluence, depending on your database.
To change the Confluence character encoding (not recommended):
1. Go to
Your database, and the JDBC or datasource connection to it, must be configured to use UTF-8 (or the
equivalent for your database, for example, AL32UTF8 for Oracle databases). There are a number of checks
in place to warn you if your database character encoding is incorrect.
See Configuring Database Character Encoding for more information.
See Troubleshooting Character Encodings to find out how to test your character encoding.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 245
If character encoding is not configured correctly in your Confluence site, you may experience problems like:
Non-ASCII characters appearing as question marks (?)
Page links with non-ASCII characters not working
Single characters being displayed as two characters
Garbled text appearing
To diagnose the problem, follow these steps.
Confluence includes an encoding test that can reveal problems with your configuration. You'll need to be a
Confluence admin to do this.
1. Head to <your-confluence-url>/admin/encodingtest.action
2. Follow the prompts to paste a line of text and start the test. You can also paste text in a specific
language, for example Japanese, if you're experiencing a particular problem with that language.
If the text displayed in the encoding test is different to what you entered, then there are problems with your
character encoding settings. Here's what a successful test looks like.
Your database and Confluence must use the same character encoding. See Configuring Database Character
Encoding for more information.
3. Get help
If you're still having problems with character encoding, create a support request, and our support team will help
you solve the problem.
Include the following details to help us identify your problem:
screenshots of the problem occurring
results of the encoding test
information about your database (including version)
A copy of the information on your System Information page.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 246
The € (euro) symbol is a three byte character, with byte values in file (UTF-8) of 0xE2, 0x82, 0xAC.
Sometimes, if the character encoding is not set consistently among all participating entities of the system,
Confluence, server and the database, one may experience strange behavior.
...
I write a page with a Euro sign in it (€). All is well, the Euro sign shows up in the wiki markup
text-box, and the preview, and the display of the saved page.
One day later, the Euro sign has changed into a question mark upside down!
...
What is going on? Why does the Euro sign mysteriously change? How do I prevent it?
Interestingly enough the character encoding test passes with no problems, demonstrating that Confluence and
the connected Database both recognize the € symbol.
There are two potential reasons for this behavior:
When data transferred to it via the connection which does not use utf-8 encoding gets encoded incorrectly.
Hence, updating the connection encoding may resolve this problem from now on, yet it probably would not affect
already existing data.
If your Database encoding is not set to UTF-8, yet is using some other encoding such as latin1, it could be one
of the potential reasons why you lose the "€" characters at some stage. It could be occurring due to caching.
When Confluence saves data to the database, it may also keep a local cached copy. If the database encoding is
set incorrectly, the Euro character may not be correctly recorded in the database, but Confluence will continue to
use its cached copy of that data (which is encoded correctly). The encoding error will only be noticed when the
cache expires, and the incorrectly encoded data is fetched from the database.
For instance the latin1 encoding would store and display all 2-byte UTF8 characters correctly except
for the euro character which is replaced by '?' before being stored. As Confluence's encoding was set
to UTF-8, the 2-byte UTF-8 characters were stored in latin1 database assuming that they were two la
tin1 different characters, instead of one utf8 character. Nevertheless, this is not the case for 3-byte
utf8 characters, such as the Euro symbol.
Please ensure that you set the character encoding to UTF-8 for all the entities of your system as advised in this
guide.
MySQL 3.x Character Encoding Problems
MySQL 3.x is known to have some problems upper- and lower-casing certain (non-ASCII) characters.
Solution
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 247
The following sections tell you how to set up a WebDAV client natively for a range of different operating
systems. WebDAV clients typically appear as drives in your operating system's file browser application, such
as Windows Explorer in Microsoft Windows, or Konqueror in Linux.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 248
You can successfully connect but you can't see content when using HTTPS, so this technique won't
work for Confluence Cloud. Use a third-party WebDAV client instead.
http://ourconfluence.sample.com/wiki/plugins/servlet/confluence/
default
Use your username (jsmith), not your email address, unless your email address is your
username.
Confluence will appear as a shared drive in Finder. You can use the same URL to connect using a third party
WebDav client, like CyberDuck.
This section covers the two methods for configuring a WebDAV client natively in Microsoft Windows:
As a network drive
As a web folder
If possible, use the network drive method as this will enable more comprehensive WebDAV client interaction
with Confluence than that provided by a web folder. However, your Confluence instance must meet several
environmental constraints if you use this method. If you cannot configure your instance to meet these
requirements, then use the web folder method or third-party WebDAV client software.
If you're using SSL you may need to add @SSL to the end of your server URL, for example:
http://<confluence server
url>@SSL/confluence/plugins/servlet/confluence/default
If you run into any problems with the procedures in this section, please refer to the WebDAV Troubleshooting
page.
To map a Confluence WebDAV client network drive, your Confluence instance must be configured so that all
of the following criteria is met:
Has no context root
There's an issue that can prevent Network Drives from being mapped. Please use the Network
Folders steps below as a workaround.
The reason for these restrictions results from limitations in Microsoft's Mini-Redirector component. For more
information, please refer to Microsoft's server discovery issue.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 249
There are many tools and mechanisms available for configuring WebDAV clients in these operating systems.
Therefore, we have chosen to demonstrate this using the file manager Konqueror, which is part of the Linux
K Desktop Environment.
To set up a Confluence WebDAV client in Konqueror:
1. Open Konqueror
2. In the 'Location' field, enter the URL for the Confluence WebDAV location using the 'protocol' webdav
s (for example, webdavs://<confluence server
url>/confluence/plugins/servlet/confluence/default or webdavs://<confluence
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 250
You should be able to click to load many, but not all files. In practice, you would normally save a modified file
locally, then drag it to the Konqueror window to upload it to Confluence.
In earlier versions of the WebDAV plugin, separate options for restricting a WebDAV client's write
permissions (that is, create/move, edit and delete actions), were available. However, in the current version of
this plugin, they have been simplified and combined into a general write permission restriction that covers all
of these actions.
WebDAV clients are now denied write permission to your Confluence installation by setting a regex that
matches specific content within the WebDAV client's user agent header. Upon setting a regex, it will be
added to a list of restricted WebDAV clients. Any WebDAV clients whose user agent header matches a regex
in this list will be denied write permission to your Confluence installation.
Example: A PROPFIND method header generated by a Microsoft Web Folder WebDAV client, showing the
user agent header field:
Unlike earlier versions of the WebDAV plugin, which could only restrict write permissions for all Web
DAV clients, the current version of this plugin allows you to restrict write permissions to specific
WebDAV clients.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 251
3.
If you observe any idiosyncrasies with your WebDAV client, such as a folder that does exist on your
Confluence site but is missing from the client, you can disable the WebDAV plugin's strict path checking
option, which may minimize these problems.
To disable the WebDAV plugin's strict path checking option:
1. Choose the cog icon
In the unlikely event that you have problems with the WebDAV client's performance or stability, you can
enable access to automatically generated (that is, virtual) files and folders.
Note:
By default, these options are hidden on the 'WebDAV Configuration' page. To make them visible, append the
parameter ?hiddenOptionsEnabled=true to the end of your URL and reload the page. For example:
<Confluence base
URL>/admin/plugins/webdav/config.action?hiddenOptionsEnabled=true
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 252
When macros such as the RSS Macro make HTTP requests to servers which are down, a long timeout value is
used. You can set this timeout value through a system parameter to avoid this.
To configure the HTTP Timeout Settings:
1. Choose the cog icon
Confluence uses the guidelines in this Java document from Oracle: Class NumberFormat.
To change the number formats in Confluence:
1. Choose
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 253
Shortcut links are added and maintained by Confluence administrators from the Administration Console.
Enter a shortcut link on the Advanced tab of the Insert Link dialog. See Links for details.
Specify in the link what should be appended to the end of the shortcut URL, followed by an at-sign (@) and
the key of the shortcut. Shortcut names are case-insensitive. So, for example, using the keys shown in the
above screenshot:
a Atlassian http://www.google.com/search?q=Atlassian+Confluence
Google Confluence@Google
search
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 254
Shortcut links are listed on the Shortcut Links tab of the Administration Console. Click Remove to delete
the shortcut.
XML-RPC and SOAP remote APIs were deprecated in Confluence 5.5. We recommend using the fully
supported Confluence Server REST API wherever possible.
To use the XML-RPC and SOAP remote APIs you need to enable the APIs from the Administration Console.
You'll need System Administrator permissions to do this.
To enable the remote API:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 255
Related pages:
By default, comments are displayed in threaded mode. A Confluence
Administrator (see Global Permissions Overview) can enable or disable the Comment
threaded view for the entire Confluence site. on pages
and blog
To enable or disable the threaded view:
posts
1. Choose the cog icon Confluenc
e
, then choose General Configuration administrat
2. Select Further Configuration in the left-hand panel or's guide
3. Choose Edit
4. Select or unselect the Threaded Comments checkbox to enable or
disable threaded mode
5. Choose Save
You can download language packs from the Atlassian Marketplace, or you can download language packs
developed by the Confluence user community from https://translations.atlassian.com.
The easiest way to install a language pack is by uploading the file in UPM (Universal Plugin Manager).
Language packs are usually distributed as JAR or OBR files.
To install a language pack:
1.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 256
1. Go to
This feature is useful if you are working on creating translations of the Confluence user interface. After
opening the Confluence dashboard, you can add the following action to the end of your Confluence URL:
?i18ntranslate=on
This will cause each element of the user interface to display its special key name. This makes it easier to
find the context for each key within the user interface. You can then search for the key on http://translations.a
tlassian.com where you can enter an appropriate translation for your custom language pack.
The key names are displayed with a 'lightning bolt' graphic. Here's an example from a space sidebar:
To turn off the translation view, add the following to the end of the Confluence URL:
?i18ntranslate=off
Atlassian support or the Atlassian bug-fixing team may occasionally provide patches for critical issues that have
been resolved but have not yet made it into a release. Those patches will be class files which are attached to the
relevant issue in our Jira bug-tracking system.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 257
JAR files in the /WEB-INF/lib directory. Therefore, classes in the first directory will effectively replace classes
of the same name and package which would otherwise be loaded from the JAR files.
To revert the patch, simply remove the class files from the <installation-directory>/confluence/WEB
-INF/classes/ folder (taking care to only remove those that apply to the patch you wish to revert), then restart
the instance.
Once the issue that the patch relates to is resolved, you should upgrade to the version of Confluence
that contains the fix, and revert the patch. Patches are often naive and untested and may not solve the
problem in the most efficient way. As such, an official fix should be preferred in all cases.
Linux
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 258
To Configure System Properties in Windows Installations When Starting from the .bat File:
1. Edit the <installation-directory>/bin/setenv.bat file.
2. Find the section set CATALINA_OPTS=%CATALINA_OPTS%
(this is JAVA_OPTS=%JAVA_OPTS% in Confluence 5.5 and earlier)
3. Refer to the list of parameters in Recognized System Properties.
Add all parameters in a space-separated list. Make sure to keep the string %CATALINA_OPTS% in
place.
Windows service
There are two ways to configure system properties when you Start Confluence Automatically on Windows as
a Service, either via command line or in the Windows Registry
tomcat9w //ES//<SERVICENAME>
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 259
5. Append any new option on its own new line by adding to the end of the existing Java Options. Refer to
the list of parameters in Recognized System Properties.
In some versions of Windows, there is no option to add Java variables to the service. In these cases, you
must add the properties by viewing the option list in the registry.
1. Go to the Registry Editor (Start > regedit.exe).
2. Find the Services entry:
64bit: HKEY_LOCAL_MACHINE >> SOFTWARE >> WOW6432Node >> Apache Software
Foundation >> Procrun 2.0 >> Confluence service name
32bit: HKEY_LOCAL_MACHINE >> SOFTWARE >> Apache Software Foundation >>
Procrun 2.0 >> Confluence service name
If you've used the Quick Start or CloudFormation template to deploy Confluence Data Center in AWS, you
will pass system properties via the Cloud Formation Template, and not using the methods described above.
1. In the AWS Console, choose Update Stack
2. Under Advanced, enter system properties in the Catalina Properties field as follows:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 260
See Recognized System Properties for the full list of system properties available to your Confluence version.
Confluence supports some configuration and debugging settings that can be enabled through Java system
properties. System properties are usually set by passing the -D flag to the Java virtual machine in which
Confluence is running. See the full instructions: Configuring System Properties.
atlassian.forceSchemaUpdate
confluence.home
confluence.dev.mode
confluence.disable.mailpolling
confluence.i18n.reloadbundles
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 261
confluence.ignore.debug.logging
confluence.jmx.disabled
confluence.optimize.index.modulo
confluence.plugins.bundled.disable
atlassian.indexing.contentbody.maxsize
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 262
atlassian.mail.fetchdisabled
atlassian.mail.senddisabled
atlassian.disable.caches
confluence.html.encode.automatic
org.osgi.framework.bootdelegation
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 263
confluence.diff.pool.size
confluence.diff.timeout
confluence.html.diff.timeout
atlassian.user.experimentalMapping
confluence.import.use-experimental-importer
atlassian.webresource.disable.minification
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 264
index.queue.thread.count
index.queue.batch.size
password.confirmation.disabled
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 265
confluence.browser.language.enabled
upm.pac.disable
Universal Plugin Manager 1.5 false When this property is set to true,
then UPM will not try to access
the The Atlassian Marketplace.
This is useful for application
servers that do not have access
to the Internet. See the UPM
documentation.
confluence.reindex.documents.to.pop
confluence.reindex.attachments.to.pop
confluence.upgrade.active.directory
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 266
confluence.context.batching.disable
com.atlassian.logout.disable.session.invalidation
officeconnector.spreadsheet.xlsxmaxsize
com.atlassian.confluence.extra.calendar3.display.events.calendar.maxpercalendar
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 267
com.atlassian.confluence.allow.downgrade
confluence.skip.reindex
reindex.thread.count
reindex.attachments.thread.count
atlassian.confluence.export.word.max.embedded.images
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 268
confluence.mbox.directory
confluence.search.max.results
confluence.upgrade.recovery.file.enabled
confluence.junit.report.directory
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 269
officeconnector.textextract.word.docxmaxsize
cluster.login.rememberme.enabled
confluence.cluster.hazelcast.listenPort
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 270
confluence.document.conversion.threads
confluence.document.conversion.threads.wait
confluence.cluster.node.name
confluence.document.conversion.fontpath
confluence.document.conversion.words.defaultfontname
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 271
confluence.document.conversion.slides.defaultfontname.regular
confluence.document.conversion.slides.defaultfontname.asian
confluence.document.conversion.slides.defaultfontname.symbol
confluence.clickjacking.protection.disable
confluence.cluster.index.recovery.query.timeout
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 272
confluence.cluster.index.recovery.generation.timeout
confluence.cluster.index.recovery.num.attempts
com.atlassian.confluence.officeconnector.canary.memory_value
com.atlassian.confluence.officeconnector.canary.timeout
atlassian.plugins.enable.wait
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 273
confluence.cluster.hazelcast.max.no.heartbeat.seconds
confluence.startup.remigration.disable
cluster.safety.time.to.live.split.ms
confluence.cph.max.entries
confluence.cph.batch.size
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 274
synchrony.stack.space
synchrony.enable.xhr.fallback
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 275
synchrony.database.test.connection.on.checkin
synchrony.proxy.enabled
synchrony.context.path
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 276
confluence.pdfexport.permits.size
confluence.pdfexport.timeout.seconds
confluence.flyingpdf.default.characters.per.line
synchrony.host
synchrony.proxy.healthcheck.disabled
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 277
page.index.macro.max.pages
atlassian.indexing.attachment.maxsize
officeconnector.excel.extractor.maxlength
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 278
confluence.collab.edit.user.limit
jobs.limit.per.purge
all.jobs.ttl.hours
unsuccessful.jobs.ttl.hours
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 279
hide.system.error.details
atlassian.recovery.password
confluence.extra.userlister.limit
conversion.sandbox.pool.size
(formerly document.conversion.sandbox.pool.size)
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 280
conversion.sandbox.startup.time.limit.secs
(formerly document.conversion.sandbox.startup.time.limit.secs)
document.conversion.sandbox.request.time.limit.secs
sandbox.termination.tolerance
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 281
conversion.sandbox.memory.limit.megabytes
(formerly document.conversion.sandbox.memory.limit.megabytes)
document.conversion.sandbox.log.level
sandbox.error.delay.millis
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 282
document.conversion.sandbox.disable
diagnostics.os.check.period.secs
diagnostics.os.min.free.memory.megabytes
diagnostics.os.min.free.disk.space.megabytes
diagnostics.slow.http.request.secs
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 283
diagnostics.slow.long.running.task.secs
diagnostics.slow.macro.rendering.secs
diagnostics.jvm.memory.check.period.secs
diagnostics.jvm.memory.allocation.rate.percent
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 284
diagnostics.jvm.memory.allocation.monitoring.period.secs
diagnostics.jvm.garbage.collector.percent
diagnostics.jvm.garbage.collector.monitoring.period.secs
diagnostics.alert.retention.period.days
diagnostics.alert.truncation.interval.minutes
pdf.export.sandbox.disable
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 285
pdf.export.sandbox.request.time.limit.secs
pdf.export.sandbox.memory.requirement.megabytes
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 286
Related pages:
This section describes Confluence's default logging behavior, and assumes that you have not changed the
destination of the logs. In order to unify logging across different application servers, Confluence uses the atl
assian-confluence.log as its primary log, not the application server log.
When you start Confluence, log entries will be sent to the application server logs until Confluence has
completed its initial bootstrap. Any log entries written to the console will be repeated into the log in the
Confluence home directory as described below.
Once the initial startup sequence is complete, all logging will be to <confluence-home>/logs/atl
assian-confluence.log. For example: c:/confluence/data/logs/atlassian-confluenc
e.log.
Note that the default location is the Confluence home directory, not the application server's log file. The
home directory is specified in <confluence-installation>/confluence/WEB-INF/classes/confl
uence-init.properties.
The logging behavior for Confluence and Synchrony is defined in the following properties file:
<CONFLUENCE-INSTALL>/confluence/WEB-INF/classes/log4j.properties
This file is a standard log4j configuration file, as described in the Apache log4j documentation.
In log4j, an output destination is called an 'appender'. To change the destination of the log files, you need to
stop Confluence and then change the settings in the 'Logging Location and Appender' section of the log4
j.properties file. The location of this file is described above.
In the standard properties file, you will find entries for two appenders:
com.atlassian.confluence.logging.ConfluenceHomeLogAppender – This is a custom
appender which controls the default logging destination described above. This appender allows the
following settings:
MaxFileSize
MaxBackupIndex
org.apache.log4j.RollingFileAppender – If you want to log to a different location,
uncomment the RollingFileAppender line and change the destination file in the line below it.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 287
The Synchrony log destination can also be changed in the same way in file.
Confluence ships with the full suite of appenders offered by log4j. Read more about appenders in the log4j
documentation.
By default, Confluence keeps 5 log files, which are overwritten as they reach 20 MB.
You can change the default log size and the number of log files to keep by editing the following values in <CO
NFLUENCE-INSTALL>/confluence/WEB-INF/classes/log4j.properties file.
log4j.appender.confluencelog.MaxFileSize=20480KB
log4j.appender.confluencelog.MaxBackupIndex=5
See Configuring Logging for instructions on how to change the logging configuration of Confluence.
Here's some specific log configurations you may need when troubleshooting.
You may want to increase Confluence's logging so that it records individual SQL requests sent to the
database. This is useful for troubleshooting specific problems.
You can enable detailed SQL logging in two ways:
At runtime – see instructions above.
Via the logging properties file – see the detailed instructions.
You can configure the log to show which users are accessing which pages in Confluence. This can only be
done via the logging properties file – see the detailed instructions.
Atlassian Troubleshooting and support tools includes a log analyzer that can check for you Confluence logs
for errors and match them against known problems in our knowledge base and issue tracker.
See Troubleshooting Problems and Requesting Technical Support to find out how to set up a periodic scan
of your log files.
Configuring Logging
We recommend that you configure Confluence's logging to your own requirements. You can change the log
settings in two ways:
Configure logging in Confluence Administration – Your changes will be in effect only until you next restart
Confluence.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 288
Edit the properties file – Your changes will take effect next time you start Confluence, and for all
subsequent sessions.
Both methods are described below. In some rare circumstances you may also need to configure the logging.pro
perties file.
Terminology: In log4j, a 'logger' is a named entity. Logger names are case-sensitive and they follow a
hierarchical naming standard. For example, the logger named com.foo is a parent of the logger named com.fo
o.Bar.
You can change some of Confluence's logging behavior via the Administration Console while Confluence is
running. Any changes made in this way will apply only to the currently-running Confluence lifetime. The changes
are not written to the log4j.properties file and are therefore discarded when you next stop Confluence.
Not all logging behavior can be changed via the Administration Console. For logging configuration not mentioned
below, you will need to stop Confluence and then edit the logging properties file instead.
The 'Logging and Profiling' screen shows a list of all currently defined loggers. On this screen you can:
Turn page profiling on or off.
Turn detailed SQL logging on or off.
Add a new logger for a class/package name.
Remove a logger for a class/package name.
Set the logging level (INFO, WARN, FATAL, ERROR or DEBUG) for each class or package name.
Reset all logging levels to a predefined profile.
Changing the logging configuration
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 289
To configure the logging levels and other settings on a permanent basis, you need to stop Confluence and then
change the settings in the log4j.properties file, described above.
The properties file contains a number of entries for different loggers that can be uncommented if you are
interested in logging from particular components. Read more in the Apache log4j documentation.
See Working with Confluence Logs for some guidelines on specific configuration options you may find useful.
A few libraries used by Confluence use java.util.logging rather than log4j or slf4j. These libraries include:
com.sun.jersey
org.apache.shindig
net.sf.ehcache
Confluence's logging.properties file is set to redirect java.util.logging at specific levels to log4j via slf4j.
To increase logging levels for these libraries you must first configure the logging.properties file in <CONFL
UENCE-INSTALL>/confluence/WEB-INF/classes/. The logging levels are different from log4j and are
listed here.
For example, to increase logging for shindig change the following line in the logging.properties file:
org.apache.shindig.level = INFO
to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 290
org.apache.shindig.level = FINE
And then use one of the methods above as well to configure the log4j level.
log4j Logging Levels
Logging Levels
DEBUG - designates fine-grained informational events that are most useful to debug an application (what
is going on)
INFO - announcements about the normal operation of the system - scheduled jobs running, services
starting and stopping, user-triggered processes and actions
WARN - any condition that, while not an error in itself, may indicate that the system is running
sub-optimally
ERROR - a condition that indicates something has gone wrong with the system
FATAL - a condition that indicates something has gone wrong so badly that the system can not recover
TRACE - n/a within confluence
There are two ways to modify the logging levels, as described in Working with Confluence Logs.
1. Modifying the runtime log levels via the Administration Console (changes made here will not
persist across restarts).
2. Manually modifying the <Confluence-Install>\confluence\WEB-INF\classes\log4j.
properties file.
The standard Confluence log level WARN is a way for Confluence to communicate with the server administrator.
Logging at WARN level and higher should be reserved for situations that require some kind of attention from the
server administrator, and for which corrective action is possible.
See log4j manual for more information.
Troubleshooting SQL Exceptions
If you get an exception similar to those shown below, it is a good idea to increase the logging levels of your
Confluence instance. If you request Atlassian support, this additional logging will help us work out the cause of
the error.
Increased logging levels will enable us to diagnose errors like these:
org.springframework.dao.DataIntegrityViolationException:
(HibernateTemplate): data integrity violated by SQL ''; nested exception
is java.sql.BatchUpdateException: Duplicate entry '1234' for key 1
at
org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translat
e(SQLStateSQLExceptionTranslator.java:88)
caused by: java.sql.BatchUpdateException: Duplicate entry '1234' for key
1
at
com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatem
ent.java:647)
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 291
or
This document outlines the steps to take to increasing logging on your system.
If you can not locate these lines in your log4j.properties file, please add them to the end of it.
2. Restart Confluence.
3. Redo the steps that led to the error.
4. Zip up your logs directory and attach it your support ticket.
5. If you are using Oracle and received a constraint error, please ask your database administrator which ta
ble and column the constraint (that is, CONFLUENCE.SYS_C0012345) refers to and add that information
to your support ticket.
6. Open confluence/WEB-INF/classes/log4j.properties again and remove the 4 lines you added
in step 1. (The additional logging will impact performance and should be disabled once you have
completed this procedure.)
RELATED TOPICS
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 292
To run a job manually head to the Scheduled Jobs list and choose Run next to the job. It will
run immediately.
Not all jobs can be run manually.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 293
To see when a job was last run, and how long the job took to run, click the History link beside the job.
If a job has not run at least once the History link won't appear.
Screenshot: Job Execution History
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 294
Types of jobs
Here's a summary of some of the scheduled jobs that you may want to adjust.
Back Up Performs a backup of your entire Confluence site. Per cluster At 2am
Confluence every day
Check Cluster For clustered Confluence installations, this job ensures that Per cluster Every 30
Safety only one Confluence instance in the cluster writes to the seconds
database at a time.
For standard (non-clustered) editions of Confluence, this job
is useful for alerting customers who have accidentally
connected a second Confluence instance to a Confluence
database which is already in use.
Clean Journal Periodically clears journal entries that have already been Per cluster At 2am
Entries processed to ensure that its size does not grow indefinitely. every day
Clean Cleans up temporary files generated in the <confluence-h Per node At 4am
Temporary ome>/temp directory. This temp directory is created by every day
Directory exports etc.
This doesn't include the temp directory located in the
confluence install directory.
Clear Expired Clears notification errors in the mail error queue. A Per cluster At 3am
Mail Errors notification error is sent to the mail error queue whenever the every day
notification fails to be sent due to an error.
Clear Expired Clears all expired 'Remember Me' tokens from the Per cluster On the
Remember Me Confluence site. Remember Me tokens expire after two 20th of
Tokens weeks. each
month
Email Daily Emails a daily summary report of all Confluence changes to Per cluster At 12am
Reports all subscribers. every day
Since each email report only records changes from the last
24-hour period, it is recommended that you only change the
time of this job while keeping the job's frequency to 24 hours.
Flush Edge Flushes the Edge Index Queue so Confluence's search Per node Every 30
Index Queue results stay up to date. seconds
Flush Local Flushes the local task queue. (These are internal Confluence Per node Every
Task Queue tasks that are typically flushed at a high frequency.) minute
Flush Mail Sends notifications that have been queued up in the mail Per node Every
Queue queue. This doesn't include batched notifications. Edit the Se minute
nd batched notifications job if you also want to change how
often notifications are sent for changes to a page or blog
post.
Send batched Sends email notifications containing all changes to a page or Per cluster Every 10
notifications blog post since the last time the job ran. Increase the time for minutes
fewer emails or reduce the time if more immediate
notifications are important in your site.
Flush Task Flushes the task queue. (These are internal Confluence Per node Every
Queue tasks that are typically flushed at a high frequency.) minute
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 295
Send Triggers sending recommended update emails to users. The Per cluster Hourly
Recommended job runs hourly, but users will receive the notification weekly
Updates Email or daily, depending on the setting in their profile, at a time
that matches their timezone.
Purge Old Job Confluence stores the details of each scheduled job that is Per cluster at 11pm
Run Details run in the scheduler_run_details table in your every day
database. In order to keep this table small for troubleshooting
and debugging, the Purge Old Job Run Details job
regularly removes the details of:
successful jobs run more than 90 days ago
unsuccessful jobs run more than 7 days ago
You can override these settings using the following system
properties; jobs.limit.per.purge, all.jobs.ttl.ho
urs and unsuccessful.jobs.ttl.hours.
Property Entry When a page is created from a blueprint, some data is left Per cluster At 12am
Gardening behind in the os_property table after the page is published. every day
This job cleans up leftover data, which could contain
personally identifiable information.
Cron expressions
A cron expression is a string of 6-7 'time interval' fields that defines the frequency with which a job is
executed. Each of these fields can be expressed as either a numerical value or a special character and each
field is separated by at least one space or tab character.
The table below is shows the order of time interval fields in a cron expression and each field's permitted
numerical values.
You can specify a special character instead of a numerical value for any field in the cron expression to
provide flexibility in defining a job's frequency. Common special characters include:
'*' — a 'wild card' that indicates 'all permitted values'.
'?' — indicates 'ignore this time interval' in the cron expression. That is, the cron expression will not be
bound by the time interval (such as 'Month', 'Day of week' or 'Year') to which this character is
specified.
For more information about cron expressions, please refer to the Cron Trigger tutorial on the Quartz website.
7 Year 1970-2099 No
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 296
Expression Types
When adding a URL to the whitelist, you can choose from a number of expression types.
Allow Incoming
Allow Incoming enables CORS requests from the specified origin. The URL must match the format scheme:/
/host[:port], with no trailing slashes (:port is optional). So http://example.com/ would not
allow CORS requests from the domain example.com.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 297
The whitelist is enabled by default. You can choose to disable the whitelist however this will allow all URLs,
including malicious content, and is not recommended.
To disable the whitelist:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 298
public-facing web application, Confluence's application-level security is important. This document answers a
number of questions that commonly arise when customers ask us about the security of our product.
Other topics that you may be looking for:
For information about user management, groups and permissions, please refer to the internal security
overview.
For guidelines on configuring the security of your Confluence site, see the administrator's guide to
configuring Confluence security.
Password Storage
When Confluence's internal user management is used, since version 3.5 of Confluence passwords are hashed
through the salted PKCS5S2 implementation provided by Embedded Crowd before being stored in the
database. There is no mechanism within Confluence to retrieve a user's password – when password recovery is
performed, a reset password link is generated and mailed to the user's registered address.
When external user management is enabled, password storage is delegated to the external system.
On this page:
Application Security Overview
Finding and Reporting a Security Vulnerability
Publication of Confluence Security Advisories
Severity Levels
Our Security Bugfix Policy
Published Security Advisories
Buffer Overflows
Confluence is a 100% pure Java application with no native components. As such it is highly resistant to buffer
overflow vulnerabilities – possible buffer overruns are limited to those that are bugs in the Java Runtime
Environment itself.
SQL Injection
Confluence interacts with the database through the Hibernate Object-Relational mapper. Database queries are
generated using standard APIs for parameter replacement rather than string concatenation. As such,
Confluence is highly resistant to SQL injection attacks.
Script Injection
Confluence is a self-contained Java application and does not launch external processes. As such, it is highly
resistant to script injection attacks.
Cross-Site Scripting
As a content-management system that allows user-generated content to be posted on the web, precautions
have been taken within the application to prevent cross-site scripting attacks:
The wiki markup language in Confluence does not support dangerous HTML markup
Macros allowing the insertion of raw HTML are disabled by default
HTML uploaded as a file attachment is served with a content-type requesting the file be downloaded,
rather than being displayed inline
Only system administrators can make HTML-level customizations of the application
When cross-site scripting vulnerabilities are found in the Confluence web application, we endeavor to fix them as
quickly as possible.
Confluence does not directly support SSL/TLS. Administrators who are concerned about transport-layer security
should set up SSL/TLS at the level of the Java web application server, or the HTTP proxy in front of the
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 299
Confluence application.
For more information on configuring Confluence for SSL, see: Running Confluence Over SSL or HTTPS
Session Management
Confluence delegates session management to the Java application server in which it is deployed. We are not
aware of any viable session-hijacking attacks against the Tomcat application server shipped with Confluence. If
you are deploying Confluence in some other application server, you should ensure that it is not vulnerable to
session hijacking.
Plugin Security
Administrators install third party plugins at their own risk. Plugins run in the same virtual machine as the
Confluence server, and have access to the Java runtime environment, and the Confluence server API.
Administrators should always be aware of the source of the plugins they are installing, and whether they trust
those plugins.
Confluence is written under the assumption that anyone given System Administrator privileges is trusted.
System administrators are able, either directly or by installing plugins, to perform any operation that the
Confluence application is capable of.
As with any application, you should not run Confluence as the root/Administrator user. If you want Confluence to
listen on a privileged network port, you should set up port forwarding or proxying rather than run Confluence with
additional privileges. The extra-careful may consider running Confluence inside a chroot jail.
Stack Traces
To help when debugging a problem, Confluence provides stack traces through the web interface when an error
occurs. These stack traces include information about what Confluence was doing at the time, and some
information about your deployment server.
Only non-personal information is supplied such as operating system and version and Java version. With proper
network security, this is not enough information to be considered dangerous. No usernames or passwords are
included.
Atlassian's approach to reporting security vulnerabilities is detailed in How to Report a Security Issue.
Atlassian's approach to releasing security advisories is detailed in Security Advisory Publishing Policy.
Severity Levels
Atlassian's approach to ranking security issues is detailed in Severity Levels for Security Issues.
Our approach to releasing patches for security issues is detailed in our Security Bugfix Policy.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 300
proxy configuration right is essential, to avoid problems later when using Confluence.
Proxy and HTTPS access are both configured in Tomcat, Confluence's application server.
Sample connectors
To make setup and configuration as straightforward as possible, we've provided a number of sample connectors
in the Tomcat <install-directory>/conf/server.xml file.
DEFAULT - Direct connector with no proxy, for This is the default option. Use this option when you
unproxied HTTP access to Confluence don't have a reverse proxy and are not enabling
HTTPS.
HTTP - Proxying Confluence via Apache or Nginx Choose this option if you have a reverse proxy, but
over HTTP are not enabling HTTPS.
HTTPS - Direct connector with no proxy, for Choose this option if you want to use HTTPS
unproxied HTTPS access to Confluence. without a reverse proxy. HTTPS will be terminated at
Tomcat.
HTTPS - Proxying Confluence via Apache or Nginx Use this option when you want to use a reverse
over HTTPS proxy and enable HTTPS. This is the most common
configuration.
We only provide HTTP/HTTPS connector examples. You can't use the AJP connector (for example, with Apache
mod_jk), as Synchrony, which is required for collaborative editing, can't accept AJP connections.
If you plan to use collaborative editing, there are a number of proxy and SSL considerations you'll need to take
into account when deciding the best way to configure your proxy.
Step-by-step guides
In addition to the sample connectors, we also provide a number of step-by-step guides to help you enable
HTTPS and configure your proxy correctly.
HTTPS:
Running Confluence Over SSL or HTTPS (terminating HTTPS at Tomcat)
Running Confluence behind NGINX with SSL (terminating HTTPS at your proxy)
Securing your Atlassian applications with Apache using SSL (terminating HTTPS at your proxy)
Reverse proxy:
Using Apache with mod_proxy (Confluence)
Running Confluence behind NGINX with SSL (Confluence)
Proxying Atlassian server applications with Apache HTTP Server (mod_proxy_http) (any Atlassian
product)
Proxying Atlassian server applications with Microsoft Internet Information Services (IIS) (any Atlassian
product)
Outbound proxy:
Configuring Web Proxy Support for Confluence (Confluence)
How to Configure Outbound HTTP and HTTPS Proxy for your Atlassian application (any Atlassian
product)
Although we provide guides for some third-party solutions, and mention Apache and Nginx in the serve
r.xml file, you can choose your own proxy solution.
Atlassian Support can't provide assistance with configuring third-party tools like NGINX, Apache, or IIS.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 301
If you have questions, check your proxy server's documentation, ask the Atlassian Community, or get
help from a Solution Partner.
The content on this page relates to platforms which are not supported. Consequently, Atlassian Support
cannot guarantee providing any support for it. Please be aware that this material is provided for your
information only and using it is done so at your own risk.
Some of Confluence's macros, such as {rss} and {jiraissues} need to make web requests to remote servers in
order to retrieve data. If Confluence is deployed within a data centre or DMZ, it may not be able to access the
Internet directly to make these requests. If you find that the {rss} macro does not work, ask your network
administrator if Confluence needs to access the Internet through a web proxy.
Proxy support is configured by passing certain system properties to the Java Virtual Machine on startup.
http.proxyHost
http.proxyPort (default: 80)
http.nonProxyHosts (default: <none>)
https.proxyHost
https.proxyPort
At a minimum, you need to define http.proxyHost to configure an HTTP proxy, and https.proxyHost to
configure an HTTPS proxy. System property configuration is described in the Configuring System Properties.
Properties http.proxyHost and http.proxyPort indicate the proxy server and port that the http protocol
handler will use, and https.proxyHost and https.proxyPort indicate the same for the https protocol
handler.
-Dhttp.proxyHost=proxy.example.org -Dhttp.proxyPort=8080
-Dhttps.proxyHost=proxy.example.org -Dhttps.proxyPort=8080
Property http.nonProxyHosts indicates the hosts which should be connected to directly and not through the
proxy server. The value can be a list of hosts, each separated by a pipe character | . In addition, a wildcard
character (asterisk) * can be used for matching. For example:
-Dhttp.nonProxyHosts=*.foo.com|localhost
If you're using Confluence 6.0 or later with Synchrony, you'll need to pass the following to ensure Confluence
can connect directly to Synchrony. Replace localhost|127.0.0.1 with your Synchrony IP if you have used
the synchrony.host system property to change the IP Synchrony uses.
-Dhttp.nonProxyHosts=localhost|127.0.0.1
-Dhttps.nonProxyHosts=localhost|127.0.0.1
Note: You may need to escape the pipe character | in some command-line environments.
If the http.nonProxyHosts property is not configured, all web requests will be sent to the proxy.
Please note that any command line parameters set are visible from the process list, and thus anyone who has
the approriate access to view the process list will see the proxy information in the clear. To avoid this, you can
set these properties in the catalina.properties file, located in confluence-install/conf/. Add this to the
end of the file:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 302
http.proxyHost=yourProxyURL
http.proxyPort=yourProxyPort
http.proxyUser=yourUserName
http.proxyPassword=yourPassword
https.proxyHost=yourProxyURL
https.proxyPort=yourProxyPort
https.proxyUser=yourUserName
https.proxyPassword=yourPassword
Proxy authentication is also configured by providing system properties to Java in your application server's
configuration file. Specifically, the following two properties:
http.proxyUser – username
http.proxyPassword – secret
Confluence supports NTLM authentication for outbound HTTP proxies when Confluence is running on a
Windows server.
This means that the {rss} and {jiraissues} macro will be able to contact external websites if requests have to go
through a proxy that requires Windows authentication. This support is not related to logging in Confluence users
automatically with NTLM, for which there is a user-contributed authenticator available.
To configure NTLM authentication for your HTTP proxy, you need to define a domain system property, http.au
th.ntlm.domain, in addition to the properties for host, port and username mentioned above:
-Dhttp.auth.ntlm.domain=MYDOMAIN
Sometimes multiple authentication mechanisms are provided by an HTTP proxy. If you have proxy
authentication failure messages, you should first check your username and password, then you can check for
this problem by examining the HTTP headers in the proxy failure with a packet sniffer on the Confluence server.
(Describing this is outside the scope of this document.)
To set the order for multiple authentication methods, you can set the system property http.proxyAuth to a
comma-separated list of authentication methods. The available methods are: ntlm, digest and basic; this is also
the default order for these methods.
For example, to attempt Basic authentication before NTLM authentication, and avoid Digest authentication
entirely, you can set the http.proxyAuth property to this value:
-Dhttp.proxyAuth=basic,ntlm -Dhttps.proxyAuth=basic,ntlm
Troubleshooting
1. There's a diagnostic jsp file in CONF-9719 for assessing the connection parameters.
2. 'Status Code [407]' errors are described in APR-160.
3. Autoproxies are not supported. See CONF-16941.
Connecting to LDAP or Jira applications or Other Services via SSL
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 303
This page describes how to get Confluence connecting to external servers over SSL, via the various
SSL-wrapped protocols.
Here are some examples of when you may need to connect to an external server over SSL/HTTPS:
You need to connect to an LDAP server, such as Active Directory, if the LDAP server is running over
SSL.
For specific instructions for Active Directory, see Configuring an SSL Connection to Active
Directory.
You want to set up your Jira application as a trusted application in Confluence, when Jira is running
over SSL.
You want to refer to an https://... URL in a Confluence macro.
If you want to run Confluence itself over SSL, see Running Confluence Over SSL or HTTPS.
2. Import your LDAP or Jira server's public certificate into the JVM Keystore. This is the certificate that
the LDAP server will use to set up the SSL encryption. You can use any alias of your choosing in
place of "JIRAorLDAPServer.crt".
3. Verify that the certificate has been added successfully by entering the following command:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 304
4. Ensure that you have updated CATALINA_OPTS to specify the path to the keystore, as specified in C
onnecting to SSL services before restarting Confluence.
There is no need to specify an alias for Confluence to use. On connecting to the LDAP server, it will
search through the keystore to find a certificate to match the key being presented by the server.
Troubleshooting
Atlassian applications allow the use of reverse-proxies, however Atlassian Support does not provide
assistance for configuring them. Consequently, Atlassian can not guarantee providing any
support for them.
If assistance with configuration is required, please raise a question on Atlassian Answers.
Base configuration
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 305
If you want to access Confluence without a context path, such as www.example.com, skip this step.
Set your Confluence application path (the part after hostname and port) in Tomcat. In this example the
context path will be /confluence.
In this example we've used /confluence as the context path. Note that you can't use /resources as your
context path, as this is used by Confluence, and will cause problems later on.
Restart Confluence, and check you can access it at http://example:8090/confluence.
Next, set the URL for redirection. In the same <installation-directory>conf/server.xml file, use
the example connectors as a starting point.
Comment out the default connector (for unproxied access).
Show me how to do this...
In XML a comment starts with <!-- and ends with -->, and is used to make sure only the relevant
portions of the file are read by the application.
Add <!-- and --> around the default connector. It should now look like this.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 306
<!--
========================================================
DEFAULT - Direct connector with no proxy, for unproxied HTTP access
to Confluence.
========================================================
-->
<!--
<Connector port="8090" connectionTimeout="20000"
redirectPort="8443"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0"
URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"/>
-->
Uncomment the connector listed under the HTTP - Proxying Confluence via Apache or Nginx over HTTP
heading.
Show me how to do this...
To uncomment a section, remove the <!-- and --> surrounding the connector.
Here's an example showing the default connector commented out, and the HTTP connector
uncommented. The headings remain commented out.
<!--
========================================================
DEFAULT - Direct connector with no proxy, for unproxied HTTP access
to Confluence.
========================================================
-->
<!--
<Connector port="8090" connectionTimeout="20000"
redirectPort="8443"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0"
URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"/>
-->
<!--
========================================================
HTTP - Proxying Confluence via Apache or Nginx over HTTP
========================================================
-->
<Connector port="8090" connectionTimeout="20000"
redirectPort="8443"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10"
debug="0"URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"
scheme="http" proxyName="<subdomain>.<domain>.com"
proxyPort="80"/>
Insert your proxyName and proxyPort as shown in the last line below:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 307
If you plan to enable HTTPS, use the connector under HTTPS - Proxying Confluence via Apache
or Nginx over HTTPS.
3 Configure mod_proxy
Use one of the examples below to edit your Apache http.conf file to proxy requests to the application
server.
You will need to enable the following required Apache modules if they are not already enabled:
mod_proxy
mod_proxy_http
proxy_wstunnel
mod_rewrite
(proxy_wstunnel and mod_rewrite are new requirements in Confluence 6.0)
The format of the http.conf file, and location of the modules may differ on your operating system. We
recommend Windows users specify the absolute path to the module files.
Use this example if you set a context path in step 1, and will access Confluence with a context path like this h
ttp://www.example.com/confluence.
In this example, users will connect to Synchrony, which is required for collaborative editing, directly via
WebSockets.
The order of directives in the config is important.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 308
<Proxy *>
Require all granted
</Proxy>
<Location /confluence>
Require all granted
</Location>
Note: It's not possible to use Apache HTTP Server 2.2 with Confluence 6.0 or later. If you plan to use SSL,
you will need version 2.4.10 or later.
Use this example if you skipped step 1, and will access Confluence without a context path like this http://ww
w.example.com.
As in the previous example, users will connect to Synchrony, which is required for collaborative editing,
directly via WebSockets.
The order of directives in the config is important.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 309
ProxyRequests Off
ProxyPreserveHost On
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/synchrony
RewriteRule ^/(.*) http://<domain>:8090/$1 [P]
<Proxy *>
Require all granted
</Proxy>
<Location /synchrony>
Require all granted
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule .* ws://<domain>:8091%{REQUEST_URI} [P]
</Location>
ProxyPass / http://<domain>:8090
ProxyPassReverse / http://<domain>:8090
<Location />
Require all granted
</Location>
Note: It's not possible to use Apache HTTP Server 2.2 with Confluence 6.0 or later. If you plan to use SSL,
you will need version 2.4.10 or later.
4 Restart Apache
This is needed to pick up on the new configuration. To restart Apache, run the following command:
Having compression run on both the proxy and Tomcat can cause problems integrating with other Atlassian
applications, such as Jira. Please disable HTTP compression as per our Compressing an HTTP Response
within Confluence docs.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 310
The last stage is to set the Base URL to the address you're using within the proxy, for example http://www.e
xample.com/confluence.
Adding SSL
If you plan to enable HTTPS, see Securing your Atlassian applications with Apache using SSL, and make
sure you choose the HTTPS sample connector.
More information
The mod_proxy_html site has documentation and examples on the use of this module in the complex
configuration.
Apache Week has a tutorial that deals with a complex situation involving two applications and
ProxyHTMLURLMap.
Atlassian Support can't provide assistance with configuring third-party tools like NGINX. If you have
questions, check the NGINX documentation, ask the Atlassian Community, or get help from a Solutio
n Partner.
If you want to access Confluence without a context path (www.example.com), or via a sub-domain
(confluence.example.com) skip this step.
Set your Confluence application path (the part after hostname and port) in Tomcat. Edit <installation-d
irectory>/conf/server.xml, locate the "Context" definition:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 311
In this example we've used /confluence as the context path. Note that you can't use /resources as your
context path, as this is used by Confluence, and will cause problems later on.
Restart Confluence, and check you can access it at http://example:8090/confluence
<!--
========================================================
DEFAULT - Direct connector with no proxy, for unproxied HTTP access
to Confluence.
========================================================
-->
<!--
<Connector port="8090" connectionTimeout="20000"
redirectPort="8443"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0"
URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"/>
-->
Uncomment the connector listed under the HTTPS - Proxying Confluence via Apache or Nginx over
HTTPS heading.
Show me how to do this...
To uncomment a section, remove the <!-- and --> surrounding the connector.
Here's an example showing the default connector commented out, and the HTTPS connector
uncommented. The headings remain commented out.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 312
<!--
========================================================
DEFAULT - Direct connector with no proxy, for unproxied HTTP access
to Confluence.
========================================================
-->
<!--
<Connector port="8090" connectionTimeout="20000"
redirectPort="8443"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0"
URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"/>
-->
...
<!--
========================================================
HTTPS - Proxying Confluence via Apache or Nginx over HTTPS
========================================================
-->
<Connector port="8090" connectionTimeout="20000"
redirectPort="8443"
maxThreads="48" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0"
URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"
scheme="https" secure="true"
proxyName="<subdomain>.<domain>.com" proxyPort="443"/>
Insert your proxyName and proxyPort as shown in the last line below:
Make sure you've included correct values for protocol and proxyName.
You will need to specify a listening server in NGINX, as in the example below. Add the following to your
NGINX configuration.
Replace your server name and the location of your SSL certificate and key.
In this example, users will connect to Synchrony, which is required for collaborative editing, directly.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 313
server {
listen www.example.com:80;
server_name www.example.com;
ssl_session_timeout 5m;
location /confluence {
client_max_body_size 100m;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8090/confluence;
}
location /synchrony {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8091/synchrony;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 314
context path, as in the example above, you may also need to add the following line to your nginx
configuration.
location /server-info.action {
proxy_pass
http://localhost:8090/confluence/server-info.action;
}
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 315
server {
listen confluence.example.com:80;
server_name confluence.example.com;
ssl_session_timeout 5m;
location / {
client_max_body_size 100m;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_pass http://localhost:8090;
}
location /synchrony {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_pass http://localhost:8091/synchrony;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
1. Restart Confluence and NGINX for all the changes to take affect.
2. Update Confluence's base URL to include the context path you set earlier - see Configuring the Server
Base URL.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 316
Atlassian applications can be accessed via HTTPS, however Atlassian Support does not provide
assistance for configuring it. Consequently, Atlassian cannot guarantee providing any support for
it.
If assistance with conversions of certificates is required, please consult with the vendor who
provided the certificate.
If assistance with configuration is required, please raise a question on Atlassian Community.
Related Topics
These instructions cover terminating SSL at Tomcat, the application server shipped with Confluence.
If you want to terminate SSL at your web server or proxy, see Apache with mod_proxy or Running
Confluence behind NGINX with SSL for examples of how to terminate SSL at an external web server.
You'll need JDK 1.8 for some of the steps in this guide. The JRE is not enough.
Running Confluence without HTTPS enabled may leave your site exposed to vulnerabilities, such as
man-in-the-middle or DNS rebinding attacks. We recommend you enable HTTPS on your site.
You'll need a valid certificate before you can enable HTTPS. If you already have a certificate, skip to step 2.
You can create your own self-signed certificate, or acquire one from a trusted Certificate Authority.
If your team plans to use the Confluence Server mobile app, you'll need a certificate issued by a trusted
Certificate Authority. You can't use the app with a self-signed certificate, or one from an untrusted or private
CA.
Self-signed certificates are useful if you require encryption but don't need to verify the identity of the
requesting website. In general, you might use a self-signed certificate on a test environment and on internal
corporate networks (intranets).
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 317
Because the certificate is not signed by a certificate authority (CA), users may receive a message that the
site is not trusted and may have to perform several steps to accept the certificate before they can access the
site. This usually will only occur the first time they access the site. Users won't be able to log in to your site at
all via the Confluence Server mobile app if you use a self-signed certificate.
In this example, we'll use Java's keytool utility, which is included with the JDK. If you're not comfortable
using command line utilities KeyStore Explorer is a useful alternative to the command line.
To generate a self-signed certificate using keytool:
1. From the command line, run the appropriate command for your operating system:
Windows
"%JAVA_HOME%\bin\keytool" -genkeypair -keysize 2048 -alias
tomcat -keyalg RSA -sigalg SHA256withRSA
First and last name: this is not your name, it is the Common Name (CN), for example
'confluence.example.com'. The CN must match the fully qualified hostname of the server
running Confluence, or Tomcat won't be able to use the certificate for SSL.
Organizational unit: this is the team or department requesting the certificate, for example
'marketing'.
Organization: this is your company name, for example 'SeeSpaceEZ'.
City, State / province, country code: this is where you're located, for example Sydney, NSW,
AU.
4. The output will look something like the example below. Hit 'y' to confirm the details.
5. When asked for the password for 'tomcat', enter the password you created in step 2 (or hit return to
use the same .
'tomcat' is the alias we entered in the keytool command above, it refers to your.
Your keystore entry must have the same password as your private key. This is a Tomcat
requirement.
Production environments will need a certificate issued by a Certificate Authority (CA). These instructions are
adapted from the Tomcat documentation.
First you will generate a local certificate and create a 'certificate signing request' (CSR) based on that
certificate. You will submit the CSR to your chosen certificate authority. The CA will use that CSR to generate
a certificate for you.
1.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 318
1. Use Java's keytool utility to generate a local certificate (follow the steps in option 1, above).
2. From the command line, run the following command to generate a certificate signing request.
Replace <MY_KEYSTORE_FILENAME> with the path to and file name of the .keystore file generated
for your local certificate.
3. Submit the generated file called certreq.csr to your chosen certificate authority.
Check your CA's documentation to find out how to do this.
4. The CA will send you a certificate.
5. Import the new certificate into your local keystore:
Some CAs require you to install an intermediate certificate before importing your certificate. You
should follow your CA documentation to successfully install your certificate.
If you receive an error, and you use Verisign or GoDaddy, you may need to export the certificate to
PKCS12 format along with the private key.
1. First, remove the certificate added above from the keystore:
1.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 319
1. Edit <install-directory>/conf/server.xml.
2. Uncomment the following lines:
sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
SSLEnabled="true"
URIEncoding="UTF-8"
keystorePass="<MY_CERTIFICATE_PASSWORD>"/>
3. Replace <MY_CERTIFICATE_PASSWORD> with the password you specified for your certificate.
4. Make sure that the attribute-value pair SSLEnabled="true" is part of the Connector element, as
shown above. If this attribute is not present, attempts to access Confluence will time out.
5. Save the server configuration file.
Don't remove or comment out the http connector, as the Synchrony proxy health check, still requires
HTTP. If you don't want to include the http connector, you can use the synchrony.proxy.healthcheck
.disabled system property to disable the health check.
You should also not disable the internal Synchrony proxy (by setting the synchrony.proxy.enabled syst
em property to false) as this is known to cause problems when you're terminating SSL at Tomcat.
By default, Tomcat expects the keystore file to be named .keystore and to be located in the user home
directory under which Tomcat is running (which may or may not be the same as your own home directory).
This means that, by default, Tomcat will look for your SSL certificates in the following location:
On Windows: C:\users\#CURRENT_USER#\.keystore
On OS X and UNIX-based systems: ~/.keystore
Don't store your keystore file in your Confluence installation directory as the contents of that directory
are removed when you upgrade Confluence.
You may decide to move the certificate to a custom location. If your certificate is not in the default location,
you'll need to update your server configuration file as outlined below, so that Tomcat can find the certificate.
1. Edit <confluence-install-directory>/conf/server.xml
2. Add the attribute keystoreFile="<MY_CERTIFICATE_LOCATION>" to the Connectorelement, so
that the element looks like this:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 320
3. Replace the text <MY_CERTIFICATE_LOCATION> with the path to your certificate, including the path
and the name of the .keystore file.
4. Save the configuration file.
1. In your browser, go to
Although HTTPS is now activated and available, the old HTTP URLs (http://localhost:8090) are still available.
Now you need to redirect the URLs to their HTTPS equivalent. You will do this by adding a security constraint
in web.xml. This will cause Tomcat to redirect requests that come in on a non-SSL port.
1. Check whether your Confluence site uses the RSS macro. If your site has the RSS macro enabled,
you may need to configure the URL redirection with a firewall rule, rather than by editing the web.xml
file. Skip the steps below and follow the steps on the RSS Feed Macro page instead.
2. Otherwise, Edit the file at <CONFLUENCE_INSTALLATION>/confluence/WEB-INF/web.xml.
3. Add the following declaration to the end of the file, before the </web-app>tag:
<security-constraint>
<web-resource-collection>
<web-resource-name>Restricted URLs</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 321
Notes
HTTPS must be configured for your whole site. It can't be enabled for individual pages or spaces.
Before you upgrade Confluence, make a note of the changes you have made to your server.xml
and web.xml files. It is always best to re-apply these changes manually after upgrading, rather than
copying over your existing files.
Troubleshooting
<Valve
className="org.apache.catalina.authenticator.NonLoginAuthenticat
or"
disableProxyCaching="true" securePagesWithPragma="false"
/>
The Confluence administration interface is a critical part of the application; anyone with access to it can
potentially compromise not only the Confluence instance but the entire machine. As well as limiting access to
users who really need it, and using strong passwords, you should consider limiting access to it to certain
machines on the network or internet. If you are using an Apache web server, this can be done with Apache's Lo
cation functionality as follows:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 322
This file can be in the Apache configuration directory or in a system-wide directory. For this example we'll call it
"sysadmin_ips_only.conf". The file should contain the following:
Order Deny,Allow
Deny from All
In your Apache Virtual Host, add the following lines to restrict the administration actions to the Systems
Administrator:
This configuration assumes you've installed Confluence under '/confluence'. If you have installed under
'/' or elsewhere, adjust the paths accordingly.
<Location /confluence/admin>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/plugins/servlet/oauth/consumers/list>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/plugins/servlet/oauth/view-consumer-info>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/plugins/servlet/oauth/service-providers/list>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/plugins/servlet/oauth/service-providers/add>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/plugins/servlet/oauth/consumers/add>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/plugins/servlet/oauth/consumers/add-manually>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/plugins/servlet/oauth/update-consumer-info>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/pages/templates/listpagetemplates.action>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/pages/templates/createpagetemplate.action>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/spaces/spacepermissions.action>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/pages/listpermissionpages.action>
Include sysadmin_ips_only.conf
</Location>
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 323
<Location /confluence/spaces/removespace.action>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/spaces/importmbox.action>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/spaces/viewmailaccounts.action>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/spaces/addmailaccount.action?>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/spaces/importpages.action>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/spaces/flyingpdf/flyingpdf.action>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/spaces/exportspacehtml.action>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/spaces/exportspacexml.action>
Include sysadmin_ips_only.conf
</Location>
<Location /confluence/plugins/servlet/embedded-crowd>
Include sysadmin_ips_only.conf
</Location>
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 324
<Location /confluence/plugins/servlet/upm>
Include sysadmin_ips_only.conf
</Location>
It's not possible to use only mod_jk to proxy Confluence 6.0 or later. This is because Synchrony, which
is required for collaborative editing, cannot accept AJP connections. The preferred configuration is Using
Apache with mod_proxy.
If you are unable to switch to mod_proxy, see How to configure Apache mod_jk to proxy Confluence 6.x
or later for a workaround.
Note: This page documents a configuration of Apache, rather than of Confluence itself. Atlassian will support
Confluence with this configuration, but we cannot guarantee to help you debug problems with Apache. Please
be aware that this material is provided for your information only, and that you use it at your own risk.
Confluence requires URL rewriting for proper functionality, if Confluence is accessible via different domain
names. If Confluence is configured for multiple domains without URL rewriting, you will experience an array of
problems. See Various Issues Caused when Server Base URL Does Not Match the URL Used to Access
Confluence.
An example of why you may want to access Confluence from different domains:
From an internal network:
http://wiki
The externally visible domain:
http://wiki.domain.com
Further information
You may be interested in the UrlRewriteFilter that is Java web filter that works in a similar way of the Apache's
mod_rewrite.
Configuring Secure Administrator Sessions
Confluence protects access to its administrative functions by requiring a secure administration session to use
the Confluence administration console or administer a space. When a Confluence administrator (who is logged
into Confluence) attempts to access an administration function, they are prompted to log in again. This logs the
administrator into a temporary secure session that grants access to the Confluence/space administration
console.
The temporary secure session has a rolling timeout (defaulted to 10 minutes). If there is no activity by the
administrator in the Confluence/space administration console for a period of time that exceeds the timeout, then
the administrator will be logged out of the secure administrator session (note, they will remain logged into
Confluence). If the administrator does click an administration function, the timeout will reset.
To configure secure administrator sessions:
1.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 325
Notes
Note for developers. Secure administrator sessions can cause exceptions when developing against
Confluence or deploying a plugin. Please read this FAQ: How do I develop against Confluence with
Secure Administrator Sessions? Note: The Confluence XML-RPC and REST APIs are not affected by
secure administration sessions.
Confluence Cookies
This page lists cookies stored in Confluence users' browsers which are On this page:
generated by Confluence itself. This page does not list cookies that may
originate from 3rd-party Confluence plugins. Authentica
tion
cookies
Authentication cookies Other
Confluenc
Confluence uses Seraph, an open source framework, for HTTP cookie e cookies
authentication. Confluence uses two types of cookies for user Notes
authentication:
The JSESSIONID cookie is created by the application server and
used for session tracking purposes. This cookie contains a random
string and the cookie expires at the end of every session or when the
browser is closed.
The 'remember me' cookie, seraph.confluence, is generated by
Confluence when the user selects the Remember me check box on
the login page.
You can read about cookies on the Wikipedia page about HTTP cookies.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 326
The 'remember me' cookie, seraph.confluence, is a long-lived HTTP cookie. This cookie can be used to
authenticate an unauthenticated session. Confluence generates this cookie when the user selects the Reme
mber me check box on the login page.
By default, the cookie key is seraph.confluence, which is defined by the login.cookie.key parameter
in the CONFLUENCE-INSTALLATION/confluence/WEB-INF/classes/seraph-config.xml file.
The cookie contains a unique identifier plus a securely-generated random string (i.e. token). This token is
generated by Confluence and is also stored for the user in the Confluence database.
When a user requests a web page, if the request is not already authenticated via session-based
authentication or otherwise, Confluence will match the 'remember me' cookie (if present) against the token
(also if present), which is stored for the user in the Confluence database.
If the token in the cookie matches the token stored in the database and the cookie has not expired, the user
is authenticated.
You can configure the maximum age of the cookie. To do that you will need to modify the CONFLUENCE-INS
TALLATION/confluence/WEB-INF/classes/seraph-config.xml file and insert the following lines
below the other init-param elements:
<init-param>
<param-name>autologin.cookie.age</param-name>
<param-value>2592000</param-value><!-- 30 days in seconds -->
</init-param>
Every cookie issued by Confluence has a corresponding record in the database. A scheduled job runs on the
20th of every month to clean up expired tokens. The name of the trigger is clearExpiredRememberMeTok
ensTrigger.
Note: The only purpose of this job is to prevent the database table from growing too big. For authentication
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 327
purposes, Confluence will ignore expired tokens even if they still exist in the database.
Confluence does not offer an option for disabling the 'Remember Me' feature. See the workaround.
There are several cookies that Confluence uses to store basic 'product presentation' states. Confluence
users' authentication details are not stored by these cookies.
AJS.conglomerate.cookie Tracks which general tabs were last One or more One
used or expansion elements were last key-value year
opened or closed. strings which from the
indicate the date it is
states of your set or
last general tab was last
views or updated.
expansion
elements.
Notes
The autocomplete feature in browser text fields (which are typically noticeable when a user logs in to
Confluence) is a browser-specific feature, not a Confluence one. Confluence cannot enable or disable
this autocompletion, which is typically set through a browser's settings.
We need a means of defending sites against brute-force login attempts. Fail2Ban is a Python application which
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 328
trails logfiles, looks for regular expressions and works with Shorewall (or directly with iptables) to apply
temporary blacklists against addresses that match a pattern too often. This can be used to limit the rate at which
a given machine hits login URLs for Confluence.
Prerequisites
How to set it up
Running Fail2Ban
Common Configuration
jail.local
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 329
[DEFAULT]
[ssh-iptables]
enabled = false
[apache-shorewall]
enabled = true
filter = cac-login
action = shorewall
logpath = /var/log/httpd/confluence-access.log
bantime = 600
maxretry = 3
findtime = 60
backend = polling
The following is an example only, and you should adjust it for your site.
filter.d/confluence-login.conf
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 330
[Definition]
ignoreregex =
External referrers
An external referrer is any site that links to your Confluence instance. Each time someone clicks on the
external link, your Confluence site can record the click as a referral.
By default, external referrers for a page are listed under 'Hot Referrers' on the 'Info' screen of the page.
Confluence shows a maximum of 10 referrers. If there are more than 10, confluence shows the 10 with the
highest number of hits.
Note that you do not need to enable trackback in order to have external referrers enabled.
Screenshot: hot referrers on the page information screen.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 331
Confluence Administrators can exclude external referrers to prevent them from being recorded or displayed
anywhere on your site. Once you have specified your list of blocked URLs, any incoming links from URLs
that match the list will no longer be recorded.
Referrer URLs are blocked if they start with any of the URLs in the exclusion list. So http://evilspamsite.blogs
pot.com will also match http://evilspamsite.blogspot.com/nastypage.html
You might want to do this if:
1. You're running a Confluence installation that is open to public
In a site that is open to public, one unfortunate problem is that malicious sites can spam the display of
a page's incoming links statistics. This is usually done to get the site's URL to appear in the sidebar.
By adding these sites to the 'excluded referrers' list, you can prevent them from being listed on your
site.
2. Confluence is installed on a server with multiple domain names or IP addresses
Confluence will consider any URL originating from the domain name where Confluence is installed as
an internal link. However, if Confluence is installed on a server with multiple domain names or IP
addresses, you will need to add the other domain name prefixes to this list to let Confluence know that
any links from these domains should not be considered external links.
To add a URL to the excluded referrers list:
1. Go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 332
By default, Confluence lists the external referrers as 'Hot Referrers' on the page information screen for a
page. If you turn this option off, external referrers will not be listed on the page.
To hide external referrers:
1. Go to
An external referrer is any site that links to your Confluence instance. Each time someone clicks on the
external link, your Confluence site can record the click as a referral. By default, Confluence records the
number of hits made to a page from any link on an external site. If you turn this option off, Confluence will not
record the hits.
To ignore external referrers:
1. Go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 333
See the following system administrator guide for general hints on the application server level:
Tomcat security best practices
The way you set up Confluence roles, permissions and processes makes a big difference in the security of your
Confluence site.
Below are some more Confluence-specific items to consider. None of these provides 100% security. They are
measures to reduce impact and to slow down an intruder in case your system does become compromised.
Keep the number of Confluence administrators extremely low. For example, 3 system administrator
accounts should be the maximum.
Similarly, restrict the number of users with powerful roles or group memberships. If only one department
should have access to particularly sensitive data, then do restrict access to the data to those users. Do
not let convenience over-rule security. Do not give all staff access to sensitive data when there is no
need.
The administrators should have separate Confluence accounts for their administrative roles and for their
day to day roles. If John Doe is an administrator, he should have a regular user account without
administrator access to do his day to day work (such as writing pages in the wiki). This could be a
'john.doe' account. In addition, he should have an entirely separate account (that cannot be guessed by
an outsider and that does not even use his proper name) for administrative work. This account could be
'jane smith' – using a username that is so obscure or fake that no outsider could guess it. This way, even
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 334
if an attacker singles out the actual person John Doe and gets hold of his password, the stolen account
would most likely be John's regular user account, and the attacker cannot perform administrative actions
with that account.
Lock down administrative actions as much as you can. If there is no need for your administrators to
perform administrative actions from outside the office, then lock down access to those actions to known
IP adresses, for example. See Using Apache to limit access to the Confluence administration interface.
Put documented procedures in place for the case of employees leaving the company.
Perform security audits regularly. Know who can help in case a security breach occurs. Perform 'what if'
planning exercises. ('What is the worst thing that could happen if a privileged user's password were stolen
while he's on vacation? What can we do to minimize damage?').
Make sure the Confluence database user (and all datasource database users) only has the amount of
database privileges it really needs.
Monitor your binaries. If an attacker compromises an account on your system, he will usually try to gain
access to more accounts. This is sometimes done by adding malicious code, such as by modifying files
on the system. Run routine scripts that regularly verify that no malicious change has been made.
As another precaution:
Regularly monitor the above requirements. There are many things that could start out well, but deteriorate
over time:
A system may start out with just 3 administrators, but over the course of a year this could grow to
30 administrators if no one prevents expansion.
Apache administration restrictions may be in place at the start of the year, but when the application
server is migrated after a few months, people may forget to apply the rules to the new system.
Again, keep in mind that the above steps may only be a fraction of what could apply to you, depending on your
security requirements. Also, keep in mind that none of the above rules can guarantee anything. They just make it
harder for an intruder to move quickly.
Hiding the People Directory
The People Directory provides a list of all users in your Confluence system.
If you need to disable the People Directory set the following system properties on your application server
command line:
To disable the People Directory for anonymous users:
-Dconfluence.disable.peopledirectory.anonymous=true
-Dconfluence.disable.peopledirectory.all=true
This workaround will prevent the People directory from appearing on the dashboard, but if you navigate to the
profile of a user, and then click on the "People" in the breadcrumb link (Dashboard >> People >> FullName >>
Profile) or you go to the URL directly <CONFLUENCE_INSTALL>/browsepeople.action, you will be able to
access the people directory.
To workaround this, set up your Apache webserver in front of Confluence and redirect requests to this URL.
Configuring Captcha for Spam Prevention
If your Confluence site is open to the public (you
allow anonymous users to add comments, create Related pages:
pages etc) you may find that automated spam is Configuring Confluence Security
being added, in the form of comments or new pages.
You can configure Confluence to deter automated
spam by asking users to prove that they are human
before they are allowed to:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 335
By default, Captcha is disabled. When enabled, the default is that only anonymous users will have to
perform the Captcha test when creating comments or editing pages. You can also choose to enforce
Captcha for all users or members of particular groups.
You need System Administrator permissions to configure Captcha for spam prevention in Confluence.
To enable Captcha for spam prevention in Confluence:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 336
wiki-spamming it's hoped that the practice will stop being cost-effective and eventually die out.
By default, Captcha for failed logins is enabled and the number of failed login attempts is set to three.
To enable, disable and configure Captcha for failed logins:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 337
Notes
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 338
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 339
Notes
This page is about access to the remote API. If you are looking for information about preventing anonymous
users from accessing Confluence, see Global Permissions Overview.
Configuring RSS Feeds
A Confluence System Administrator can configure On this page:
the following aspects of RSS feeds: Notes
The maximum number of items that Related pages:
Confluence returns to an RSS feed request.
The maximum time period that Confluence The RSS Feed Builder
allows to respond to an RSS feed request.
Both of these are set in the 'Edit Security
Configuration' screen.
To configure RSS feeds:
1. Choose the cog icon
Notes
When using the RSS Feed Builder, a user could potentially enter such a large value for the number of
feed items returned that Confluence would eventually run out of memory.
When using the Feed Builder, if a users a value greater than this setting (or less than 0) they will get a
validation error.
If any pre-existing feeds are set to request more than the configured maximum, they will be supplied
with only the configured maximum number of items. This is done silently - there is no logging and no
message is returned to the RSS reader.
If Confluence times out when responding to an RSS feed request, any items already rendered are
returned.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 340
Stopping Spammers
To prevent spammers:
1. Enable Captcha. See Configuring Captcha for Spam Prevention.
2. Run Confluence behind an Apache webserver and create rules to block the spammer's IP address.
If a spam bot is attacking your Confluence site, they are probably coming from one IP address or a small range
of IP addresses. To find the attacker's IP address, follow the Apache access logs in real time and filter for a
page that they are attacking.
For example, if the spammers are creating users, you can look for signup.action:
Compare the actual spam users being created with the log entries to make sure you do not block legitimate
users. By default, Apache logs the client's IP address in the first field of the log line.
Once you have the offender's IP address or IP range, you can add it to your firewall's blacklist. For example,
using the popular Shorewall firewall for Linux you can simply do this:
To block an IP address at the Apache level, add this line to your Apache vhost config:
You can restart Apache with a "graceful" command which will apply the changes without dropping any current
sessions.
If this still does not stop the spam, then consider turning off public signup.
Deleting Spam
Profile Spam
By 'profile spam', we mean spammers who create accounts on Confluence and post links to their profile page.
If you have had many such spam profiles created, the easiest way to delete them is via SQL.
To delete a spam profile:
1. Shut down Confluence and back up your database.
Note: This step is essential before you run any SQL commands on your database.
2. Find the last real profile:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 341
3. Look through the bodies of the profile pages until you find where the spammer starts. You may have to
identify an number of ranges.
4. Find the killset:
If you're using Confluence 5.6 or earlier use the SQL commands below:
For Confluence 5.6 and earlier...
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 342
5. Once the spam has been deleted, restart Confluence and rebuild the index. This will remove any
references to the spam from the search index.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 343
The Confluence Home directory is the folder where Confluence stores its configuration information, search
indexes and page attachments. Another term for 'Home directory' would be 'data directory'.
> General Configuration > System Information > Confluence Information - Confluence Home.
If you're using Confluence Data Center (a clustered instance), you will also have a shared home directory
which will contain some data (such as attachments and backups) that would otherwise reside in the home
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 344
directory. The location of your shared home directory can be found in your <local-home>/confluence.
cfg.xml file in the confluence.cluster.home property.
The Confluence home directory contains some of the configuration data used by Confluence. This section
outlines the purpose of the files and directories in the Confluence home directory.
confluence.cfg.xml This file contains all of the information necessary for Confluence to start up,
such as:
Product license
Context path
Database details, such as location and connection pool settings
Paths to important directories
In Data Center this directory is usually found in the Shared Home directory.
backups/ Confluence will place its daily backup archives in this directory, as well as any
manually generated backups. Backup files in this directory take the following
form daily-backup-YYYY_MM_DD.zip
You can specify an alternative directory for backups by setting the daily.ba
ckup.dir property in confluence.cfg.xml.
In Data Center this directory is usually found in the Shared Home directory.
database/ This is where Confluence stores its database when configured to run with the
Embedded H2 Database. In such cases this directory contains all Confluence
runtime data. Installations configured to run using an external database such
as MySQL will not use this directory.
The H2 database is provided for evaluating Confluence and is not supported
as a production database.
index/ The Confluence index is heavily used by the application for content searching
and recently updated lists and is critical for a running Confluence instance. If
data in this directory is lost or corrupted, it can be restored by running a full
reindex from within Confluence. This process can take a long time depending
on how much data is stored Confluence's database.
An alternative directory may be specified for the index by setting the lucene
.index.dir property in confluence.cfg.xml.
journal/ Entries are added to the journal when changes occur (such as a comment,
like, new page). Journal entries are then processed and the entries added to
the index (about every 5 seconds). In a cluster, the journal keeps the indexes
on each node in sync.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 345
plugin-cache/ All Confluence plugins are stored in the database. To allow for quicker access
to classes contained within the plugin JARs, Confluence will cache these
plugins in the plugin-cache directory. This directory is updated as plugins
are installed and uninstalled from the system and is completely repopulated
from the database every time Confluence is restarted. Removing plugins from
this directory does not uninstall them.
temp/ The temp directory is used for runtime functions such as exporting, importing,
file upload and indexing. Files in this directory are temporary and can be
safely removed when Confluence is offline. A daily job within Confluence
deletes files that are no longer needed.
You can specify a different temp directory location, if necessary. Edit <confl
uence-home>/confluence.cfg.xml and set the new location in the web
work.multipart.saveDir property.
thumbnails/ Stores temporary files for image thumbnails. This directory is essentially a
thumbnail cache, and files deleted from this directory will be regenerated the
next time the image is accessed.
In Data Center this directory is usually found in the Shared Home directory.
When Confluence first starts up, it reads the confluence-init.properties file to determine where to
look for the Home directory.
To change the location of the home directory edit the confluence.home property in the confluence-ini
t.properties file as follows:
Windows
In Windows, the path C:\confluence\data would be written as:
confluence.home=C:/confluence/data
Note that all backslashes (\) are written as forward slashes (/)
Linux / Solaris
On any Linux-based system, the property is defined using the normal directory syntax:
confluence.home=/var/confluence/
Symbolic links
There can be no symbolic links within the Confluence home directory. You must define an absolute path. If
disk space is an issue, place the entire confluence.home directory on a disk partition where there is
enough space. The absolute path of generated files (such as exports) is compared with the absolute path of
the confluence.home directory when constructing URLs. When a sub-directory has a different path, the
URL will be incorrect, and you may receive "Page not found" errors. These measures are in place to prevent
"directory traversal" attacks.
The Confluence configuration file: confluence-cfg.xml inside the home directory may contain references
to the original location of your Confluence home. You will need to edit this file to update these references to
also point to the new location. The two properties in this file that need to change are:
daily.backup.dir if you have not configured your backups to be placed elsewhere already
hibernate.connection.url if you are using the embedded HSQL database.
Database
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 346
All other data, including page content, is kept in the database. If you installed Confluence as a trial, or chose
to use the embedded HSQL database during setup, the database will store its files under database/ in
the Confluence Home Directory. Otherwise, the database management system you are connecting to is
responsible for where and how your remaining data is stored.
The temp directory is configured in the Java runtime and some Confluence components write temporary files
or lockfiles into this directory.
The temp directory is located in the installation directory as /temp.
To change the location of this directory, start the Java Virtual Machine in which confluence is running with the
argument:
-Djava.io.tmpdir=/path/to/your/own/temp/directory.
Note: this is not the same as the temp directory in Confluence Home where exports, for example, are
saved. See the table above to find out how to change the location of the <confluence-home>/temp direct
ory.
The minimum and maximum JVM heap space allocated to the application server affects performance.
Confluence administrators may wish to modify this value from the defaults depending on their server load. This
document only provides guidelines rather than rules, so administrators optimizing for performance should use
this document as a starting point only.
For a comprehensive overview of memory management, and memory tuning in Confluence under Sun
JRE, please read Garbage Collector Performance Issues
In the general case, both Jira & Confluence users will benefit from setting the minimum and maximum values
identical. In larger installations, there is benefit to memory tuning, if there is a perceived performance issue. If
you are experiencing Out of Memory Heap errors, try increasing the -Xmx and -Xms values for your installation
to see if this resolves or helps resolve your issue. It's best to increase in small increments (eg 512mb at a time),
to avoid having too large a heap, which can cause different problems. If increasing the memory does not help,
please lodge a support ticket as there may be other factors contributing.
Memory usage is most likely to be maximized under peak load, and when creating a site XML backup. In many
cases, the backup can be the cause of the OOM, so increase -Xmx values and verify if a backup was occurring
at the time of OOM. A quick rule of thumb for gauging the success of a memory adjustment is using simple
anecdotal evidence from users. Is it snappier? The same? How does it handle while a backup is occurring?
Atlassian recommends in normal use, to disable the XML backup and use a Production Backup Strategy
.
If you normally perform manual XML site backups on your server, test your maximum memory
requirements by performing a site XML backup while the server is under maximum load
If you do not create manual XML site backups, simply monitor the server while under maximum load
Related Topics
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 347
On Linux/Solaris, the best practice is to install, configure and run each service (including Confluence) as a
dedicated user with only the permissions they require.
To install, configure and run Confluence automatically on Linux/Solaris:
1. Create a confluence user for instance, using the following command:
2. Create a directory to install Confluence into. In this example we're using /usr/local/confluence.
sudo su - confluence
cd /usr/local/confluence/
tar zxvf /tmp/confluence-5.6.4.tar.gz
ln -s confluence-5.6.4/ current
4. Edit
<<CONFLUENCE_INSTALL_DIRECTORY>>/confluence/WEB-INF/classes/confluence-init.properties file,
and set confluence.home=/usr/local/confluence/<Confluence_Data_Home> (ensure you have removed
the comment '#')
5. Then back as root, create the file /etc/init.d/confluence (code shown below), which will be
responsible for starting up Confluence after a reboot (or when manually invoked).
If you are running Ubuntu Jaunty (or later) do not perform this step. Please use the instructions further
down this page.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 348
#!/bin/sh -e
# Confluence startup script
#chkconfig: 2345 80 05
#description: Confluence
case "$1" in
# Start command
start)
echo "Starting $APP"
/bin/su -m $USER -c "$CATALINA_HOME/bin/start-confluence.sh &>
/dev/null"
;;
# Stop command
stop)
echo "Stopping $APP"
/bin/su -m $USER -c "$CATALINA_HOME/bin/stop-confluence.sh &>
/dev/null"
echo "$APP stopped successfully"
;;
# Restart command
restart)
$0 stop
sleep 5
$0 start
;;
*)
echo "Usage: /etc/init.d/$APP {start|restart|stop}"
exit 1
;;
esac
exit 0
7. Set this file to run at the appropriate runlevel. For example, use sudo chkconfig --add confluence
on Redhat-based systems, sudo update-rc.d confluence defaults or rcconf on Debian-based
systems.
8. You should now be able to start Confluence with the init script. A successful startup output typically looks
like this:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
8.
Confluence 6.15 Documentation 349
To continue configuring Confluence to start automatically as a service on Ubuntu Jaunty (or later):
1. After logging in as the confluence user to install Confluence, create start and stop scripts in /usr/l
ocal/confluence:
Example startscript:
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-7-oracle-1.7.0.71/
export JDK_HOME=/usr/lib/jvm/java-7-oracle-1.7.0.71/
cd /usr/local/confluence/current/bin
./startup.sh
Example stopscript:
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-7-oracle-1.7.0.71/
export JDK_HOME=/usr/lib/jvm/java-7-oracle-1.6.0.71/
cd /usr/local/confluence/current/bin
./shutdown.sh
2. Make both of these scripts executable. For example, by issuing the command: sudo chmod a+x
/usr/local/confluence/start /usr/local/confluence/stop.
3. Karmic and later: Create two text files in /etc/init/ called confluence-up.conf and confluence-
down.conf:
confluence-up:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 350
script
end script
confluence-down:
expect fork
respawn
1. Jaunty, Intrepid: Create two text files in /etc/event.d/ called confluence-up and confluence-do
wn:
confluence-up:
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
confluence-down:
start on runlevel 1
start on runlevel 6
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 351
RELATED TOPICS
For long-term use, we recommend that you configure Confluence to start automatically when the operating
system restarts. For Windows servers, this means configuring Confluence to run as a Windows service.
There are two ways to install the Confluence distribution as a service: using the Confluence installer or manually
as described below.
On this page:
Reasons for Starting Confluence as a Service
Changing the User Running the Service
Manually Installing the Confluence Distribution as a Service
Managing Confluence as a Service
Upgrading Confluence
Troubleshooting Confluence while Running as a Windows Service
Requesting Support
If you wish to run the service as a non-administrator user for security, or if you are using network drives for
backups, attachments or indexes, you can run the service as another user. To change users, open the Apache
Tomcat Confluence properties, go to the 'Log On' tab and enter the required username and password. Go to
your Windows Control Panel -> User Accounts and confirm that the user has write permissions for the <CONFLU
ENCE-INSTALL> and <CONFLUENCE-HOME> directories, and all subfolders. Note that any network drives must
be specified by UNC and not letter mappings (eg. \\backupserver\confluence not z:\confluence).
For more detail, see Creating a Dedicated User Account on the Operating System to Run Confluence.
In Windows:
1. Open a command prompt and change directory to the <CONFLUENCE-INSTALL>/bin directory.
You'll need to run the command prompt using 'Run as administrator' so that you can complete some of
these steps.
2. Confirm that the JAVA_HOME variable is set to the JDK base directory with the command:
echo %JAVA_HOME%
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 352
If you installed the Java Runtime Environment (JRE) or used the Confluence installer, replace JAVA_HOM
E with JRE_HOME. See Setting the JAVA_HOME Variable in Windows for more info.
Note that any directory in the path with spaces (eg. C:\Program Files must be converted to its
eight-character equivalent (e.g. C:\Progra~1).
3. Use the following command to install the service with default settings:
The service will be called Atlassian Confluence and will be configured to start automatically by default,
but will not automatically start up until the next server reboot.
4. If you have a large Confluence installation, you can increase the maximum memory Confluence can use
(the default is 1024MB). For example, you can set the maximum memory to 2048MB using:
5. If you don't have any JVM parameters that you pass to your distribution of Confluence, you can skip this
step. If you do, add them to the service using:
Alternatively you can use the following command to launch the service properties dialog then navigate to
the Java tab to add more JVM parameters.
tomcat9w //ES//Confluence
For further configuration options, please refer to the Tomcat Windows Service How-To guide.
6. Go to Control Panel > Administrative Tools > Services > Atlassian Confluence and right-click Proper
ties to verify the settings are correct. Start the Confluence service with the command:
7. Finally, start the Confluence service. From now on this will happen automatically after the a server
reboot.
You can manage the Confluence service from the command prompt.
Stop Confluence with:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 353
Upgrading Confluence
After upgrading Confluence, you can either uninstall and reinstall the Windows service or change the StartPath
parameter to your new folder. Refer to the Tomcat documentation for help.
Note
We do not recommend that you run this tool for too long as it may disrupt other Atlassian
applications. Once you have captured the required information you will need to press Ctrl + E t
o stop capturing.
Requesting Support
If, after following the troubleshooting guide above, you still cannot make Confluence run as a Windows Service
or if there is an error when setting the JVM configuration for the service, you can create a support request.
Please provide the following information when creating your support request, because we will need it to assist
you:
Give us the result of running java -version from Windows command line console.
A screen shot of your Windows Registry setting for Tomcat.
If you have modified service.bat, please give us a copy of this file for review.
Your atlassian-confluence.log file.
Performance Tuning
This document describes tuning your application for
improved performance. It is not a guide to
troubleshooting Confluence outages. Check Trouble
shooting Confluence hanging or crashing for help if
Confluence is crashing.
Like any server application, Confluence may require
some tuning as it is put under heavier use. We do
our best to make sure Confluence performs well
under a wide variety of circumstances, but there's no
single configuration that is best for everyone's
environment and usage patterns.
If you are having problems with the performance of
Confluence and need our help resolving them, you
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 354
Use the latest versions of your application servers and Java runtime environments. Newer versions are
usually better optimized for performance.
Always watch the swapping activity of your server. If there is not enough RAM available, your server may
start swapping out some of Confluence's heap data to your hard disk. This will slow down the JVM's garbage
collection considerably and affect Confluence's performance. In clustered installations, swapping can lead to
a Cluster Panic due to Performance Problems. This is because swapping causes the JVM to pause during G
arbage Collection, which in turn can break the inter-node communication required to keep the clustered
nodes in sync.
It may sound tempting: Just have one powerful server hosting your database and/or application server, and
run all your crucial programs on that server. If the system is set up perfectly, then you might be fine.
Chances are however that you are missing something, and then one application's bug might start affecting
other applications. So if Confluence is slow every day around noon, then maybe this is because another
application is using the shared database to generate complicated reports at that time? Either make sure
applications can't harm each other despite sharing the same infrastructure, or get these systems untangled,
for example by moving them to separate instances that can be controlled better.
Choice of database
The embedded H2 database is provided for evaluating Confluence, not for production Confluence sites.
After the evaluation finishes, you must switch to a supported external database. We recommend using what
you are familiar with, because your ability to maintain the database will probably make far more difference to
what you get out of it than the choice of database itself.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 355
If load on Confluence is high, you may need more simultaneous connections to the database.
If you are using JNDI data-sources, you will do this in your application server's configuration files.
If you have configured Confluence to access the database directly, you will need to manually edit the
hibernate.c3p0.max_size property in the confluence.cfg.xml file in your confluence.home directory.
After you have changed the URL in this file, restart Confluence.
To assess whether you need to tune your database connection pool, take thread dumps during different
times (including peak usage). Inspect how many threads have concurrent database connections.
Database in general
If Confluence is running slowly, one of the most likely cause is that there is some kind of bottleneck in (or
around) the database.
The first item you should check is the "Database Latency" field in the System Information tab in the admin
console.
The latency is calculated by sending a trivial request to the database, querying a table which is known to
have only one column and one row. ("select * from CLUSTERSAFETY"). Obviously this query should be
blazing fast, and return within 1 or 2 milliseconds. If the value displayed is between 3 and 5 milliseconds, you
might already have an issue. If the value is above 10ms, then you definitely need to investigate and improve
something! A few milliseconds may not sound so bad, but consider that Confluence sends quite a few
database queries per page request, and those queries are a lot more complex too! High latency might stem
from all sorts of problems (slow network, slow database, connection-pool contention, etc), so it's up to you to
investigate. Don't stop improving until latency is below 2ms on average.
Obviously, latency is just the very first thing to look at. You may get zero latency and still have massive
database problems, e.g. if your tables are poorly indexed. So don't let a low latency fool you either.
Modern databases have query optimizers based on collecting statistics on the current data. Using the SQL
EXPLAIN statement will provide you information on how well the query optimizer is performing. If the cost
estimate is wildly inaccurate then you will need to run statistics collection on the database. The exact
command will depend on your database and version. In most cases you can run statistics collection while
Confluence is running, but due to the increased load on the database it's best to do this after normal hours or
on a week-end.
To reduce the load on the database, and speed up many operations, Confluence keeps its own cache of
data. Tuning the size of this cache may speed up Confluence (if the caches are too small), or reduce memory
(if the caches are too big).
Please have a look at our documentation on Cache Performance Tuning for information on how to tune
Confluence caches.
Antivirus software
Antivirus software greatly decreases the performance of Confluence. Antivirus software that intercepts
access to the hard disk is particularly detrimental, and may even cause errors with Confluence. You should
configure your antivirus software to ignore the Confluence home directory, its index directory and any
database-related directories.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 356
If bandwidth is responsible for bottlenecking in your Confluence installation, you should consider enabling
HTTP compression. This may also be useful when running an external facing instance to reduce your
bandwidth costs.
Take note of the known issues with HTTP compression in versions of Confluence prior to 2.8, which may
result in high memory consumption.
Performance testing
You should try out all configuration changes on a demo system. Ideally, you should run and customize
loadtests that simulate user behavior.
Access logs
You can find out which pages are slow and which users are accessing them by enabling Confluence's built-in
access logging.
Built-in profiler
You can identify the cause of page delays using Confluence's built-in profiler according to Troubleshooting
Slow Performance Using Page Request Profiling.
For high-load environments, performance can be improved by using a web server such as Apache in front of
the application server. There is a configuration guide to Running Confluence behind Apache.
When configuring your new web server, make sure you configure sufficient threads/processes to handle the
load. This applies to both the web server and the application server connector, which are typically configured
separately. If possible, you should enable connection pooling in your web server connections to the
application server.
Some external plugins, usually ones that have been written a long time ago and that are not actively
maintained anymore, have been reported to consume memory and never return it. Ultimately this can lead to
a crash, but first this manifests as reduced performance. The Troubleshooting Confluence hanging or
crashing guide is a good place to start. Some of the known causes listed there could result in performance
issues short of a crash or hang.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 357
As an example of how to tune Confluence's caches, let's have a look at the following table:
The maximum size of the caches above is 1000 (meaning that it can contain up to 1000 objects). You can tell
when a cache size needs to be increased because the cache has both:
a high usage percentage (above 75%)
a low effectiveness percentage.
Check the 'effectiveness' versus the 'percent used'. A cache with a low percent used need not have its size
lowered; it does not use more memory until the cache is filled.
Based on this, the sizes of the "Attachments", "Database Queries", and "Users" caches should be increased
to improve their effectiveness.
As the stored information gets older or unused it will expire and be eliminated from the cache. Cache expiry
may be based on time or on frequency of use.
There is not much that you can do with a cache that has both a low percentage of usage and
effectiveness. Over time, as the cache is populated with more objects and repeat requests for them are
made, the cache's effectiveness will increase.
The cache configuration file configures caches by their keys. To find out a cache key hover your mouse over
the cache name in the Cache Management screen.
In Confluence Data Center (clustered) you have a distributed cache and a cluster node-local cache. The
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 358
Cluster Management page will indicate cluster distributed cache and cluster node-local cache.
The cache configuration file is stored in the shared home directory for the cluster.
Important caches
The following suggestions are general guidelines. In cases of large databases, 20-30% of the size of
the table may be unnecessarily large. Check the effectiveness and percent used categories in the
cache for more specific assessments.
SELECT
COUNT(*)
FROM
cwd_user u
JOIN
cwd_directory d
ON
u.directory_id = d.id
AND d.directory_name = 'Confluence Internal Directory';
SELECT
COUNT(*)
FROM
cwd_user u;
Cache Statistics
Confluence provides statistics about its internal caches that allow you to track the size and hit ratio of each
cache and tune it for better performance (if necessary). See Performance Tuning for more information.
Configurable Caches
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 359
System administrators can change the sizes of Confluence's internal caches through the Administration Console
and these changes will take effect without the need to first shut down and then restart Confluence. The
maximum number of units for any of the defined cache regions can be adjusted individually.
Note that larger cache sizes will require more memory at runtime, so you should review the memory allocation of
the Confluence Java process and the physical memory available on your server.
Current / Max Entries The number of entries in the cache / the number of
total possible entries allowed (this is the size of the
cache).
Current Heap Size Heap memory (in MB) allocated to this cache (if
applicable)
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 360
Caching
By default, Confluence keeps large in-memory caches of data to improve its responsiveness and the user
experience. The trade off is an increase in memory requirements to support the cache. Administrators of
larger Confluence sites may need to configure the size of their caches to improve performance.
To customize Confluence's cache to meet your needs, see cache tuning.
To increase the amount of memory available to Confluence, see How to fix out of memory errors by
increasing available memory.
Confluence keeps a copy of all emails that it failed to send within an internal error queue. In the event of
intermittent failures such as network connectivity issues, the emails in this queue can be manually resent
when the problem is fixed. Under certain circumstances, the mail queue can fill up with large objects. The
queue is regularly flushed, but if you get a lot of mail errors, you might get a spike in memory usage.
Attachments
The indexing of large attachments requires that the attachment be loaded into memory. In the case of large
attachments, this can cause a temporary strain on the systems resources, and may result in indexing failing
because the attachment could not be fully loaded into memory.
The Confluence backup and restore process scales linearly with the size of data. This can have a significant
impact on large Confluence instances where the amount of data exceeds the amount of available memory. If
you are experiencing an OutOfMemoryError during either a backup or restore processes, then we strongly
recommend that you choose and Production Backup Strategy.
If you encounter an OutOfMemoryError while restoring a backup and wish to overcome this issue by
increasing memory, how much more will you need to make this process work? A good rule of thumb is to
have a look at the size of the entities.xml file in your backup. This file contains all of the data Confluence
will be loading, so at least that much is required. Add another 64-128Mb to ensure that Confluence has
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 361
enough memory to load and function and that should be enough. To increase the amount of memory
available to Confluence, see How to fix out of memory errors by increasing available memory.
There are also some memory issues we don't have any control over. For example,
There's a memory leak in the Oracle 10g JDBC drivers. Not much we can do about that.
One customer found a rather nasty memory leak that appeared to originate inside Tomcat 5, but only
using the IBM JDK on PowerPC.
If you are having problems that appear to result from a memory leak, log an issue on http://support.atlassian.
com. Our memory profiler of choice is YourKit. It would be helpful to us if you can provide us with a memory
dump from that tool showing the leak.
A common cause of random pauses in Confluence is the JVM running garbage collection. To determine if
this is what is happening, enable verbose garbage collection and look at how long Java is taking to free up
memory. If the random pauses match when Java is running its garbage collection, garbage collection is the
cause of the pause.
Verbose garbage collection will generate log statements that indicate when Java is collecting garbage, how
long it takes, and how much memory has been freed.
To enable gc (garbage collection) logging, start Confluence with the option -XX:+PrintGCDetails
-XX:+PrintGCTimeStamps -verbose:gc -Xloggc:gc.log. Replace gc.log with an absolute path to
a gc.log file.
or in bin/setenv.sh, set:
If you modify bin/setenv.sh, you will need to restart Confluence for the changes to take effect.
What can you do to minimize the time taken to handle the garbage collection? See http://java.sun.com/docs/
hotspot/gc1.4.2/ for details on tuning the JVM to minimize the impact that garbage collection has on the
running application.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 362
Please gather all of the information listed below and include it in your support request, even if you think you
have a good idea what's causing the problem. That way we don't have to ask for it later.
System information
Confluence server
Take a screenshot of Confluence's Administration System Information (or save the page
as HTML)
Take a screenshot of Confluence's Administration Cache Statistics (or save the page as
HTML)
Find out the exact hardware Confluence is running on
How many CPUs? What make and model? What MHz?
How much memory is installed on the machine?
How much memory is assigned to Confluence's JVM? (i.e. what are the -Xmx and -Xms
settings for the JVM?)
What other applications are being hosted on the same box?
Confluence content
The database
User management
Are you using external user management or authentication? (i.e. Jira or LDAP user delegation, or
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 363
single sign-on)
If you are using external Jira user management, what is the latency between Confluence and Jira's
database server?
If you are using LDAP user management:
What version of which LDAP server are you using?
What is the latency between Confluence and the LDAP server?
Diagnostics
Observed problems
Monitoring data
Before drilling down into individual problems, helps a lot to understand the nature of the performance
problem. Do we deal with sudden spikes of load, or is it a slowly growing load, or maybe a load that follows a
certain pattern (daily, weekly, maybe even monthly) that only on certain occasions exceeds critical
thresholds? It helps a lot to have access to continuous monitoring data available to get a rough overview.
Here are sample graphs from the confluence.atlassian.com system, showing
Load
This graph shows the load for two consecutive days. The obvious pattern is that the machine is under decent
load, which corresponds to the user activity, and there is no major problem.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 364
Access logs
How to Enable User Access Logging, including redirecting the logs to a separate file
You can run this file through a log file analyzer such as AWStats, or manually look through for
pages which are slow to load.
Enable Confluence's built-in profiling for long enough to demonstrate the performance problem using T
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 365
CPU load
If you are experiencing high CPU load, please install the YourKit profile and attach two profiler dumps
taken during a CPU spike. If the CPU spikes are long enough, please take the profiles 30-60 seconds
apart. The most common cause for CPU spikes is a virtual machine operating system.
If the CPU is spiking to 100%, try Live Monitoring Using the JMX Interface, in particular with the Top
threads plugin.
It is essential to understand the user access and usage of your instance. Please use the access log
scripts and sql scripts to generate Usage statistics for your instance.
Next step
Open a ticket on https://support.atlassian.com and attach all the data you have collected. This should give us
the information we need to track down the source of your performance problems and suggest a solution.
Please follow the progress of your enquiry on the support ticket you have created.
The access log scripts are attached to this page. To use the scripts:
1. Unzip the 7z file.
2. Copy all the daily access logs to a folder called logs.
3. Run Atlassian-processDailyLog.rb. This will generate a csv file called summary.csv and
several directories which contain the access logs of each defined user action.
4. Run the appropriate script Atlassian-processDailyLog-hourly.rb
<admin/comment/create/edit/search/rss>. Each script will generate a different csv file. For
example, Atlassian-processDailyLog-hourly.rb admin will process the admin logs extracted in
step 3.
5. Import the csv files to www-log-Analysis.xls (summary.csv to 'raw stats - daily' sheet and admin.
csv to 'admin -hours' sheet, etc) to generate the load profiles and graphs. You may need to modify the
number of rows in each sheet depending on the number of logs.
Note
All scripts are written in Ruby and assume the log file name contains the string
'confluence.atlassian.com-access.log'. Scripts need to be changed if another name is used. Modify the
line: filenameRegexp = Regexp.new('confluence.atlassian.com-access.log')
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 366
Confluence down.
Please do not use the Concurrent Mark Sweep (CMS) Collector with Confluence, unless otherwise
advised by Atlassian Support. It requires extensive manual tuning and testing, and is likely to result in
degraded performance.
Keep your heap as small as possible, without the instance experiencing OutOfMemory errors. If you experience
OutOfMemory errors and need to increase this, we recommend you do it in 512mb or 1gb allotments, and
monitor the instance. If you continue to receive OutOfMemory errors, increase the heap by another 512mb or
1gb, and continue this process until you are operating stably with no OutOfMemory errors. Do not increase the
heap further than required, as this will result in longer garbage collections.
On every full GC, the JVM will resize the allocations of Eden, Survivor etc based on the throughput it is actually
seeing. It will tune itself based on the real world data of the objects that are being created and collected. Most of
the time simply allowing JVM to tune itself will give you better performance.
If you have added JVM parameters in the past and are experiencing difficulties with GC now, we'd recommend
you remove all GC related parameters, unless you added them to solve a specific problem, and they did in fact
solve that problem. You should also consider re-benchmarking now to ensure that they are still solving that
problem, and are not causing you any other issues.
If you run Confluence on a VM, check that is it not using the swap file. If it does, when the JVM garbage collects
it has to load the objects from the swap file into memory to clean them, and this can cause significantly longer
GC pauses. Instead of using swapping, ballooning and bursting, allocate adequate memory to the VM.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 367
Manual Tuning
If you find you are still experiencing difficulties with GC after following these recommendations and you would
like to see if you can tune the JVM better to improve performance, we recommend following the instructions in
our Garbage Collection (GC) Tuning Guide. This document will take you through the process of choosing
performance goals (throughput/footprint/latency), and how to tune for those goals.
How to Enable Garbage Collection (GC) Logging, and use a tool like Chewiebug's GCViewer to view the
resulting logs.
Troubleshooting Slow Performance Using Page Request Profiling
This page tells you how to enable page-request On this page:
profiling. With profiling turned on, you will see a
record of the time it takes (in milliseconds) to Enabling Page-Request Profiling
complete each action made on any Confluence Profiling an Activity
page. If Confluence is responding slowly, an internal Example of a Profile
timing trace of the slow page request can help to Start Confluence with Profiling
identify the cause of the delay. Enabled
You need to have System Administrator permissions in order to enable or disable profiling.
To enable page profiling:
1. Choose the cog icon
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 368
Profiling an Activity
Example of a Profile
Below are the first few lines of a normal profile for accessing a page called Confluence Overview.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 369
[344ms] - /display/ds/Confluence+Overview
[313ms] - SiteMesh: parsePage:
http://localhost:8080/display/ds/Confluence+Overview
[313ms] - XW Interceptor: Before defaultStack:
/pages/viewpage.action (ViewPageAction.execute())
[0ms] - SpaceAwareInterceptor.intercept()
[16ms] - PageAwareInterceptor.intercept()
[0ms] - AOP: PageManager.getPage()
[16ms] - AOP: PermissionManager.hasPermission()
[0ms] - AOP: SpacePermissionManager.hasPermission()
[16ms] - AOP: SpacePermissionManager.hasPermission()
[0ms] - AOP: SpacePermissionManager.hasPermission()
[0ms] - AOP: SpacePermissionManager.hasPermission()
[281ms] - XW Interceptor: After defaultStack:
/pages/viewpage.action (ViewPageAction.execute())
[281ms] - XW Interceptor: After validatingStack:
/pages/viewpage.action (ViewPageAction.execute())
...
Notice that each indented line is a recursive call that rolls up into the parent line. In the example above,
the Confluence Overview page takes 344ms. Part of that, 313ms, is spent in sitemesh.
There may be some situations where you may wish to have Confluence profiling enabled during startup. This
may be useful if you restart often and may forget to enable profiling for Support/Trouble-shooting purposes.
Edit the file CONFLUENCE_HOME\confluence\WEB-INF\web.xml. You should see a section similar to the
one below. Set the parameter value for autostart to true:
<filter>
<filter-name>profiling</filter-name>
<filter-class>com.atlassian.confluence.util.profiling.ConfluenceProfi
lingFilter</filter-class>
<init-param>
<!-- specify the which HTTP parameter to use to turn the
filter on or off -->
<!-- if not specified - defaults to "profile.filter" -->
<param-name>activate.param</param-name>
<param-value>profile</param-value>
</init-param>
<init-param>
<!-- specify the whether to start the filter
automatically -->
<!-- if not specified - defaults to "true" -->
<param-name>autostart</param-name>
<param-value>true</param-value>
</init-param>
</filter>
Remember to turn it back to false or your logs will grow very large.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 370
Page Profiling gives good detail on what operations are slow in a page load. In addition, you can add debug
level logging:
Download WikiMarkupParser.class, available from the attachments to this page. This will result in logs like:
Resolution
Experiment with the tips from the performance tuning page, or open an enhancement request about the specific
macro. In some instances there is no resolution - you'll just be aware of the overhead of various macros.
Confluence Diagnostics
When investigating a performance problem or outage, it's useful to know as much as possible about what was
happening in your site in the lead-up to the problem. This is when diagnostics information can help.
While often not individually actionable, diagnostic alerts can help you build up a detailed picture of your site's
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 371
This feature is still experimental in Confluence 6.11. We plan to fine-tune the thresholds and provide a
UI for this diagnostic information in an upcoming Confluence release. Stay tuned!
The purpose of the diagnostics tool is to continuously check for symptoms or behaviours that we know may
contribute to problems in your site. An alert is triggered when a set threshold is exceeded.
For example, if the free disk space for your local home (or shared home) directory falls below 256MB, an alert is
triggered. This is useful because if you run out of space, your users may not be able to upload new files, export
spaces, or perform other tasks that rely on writing files to that directory.
It's important to note that the thresholds are just the point at which the alert is triggered. It's not the same as a
timeout, or other hard limit. For example a long running task may trigger an alert after 5 minutes, and still
complete successfully after 8 minutes.
When an alert is triggered a message is written to the atlassian-confluence.log file (your application log),
and further details provided in the atlassian-diagnostics.log file. It's also included in support zips.
Some behaviours trigger a single alert, for others, multiple alerts are possible. Diagnostic information is stored in
the database, and retained for 30 days. Old alerts are cleaned up automatically.
Types of alerts
Long running task exceeded time limit Warn 300 seconds Yes
Garbage collection exceeded time limit Warn 10% (over the last 20 Yes
seconds)
Availability
Some diagnostic alerts are disabled by default, because they may have a performance impact on your site, or
are not designed to run continuously.
Our support team may ask you to enable one of the following alerts when troubleshooting a specific problem.
They'll provide you with information on how to do this.
Thread memory allocation rate exceeded limit Warn 5% over the last 20 Yes
seconds)
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 372
Alert levels
Some alert thresholds are configurable. If you find you are seeing too many instances of an alert, you can
change the threshold, so it's not triggered so easily.
Head to Recognized System Properties for a list of system properties for each alert. This info can also be found
on the knowledge base article for each alert.
You can also change the way the diagnostics framework itself behaves. For example, you might change how
often checks are performed, or how long diagnostics information is retained.
Head to Recognized System Properties for the full list of system properties.
We're proud that Confluence is one of the most versatile collaboration tools on the planet, and we will continue
to deliver innovative new features as quickly as we can. In order to prioritize the features we deliver, we need to
understand how our customers use Confluence, what's important, what's not, and what doesn't work well. The
collection of usage data allows us to measure the user experience across many thousands of users and deliver
features that matter.
The type of data we collect is covered in our Privacy Policy. Please read it - we've tried to avoid legal jargon and
made it as straightforward as possible.
To view a sample of data that might be collected from your specific installation, go to
Older versions of Confluence (prior to Confluence 5.6 or Confluence Questions 1.0.618) didn't collect usage
data. Analytics are collected using the Atlassian Analytics system app. The app collects analytics events in a log
file which is located in <confluence-home>/analytics-logs. The logs are periodically uploaded using an
encrypted session and then deleted. If Confluence is unable to connect to the Internet, no logs are ever
uploaded.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 373
The editing mode determines the editing experience for all users in your site. This is how you turn
collaborative editing on or off.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 374
Mode Implications
On This mode allows your team to edit a shared draft of a page at the same time, and see each
others' changes in real time.
This the recommended editing mode.
Limited This mode protects your users' shared drafts if you need to troubleshoot Synchrony. You
would only switch to this mode if your users are experiencing problems editing and publishing.
The editing experience will be very limited for your users:
Only one person can edit a shared draft at one time.
You can't revert to an earlier version of the page in the page history.
You can't move pages.
You can't make inline comments on pages.
As soon as Synchrony is running again, we recommend turning collaborative editing back on.
Off This mode means that your team can only edit their own personal draft of a page. Confluence
will attempt to merge any conflicts on save. This mode replicates the Confluence 5 editing
experience.
This mode is useful if you are unable to run Synchrony successfully in your environment, or if
you have decided that collaborative editing is not for you (for example if you have auditing
requirements that would prohibit using collaborative editing just yet).
You should make sure your users have published any work they want to keep before you turn
collaborative editing off.
A maximum of 12 people can edit a page at the same time. This means that people can't enter the editor if
there are already 12 other people editing the page, and will need to wait until someone leaves.
Administrators can increase or decrease this limit using a system property. If you experience performance
issues when many people are editing, you might want to decrease this limit.
Auditing considerations
We know that auditing is a major consideration for some customers. We don't yet have very granular auditing
capabilities with collaborative editing. All page changes are currently attributed to the person that publishes
the page, rather than the people who made each specific change.
If this is going to be a problem in your site, we recommend turning collaborative editing off in your site for
now.
We're saving all the time in collaborative editing, but we don't save versions of unpublished changes. When
restoring an earlier page version, you can only roll back to an existing published version. Any unpublished
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 375
There are some additional things to be aware of if you have granted the Add page permission (and Can use
global permission) to anonymous users.
You won't be alerted, when closing the editor or publishing a page, if the only unpublished changes on the
page were made by anonymous users. This means a logged in user may inadvertently publish changes they
were not aware had been made to the page.
The changes themselves are visible in the page, but the usual warning dialog will not appear if the only
people to have made changes were not logged in.
If there are unpublished changes from both logged in users and anonymous users, the warning dialog will
appear, but only the logged in users will be listed in the dialog. Changes made by all users (including
anonymous) will be included if you view the changes from that dialog.
How you connect to Synchrony will depend on your environment. We know that most Confluence sites run
behind a reverse proxy, often with SSL. Here's some information to help you identify the right configuration
for your environment, and any changes you might need to make to your environment to use collaborative
editing in your site.
SSL
Synchrony runs in a seperate JVM, and does not support direct HTTPS connections. If you are not using a
reverse proxy, SSL should be terminated at Tomcat. If you are using a reverse proxy or load balancer, SSL
should be terminated at your reverse proxy or load balancer.
See Possible Confluence and Synchrony Configurations for detailed diagrams and examples.
Proxies
If you run Confluence behind a reverse proxy, you should take a look at the Possible Confluence and
Synchrony configurations for guidance on how your Confluence and Synchrony setup may impact your
proxy.
See Possible Confluence and Synchrony Configurations for detailed diagrams and examples, plus links to
example proxy configuration files.
WebSockets
For best results, your load balancer and proxies should allow WebSocket connections. If your users are
unable to get a WebSocket connection, Confluence will fall back to a XML HTTP Request (XHR), allowing
them to edit pages successfully.
XHR fallback is enabled by default, but can be disabled using a system property (passed to Confluence) if
necessary. You shouldn't need to change this.
You can't change your Synchrony configuration through the Confluence UI. In most cases you shouldn't need
to make changes to the default configuration.
If you need to change the port Synchrony runs on or the maximum memory available, for example, you can
do this using a system property, or in your start-synchrony script (if you're running your own Synchrony
cluster).
See Configuring Synchrony for more information.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 376
If Synchrony is managed by Confluence (recommended), Confluence will automatically start Synchrony for
you when it starts up. You can also restart Synchrony from the collaborative editing admin screen in
Confluence.
If you're running Synchrony standalone in a cluster, you'll use the start-synchrony.sh or start-syn
chrony.bat. scripts on each Synchrony node. A process ID (PID) file will be created in your synchrony
directory.
Stop Synchrony the same way, using stop-synchrony.sh or stop-synchrony.bat. This will destroy
the PID file that the start script created in your Synchrony directory. If you've customised the location for
storing the PID file in the start-synchrony script, you'll need to also update this in the stop-synchrony
script.
If you're unable to start Synchrony, check that there isn't an existing PID file in your Synchrony directory.
Monitor Synchrony
> General Configuration > Clustering, then on each node choose Collaborative editing. You can access
all nodes in this way, you don't need to hit a specific node in your browser.
From here you can see the Synchrony status, mode, and URL Confluence is using to connect to it. Here's
what it looks like when Synchrony is managed by Confluence.
All Confluence nodes must use the same Synchrony mode. For example, you can't have one node using
managed Synchrony, and another node connecting to an standalone Synchrony cluster.
If Synchrony is managed by Confluence (recommended), Synchrony logs will be stored in your <local-ho
me>/logs directory, with the Confluence application logs.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 377
If you're running Synchrony standalone in a cluster, your Synchrony logs will be stored in the Synchrony
directory on each Synchrony node (wherever you run the start and stop scripts from).
No reverse proxy
If you don't run Confluence behind a reverse proxy, you'll connect to Synchrony via Confluence's internal
Synchrony proxy. SSL, if used, is terminated at Tomcat. This is the default configuration, and you shouldn't
need to make any additional changes to use collaborative editing.
If you run Confluence behind a reverse proxy, you will connect to Synchrony via Confluence's internal
Synchrony proxy. This is the default configuration with a reverse proxy, and a good choice if you do not want
to open port 8091. SSL should be terminated at your reverse proxy.
You do not need to make any additional changes to your reverse proxy configuration for Synchrony, but for
best results your reverse proxy must support WebSocket connections (you may need to manually enable this
in your proxy).
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 378
To tell Confluence that you want to use the internal proxy, set the synchrony.proxy.enabled system
property to true. (This is optional, but will prevent Confluence from trying to reach Synchrony via /synchrony
first, before retrying via the internal proxy).
If you run Confluence behind a reverse proxy, and experience latency or other issues connecting to
Synchrony via Confluence's internal Synchrony proxy, you can choose to connect direct to Synchrony. This is
the optimal setup, but does require some changes to your environment. You will need to open port 8091 and
add /synchrony to your reverse proxy configuration. SSL will still be terminated at your reverse proxy, as
Synchrony does not accept direct HTTPS connections.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 379
If Synchrony can't be reached via /synchrony we'll automatically try the internal Synchrony proxy via
/confluence/synchrony-proxy (where /confluence is your Confluence context path).
See the following guides for example reverse proxy configurations. The order of directives is important, so
check our examples.
Using Apache with mod_proxy
Running Confluence behind NGINX with SSL
Proxying Atlassian server applications with Apache HTTP Server (mod_proxy_http)
Proxying Atlassian server applications with Microsoft Internet Information Services (IIS)
How to configure Amazon Web Service Elastic Load Balancer with Confluence 6.0
If you have a Confluence Data Center license, two methods are available for running Synchrony:
managed by Confluence (recommended)
Confluence will automatically launch a Synchrony process on the same node, and manage it for you.
No manual setup is required.
Standalone Synchrony cluster (managed by you)
You deploy and manage Synchrony standalone in its own cluster with as many nodes as you need.
Significant setup is required.
If you want simple setup and maintenance, we recommend allowing Confluence to manage Synchrony for
you. If you want full control, or if making sure the editor is highly available is essential, then managing
Synchrony in its own cluster may be the right solution for your organisation.
Managed by Confluence
Here's a simplified view of the architecture when Synchrony is managed by Confluence. This is the
recommended approach, as no manual set up, or ongoing upgrades are required - it works right out of the
box.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 380
If you choose this approach, the guidance provided for Confluence Server above, also applies to your load
balancer and any proxies.
This option is only available in Confluence 6.12 and later.
If you choose to manage Synchrony yourself, the architecture looks more like this. Again the diagram has
been simplified, and doesn't show communication between nodes.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 381
If you enabled collaborative editing prior to Confluence Data Center 6.12, standalone Synchrony will
be your default setup.
If you would prefer a less complex setup, see Migrate from a standalone Synchrony cluster to
managed Synchrony to find out how to allow Confluence to manage Synchrony for you.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 382
Configuring Synchrony
Synchrony is the engine that powers collaborative editing in Confluence. On this page:
There's no UI for configuring Synchrony. Configuration changes, such as Passing
changing the Synchrony port or memory settings, are made via system recognized
properties. How you pass these properties depends on whether Synchrony system
is managed by Confluence, or deployed as a seperate cluster. properties
to
In most cases, Synchrony is managed by Confluence.
Synchrony
If you have a Data Center license, you may choose to deploy and manage S Common
ynchrony standalone in a cluster, instead of allowing Confluence to configurati
manage Synchrony for you. See Possible Confluence and Synchrony on
Configurations for more information. changes
Troublesho
oting
If Synchrony is managed by Confluence (the most common setup), you make changes to Synchrony by
passing system properties to Confluence. See Configuring System Properties to find out the best way to do
this for your operating system.
You can find a full list of system properties at Recognized System Properties.
If you're running Synchrony standalone in a cluster, you pass properties directly to Synchrony via the
start-synchrony scripts.
Note that the properties are not always the same as those used when Synchrony is managed by
Confluence. A full list of required and optional properties can be found at Set up a Synchrony cluster for
Confluence Data Center.
Sometimes you may want to pass additional arguments, that are not already provided by a system property,
directly to Synchrony's JVM.
If Synchrony is managed by Confluence, you will need to create a file called synchrony-args.properti
es in your home directory (or shared home if you have a Data Center license) and include the arguments you
want to pass to Synchrony, one per line, as follows:
property1=value1
property2=value2
Remember, you can't use this method for passing any value that is already handled by a system property,
such port, Xmx or Xss etc.
If you're running Synchrony standalone in a cluster, you pass arguments to Synchrony's JVM directly, by
adding them to your start-synchrony script, in the Optional Overrides section.
The two most common changes people make to Synchrony is to change the port that Synchrony runs on, if
port 8091 is already in use, and to change the maximum heap memory allocated to Synchrony.
Synchrony runs on port 8091 by default. If this port is already in use by another application on your server
you can use the the synchrony.port system property to change it to an available port.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 383
If you're Confluence 6.0.3 or earlier you'll need to use reza.port instead of synchrony.port.
If you're Confluence 6.0.3 or earlier you'll need to use reza.memory.max instead of synchrony.memory.
max.
Troubleshooting
If you have a Data Center license, and Synchrony is managed by Confluence, we recommend storing
the synchorny-args.properties file in the shared home directory, so that all Synchrony
processes are started with the same JVM arguments. If you do locate the synchrony-args.proper
ties file in the local home, the arguments will only be passed to the Synchrony process on that
node.
On this page we'll guide you through the process of setting up a standalone Synchrony cluster, hosted on
your own infrastructure. The ability to run your own Synchrony cluster is only available with a Data Center
license.
Architecture overview
Here's a simplified view of the architecture when you manage Synchrony yourself, in a seperate cluster. Note
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 384
If you enabled collaborative editing prior to Confluence Data Center 6.12, standalone Synchrony will
be your default setup.
If you would prefer a less complex setup, see Migrate from a standalone Synchrony cluster to
managed Synchrony to find out how to allow Confluence to manage Synchrony for you.
This page will guide you through setting up a Synchrony standalone cluster on your own infrastructure.
If you're using AWS or Azure, using one of our templates may be a more efficient way to set up Confluence
with a standalone Synchrony cluster.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 385
For the purposes of this guide, we assume you have already provisioned the hardware or virtual instances for
your Synchrony nodes. We recommend starting with 2 Synchrony nodes.
You should allow 2GB memory for Synchrony, and enough disk space for the Synchrony application and
logs.
We provide scripts to start and stop Synchrony on each node. These need to be edited to add information
about your environment:
1. Edit the <synchrony-home>/start-synchrony.sh or start-synchrony.bat file
2. Enter details for all of the required parameters listed under Configure parameters.
See Required properties below, for a description of each.
3. Enter detail for any optional properties you may want to specify.
See Optional properties below for a description of each.
4. Save the file.
5. Start Synchrony by running the start-synchrony script.
6. Visit http://<SERVER_IP>:<SYNCHRONY_PORT>/synchrony/heartbeat to check Synchrony
is running.
Members [2] {
Member [172.22.52.12]:5701
Member [172.22.49.34]:5701
}
You can choose to use the same load balancer for both Confluence and Synchrony, or two seperate
load balancers. When we refer to the Synchrony load balancer, we mean whichever load balancer is
handling Synchrony traffic.
Now that Synchrony is running in a cluster, it's time to get Confluence involved. It is essential that you stop
Confluence on all nodes before continuing.
1.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 386
-Dsynchrony.service.url=http://<synchrony-load-balancer-url>/syn
chrony/v1
> Collaborative editing beside the Confluence node you just started.
If the mode is 'Managed by Confluence', your Confluence node is not connected to your Synchrony
cluster. Make sure you're passing the Synchrony service URL system property correctly.
4. Repeat this process, starting each Confluence node, one at a time, with the synchrony.service.u
rl.
If you're installing Confluence for the first time, collaborative editing is enabled by default. If you've upgraded
from an earlier Confluence version, or have disabled it in the past, collaborative editing may still be disabled.
To enable collaborative editing:
1. Head to
These properties only apply when you're running Synchrony standalone in its own cluster. If Synchrony is
managed by Confluence (Server or Data Center) these properties don't apply.
The following properties must be provided in the start-synchrony script.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 387
DATABASE_URL This is the URL for your Confluence database. For example jdbc:po
stgresql://yourserver:5432/confluence . You can find this
URL in <local-home>/confluence.cfg.xml .
DATABASE_PASSWORD (Optional) This is the password for your Confluence database user. If
your password contains special characters, Synchrony may silently fail
to connect to the database.
Rather than hardcoding your password, we recommend setting your
password with the environment variable SYNCHRONY_DATABASE_PAS
SWORD. Any dots (".") in variable names (identifiers) will need to be
replaced with underscores ("_").
DATABASE_DRIVER_PATH This is the path to your database driver file. If you're running
Synchrony on its own node, you'll need to copy your database driver to
an appropriate location then provide the path to this location.
SYNCHRONY_URL This is the URL that the browser uses to contact Synchrony. Generally
this will be the full URL of the load balancer Synchrony will run behind
plus the Synchrony context path, for example http://yoursite.co
m:8091/synchrony .
Note that it does not end with /v1 , unlike the synchrony.service.
url system property passed to Confluence. If this URL doesn't match
the URL coming from a users' browser, Synchrony will fail.
OPTIONAL_OVERRIDES You can choose to specify additional system properties. See the table
below for recognised Synchrony system properties.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 388
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 389
If you're running a Synchrony standalone in a cluster in an IPv6 environment, you will need to start
Synchrony with the following JVM argument:
-Dhazelcast.prefer.ipv4.stack=false
If you're using the start-synchrony scripts, simply uncomment this line in the script.
If you're running Synchrony standalone in a cluster, and you'd prefer to run Synchrony as a service on
each node, see Run Synchrony-standalone as a service on Linux.
It's not possible to run Synchrony standalone as a service on Windows. Consider switching to managed
Synchrony instead.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 390
If you're running Synchrony standalone in a cluster, and you prefer to store sensitive information in your
environment, rather than directly in the Synchrony startup scripts you can create a synchronyenv file, and
use it to provide your database credentials. This is only available in Linux environments.
See Provide credentials to Synchrony standalone using environment variables (Linux)
set
CATALINA_OPTS=-Dsynchrony.service.url=http://example-synchrony.c
om/synchrony/v1 %CATALINA_OPTS%
If you start Confluence manually on Linux, edit the <install directory>/bin/setenv.sh file
and remove the following line:
CATALINA_OPTS="-Dsynchrony.service.url=http://example-synchrony.
com/synchrony/v1 ${CATALINA_OPTS}"
If you're running as a Confluence as a Windows Service, you'll need to edit the service and remove
the following from the Java options:
-Dsynchrony.service.url=http://example-synchrony.com/synchrony/v
1
See Configuring System Properties for a step-by-step guide to passing system properties to Windows
services via the command line or Windows Registry.
4. In Confluence, edit a page and check that you can successfully make changes.
5. Repeat this process on each Confluence node, starting each node one at a time.
Once all nodes are back up and running, and you've confirmed that collaborative editing is working as expected,
you can decommission your external Synchrony cluster, including removing any startup scripts or services you
may have configured.
Any users who had the editor open before you made this change will need to refresh in order to continue editing,
as the Synchrony URL they're connected to will have changed.
You may also need to make some changes to your load balancer configuration. See Possible Confluence and
Synchrony Configurations for more information.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 391
Restart Synchrony
Go to
> General Configuration > Collaborative editing and choose Restart Synchrony.
Synchrony runs on port 8091 by default. If this port is already in use by another application on your server
you can use the the synchrony.port system property to change it to an available port.
(If you're using Confluence 6.0.3 or earlier you'll need to use reza.port instead of synchrony.port.)
If you have configured your reverse proxy, but can't edit pages, here's some things to check in your
configuration:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 392
If you're using a forward or outbound proxy, you will need to add the IP that Synchrony listens on to your
config to ensure it is bypassed. See Configuring Web Proxy Support for Confluence for more info.
By default, the IP is 127.0.0.1, or it will be the value of the synchrony.host system property, if you've
customized the hostname or IP that Confluence uses to connect to Synchrony.
Websocket issues
Collaborative editing works best with a WebSocket connection. If one can't be established due to a timeout,
or a proxy server or firewall that doesn't allow WebSocket connections, the editor will attempt to connect via
an XML HTTP Request (XHR).
You can use http://websocket.org/echo.html to perform a quick HTML5 WebSocket test against an echo
server.
SSL issues
Synchrony cannot accept direct HTTPS connections, so you will need to terminate SSL at your reverse proxy
or load balancer, or at Tomcat if you are not using a reverse proxy.
Memory issues
If you experience out of memory errors related to Synchrony, you can change the heap size allocated to
Synchrony using the synchrony.memory.max system property.
If you're Confluence 6.0.3 or earlier you'll need to use reza.memory.max instead of synchrony.memory.
max.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 393
If you see an error immediatley in the editor, but Confluence reports that Synchrony is running, check to
make sure that you only have one Synchrony process running.
If you do have multiple Synchrony processes running, stop Confluence, kill the additional Synchrony
processes and then restart Confluence.
You can avoid this problem by always using stop-confluence.sh / stop-confluence.bat to stop
Confluence, rather than simply closing the Tomcat window.
If you're running Confluence in a cluster, all of your Confluence nodes must connect to Synchrony in the
same way.
If users are able to use collaborative editing on one Confluence node, but not on another Confluence node,
go to
> General Configuration > Clustering, then on each node choose Collaborative editing.
Make sure all of your Confluence nodes are reporting the same Synchrony mode - either Managed by
Confluence, or Standalone Synchrony cluster.
You can access all nodes in this way, you don't need to hit a specific node in your browser.
Some third party browser extensions that interact with the editor, such as Grammarly, may not function
correctly with collaborative editing. See Confluence Collaborative Editing blocks Grammarly Extension to find
out how to disable Grammarly for just your Confluence site.
We've had a few reports of firewalls or anti-virus software blocking some requests to the server, resulting in
unexpected behavior in the editor. You may need to add Confluence to your whitelist / trusted URLs if you
experience issues. See Weird Page or Editor Behaviors with Kaspersky Internet Security for more
information.
We don't enforce a maximum number of people who can edit together, but we recommend you keep it to no
more than 12 people editing the same page at the same time. We may enforce a limit to the number people
who can enter the editor in a later release if necessary.
Read-only mode is only available for Confluence Data Center. The information on this page does not
apply to Confluence Server.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 394
Read-only mode limits the actions that an end user can perform. Some operations may still write to your
database, but for the most part people will be unable to make any changes.
While read-only mode is on, you won't be able to:
Create, edit, rename, move, delete or otherwise interact with pages.
Create, delete or rename spaces.
Access most space tools, including reorder pages, make changes to the look and feel, or add
integrations.
Here's how a page looks when read-only mode is enabled:
1. Customizable banner - the banner appears on all pages in your site. Admins can customize the
message to let you know when the site will be available again.
2. Options are limited - we hide buttons and menu items that are not available, including create, edit,
move, and delete.
If you happen to be in the editor at the point read-only mode is enabled, you'll be able to keep typing, but any
further changes won't be saved.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 395
1. Read-only warning - although you can keep typing in the editor (including comment fields), changes you
make after read-only mode is enabled won't be saved. It's best to stop editing at this point.
While read-only mode is on, people with system administrator global permissions will be able to perform some
administrative functions, such as:
Install, uninstall, enable, disable system and user installed apps
Manage users, groups, and permissions
Change the site appearance
Export and import spaces
Change logging levels, and other configuration.
Not all admin features will be available, and just like end-users, admins won't be able to create, edit, or delete
any content.
People with Confluence administrator global permissions will also be able to perform some administrative
functions, but they won't be able to make changes to space permissions while read-only mode is enabled.
It's important to note that read-only mode does not prevent data being written to the database, but
will significantly limit the changes that can be made.
If you're doing database maintenance, and need to make sure that absolutely nothing is written to the
database during that time, it may be best to stop Confluence, rather than using read-only mode.
Not all apps (also known as plugins or add-ons) are compatible with read-only mode, and may continue to allow
users to create or update content while read-only mode is enabled.
To check if your apps are compatible:
Go to
If you're excited by the possibilities of read-only mode, but not sure when you might use it, here are some
examples.
Upgrading Confluence
The way you upgrade Confluence hasn't changed, but read-only mode can help you minimize the impact on your
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 396
organization.
If some downtime is acceptable, the simplest option is to enable read-only mode while you perform the
pre-upgrade steps, such as checking Marketplace app compatibility and backing up your file system and
database (if your database supports online backups). This helps you keep the overall downtime to a bare
minimum, as users can view pages right up to the point you need to stop Confluence.
If you need to provide uninterrupted access, the approach you take may depend on whether Confluence is
running on virtualized or physical hardware.
If virtualized, you might want to take a 'move forwards' approach. You could enable read-only on your
production site, clone your database, install, and home directories, then upgrade the clone. Once the
upgrade is complete and you've validated that everything is working fine, you can direct traffic to the
upgraded site, and tear down the old site.
If you're running Confluence on physical hardware it might be more appropriate to create a temporary
read-only site. You could clone your production database, install, and home directories to create a
temporary read-only site (similar to the process involved in creating a staging site), and direct traffic to
that site while you upgrade your production Confluence site in place.
You should also always test the upgrade on a staging or test instance first. As when creating a staging site, it's
essential to make sure Confluence is always pointing to the correct database and home directory.
Need to move Confluence to another server, or provision more space for your shared home directory? The
approaches outlined above for upgrading Confluence can also be useful when upgrading parts of your
infrastructure.
Note that some data may still be written to the database while read-only mode is enabled, so if you're doing
database maintenance of any sort, directing your users to a secondary site (with a copy of your database) that
has read-only enabled, may be a good approach. You can't, for example, upgrade your production database
while Confluence is still running, even if read-only mode is enabled.
Again, always make sure Confluence is pointing to the correct database!
It's quite common for multiple Confluence sites to pop up in big organisations. If you're consolidating or merging
sites, read-only mode can help limit changes to content while you work through the process of exporting spaces
and importing them into your new site.
To edit files, users need to install the Atlassian Companion app and have it running in the background. The
first time a user selects 'Edit with' in file preview, we prompt them to download and install the app. See Edit
Files for details.
Screenshot: the download prompt shown in file preview
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 397
If your users aren't able to install applications themselves, you may want to distribute the app to them or
deploy using the Microsoft Installer.
When a user tries to edit an attached file, Confluence makes a DNS request to https://atlassian-doma
in-for-localhost-connections-only.com, which resolves to localhost (https://127.0.0.1). This
allows Confluence to establish a secure WebSocket connection to the Companion app.
If your outgoing internet requests are filtered through a proxy server, you may need to exclude https://at
lassian-domain-for-localhost-connections-only.com from the browser's forward proxies,
otherwise the proxy server won't be able to route the request back to the local machine.
We also provide a Microsoft Installer package (.msi file) to deploy the Atlassian Companion app for Windows
across multiple users or machines. By default, the Companion app installs to the Program Files directory, but
you can customize this.
Download the Atlassian Companion MSI (69 MB)
If you deploy using the Microsoft Installer, the Companion app won’t automatically get the latest updates,
including security and bug fixes, so some maintenance is required.
We may update the Companion app before or after we release a new version of Confluence. Check the Atlas
sian Companion app release notes to make sure you're on the latest version.
System Administrators can remove the edit files option from their Confluence site.
To disable the edit files option when previewing a file:
1. Go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 398
To disable the edit option from the Attachments page, Attachments macro and View File macros:
1. Go to
The Atlassian Companion app only works in some virtual desktop environments. If a user's environment isn't
compatible with the Companion app, they won't be able to edit files in Confluence.
This table outlines which environments are compatible with the Companion app:
Environment Compatibility
with Companion
app
When a user edits a file, that file is also downloaded and saved to the Atlassian Companion folder on their
computer. Files are cleared every time the Companion app restarts.
Follow our guide to accessing Confluence files edited with the Atlassian Companion app.
Enterprise releases
An Atlassian Enterprise release is a feature release that gets backported security updates and critical bug
fixes during its entire two-year support window. If you can only upgrade once a year, consider upgrading to
an Enterprise release. Learn more
System Requirements
Downloads
Server Hardware Requirements Guide
Running Confluence in a Virtualized
Environment Download the Confluence documentation
Confluence Installation Guide in PDF format.
Installing Confluence
Installing Confluence Data Center
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 399
System Requirements
Confluence can run on a wide range of operating On this page:
systems and databases, on physical or virtualized Software requirements
servers. Operating systems
Application server
See Supported Platforms for the full list of platforms Databases
that we support in this version of Confluence or Sup Java
ported Platforms FAQ for details on our support Antivirus considerations
handling procedures. Hardware requirements
Hosted solutions – Confluence
Cloud
Software requirements
Operating systems
Application server
We only support running Confluence on the version of Apache Tomcat that is bundled with the Confluence
distribution.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 400
Databases
You'll need an external database to run Confluence. See the Supported Platforms page for a list of all the
databases we support.
When evaluating Confluence, you can use the embedded H2 database included in the Confluence
installation, but you will need to migrate to a supported external database once you're ready to roll
Confluence out to your team.
Java
The Java Runtime Environment (JRE) is packed up and ready to go when you install Confluence using the
Windows or Linux installer. You don't need to install Java yourself.
If you choose to install Confluence from an archive file, you'll need a supported JRE or JDK, and your
JAVA_HOME variable set correctly. See Installing Java for Confluence for more information.
Antivirus considerations
Antivirus software on the operating system running Confluence can greatly decrease the performance of
Confluence. Antivirus software that intercepts access to the hard disk is particularly detrimental and may
even cause errors in Confluence. This is particularly important if you are running Confluence on Windows. No
matter how fast your hardware is, antivirus software will almost always have a negative impact on
Confluence's performance.
You should configure your antivirus software to ignore the following directories:
Confluence home directory
Confluence's index directory
All database-related directories
Hardware requirements
Please be aware that while some of our customers run Confluence on SPARC-based hardware, Atlassian
only officially supports Confluence running on x86 hardware and 64-bit derivatives of x86 hardware.
See Server Hardware Requirements Guide for more information.
You may also like to check out our tips on reducing out of memory errors, in particular the section on Perman
ent Generation Size.
If you do not have the resources to set up and maintain a Confluence installation locally, consider trying
Confluence Cloud. Atlassian can run and maintain your installation of Confluence, handling all the testing,
monitoring and upgrading processes for you.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 401
Note: Please be aware that while some of our customers run Confluence on SPARC-based hardware, we
only officially support Confluence running on x86 hardware and 64-bit derivatives of x86 hardware.
Confluence typically will not perform well in a tightly constrained, shared environment - examples include an
AWS micro.t1 instance. Please be careful to ensure that your choice of hosting platform is capable of
supplying sustained processing and memory capacity for the server, particularly the processing-intense
startup process.
These are example hardware specifications for non-clustered Confluence instances. It is not recorded
whether the amount of RAM refers to either the total server memory or memory allocated to the JVM, while
blank settings indicate that the information was not provided.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 402
85,000 100 12,500 4 2.6 4,096 3 machines total: application server, database
server, Apache HTTPD + LDAP tunnel server.
When planning server hardware requirements for your Confluence deployment, you will need to estimate the
server scalability based on peak visitors, the editor to viewer ratio and total content.
The editor to viewer ratio is how many visitors are performing updates versus those only viewing
content
Total content is best estimated by a count of total spaces
Confluence scales best with a steady flow of visitors rather than defined peak visitor times, few editors and
few spaces. Users should also take into account:
Total pages is not a major consideration for performance. For example, instances hosting 80K of
pages can consume under 512MB of memory
Always use an external database, and check out the performance tuning guides.
These values are largest customer instances reported to Atlassian or used for performance testing.
Clustering, database tuning and other performance tuning is recommended for instances exceeding these
values.
All page content is stored in the database, while attachments are stored in the file system. The more
attachments you have, the more disk space you will require.
Use Case Spaces User Editors Editor Pages Page Attachments Comments
Accounts To Revisions
Viewer
Ratio
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 403
Private Intranet 130 180 140 78% 8,000 84,000 3,800 500
Professional assistance
For large instances, it may be worthwhile contacting an Atlassian Solution Partner for expertise on hardware
sizing, testing and performance tuning.
Example site
Here is a breakdown of the disk usage and memory requirements a large documentation site as at April
2013:
Content bodies (incl. all versions of blogs, pages and bodycontent 517520 1354
comments) MB
Note: not all database tables or indexes are shown, and average row size may vary between instances.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 404
Note: not all files are shown, and average file size may vary between instances.
Recommendations
The following recommendations come from our experience in running and testing Confluence in virtualized
environments like VMWare and KVM, and our experience in working with customers running on these
platforms.
Know your platform. Consult the documentation for your operating system and your chosen
virtualization technology, for details on setting up a reliable VM (virtual machine) image.
Allocate enough memory. As a Java web application, Confluence requires a relatively large memory
allocation, compared to some other web technologies. Ensure that your VM images have enough
physical memory allocated to run Confluence without swapping.
Handle high I/O. Under normal usage, Confluence requires a significant number of input/output (I/O)
operations to the database and home directory for each web request. Ensure that you use the correct
drivers and consider how you make storage available to your VMs to optimize this access.
Handle peak CPU and memory usage. For certain operations (including PDF export, Office
document processing, and displaying large pages) Confluence requires a significant amount of CPU
and memory. Ensure that your virtualization infrastructure has the flexibility and capacity to deal with
peak load, not just idle load.
Synchronize time correctly. Some customers have had problems with time synchronization between
the VM and the host system. This causes problems in Confluence due to irregularities in the execution
of scheduled tasks. We strongly recommend checking your VM time sync if you have issues with
scheduled tasks in a virtualized environment.
Further help
For further assistance in setting up a virtualized environment for running Confluence, you may want to
consult an Atlassian Solution Partner. Several experts have experience with installation and performance
tuning, and can help you with your Confluence configuration.
Before installing Confluence, please check that you meet the minimum system requirements and Supported
Platforms.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 405
If you're planning to run Confluence in a virtualized environment see Running Confluence in a Virtualized
Environment.
There are a number of ways to install Confluence. Choose the method that is best for your environment.
Install a Confluence trial This is the fastest way to get a Confluence site up and running.
If you're evaluating Confluence, use this option or try Confluenc
Windows, Linux or OS X e Cloud free.
You don't need an external database to install a Confluence
trial.
Install Confluence using an installer This option uses an installer, and is the most straightforward
way to get your production site up and running on a Windows
Windows or Linux server.
Linux
Install Confluence from a zip or This option requires you to manually install files and configure
archive file some system properties. It gives you the most control over the
install process. Use this option if there isn't an installer for your
Windows operating system.
Linux
Run Confluence in a Docker container This option gets Confluence Server up and running in no time
using a pre-configured Docker image. Head to https://docs.doc
Docker ker.com/ to find out more about Docker.
Atlassian supports running Confluence in a Docker container,
but we cannot offer support for problems which are related to
the environment itself.
Install Confluence in a cluster Confluence Data Center is a clustered solution for large
enterprises. It can be hosted on your own infrastructure or
Windows and Linux deployed to AWS or Azure for a private cloud solution.
AWS Quick Start
Azure Read the Confluence Data Center Technical Overview to find
out if Confluence Data Center is right for your organization.
Installing Confluence
There are a number of ways to install Confluence. Choose the method that is best for your environment.
Install a Confluence trial This is the fastest way to get a Confluence site up and running.
If you're evaluating Confluence, use this option or try Confluenc
Windows, Linux or OS X e Cloud free.
You don't need an external database to install a Confluence
trial.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 406
Install Confluence using an installer This option uses an installer, and is the most straightforward
way to get your production site up and running on a Windows
Windows or Linux server.
Linux
Install Confluence from a zip or This option requires you to manually install files and configure
archive file some system properties. It gives you the most control over the
install process. Use this option if there isn't an installer for your
Windows operating system.
Linux
Run Confluence in a Docker container This option gets Confluence Server up and running in no time
using a pre-configured Docker image. Head to https://docs.doc
Docker ker.com/ to find out more about Docker.
Atlassian supports running Confluence in a Docker container,
but we cannot offer support for problems which are related to
the environment itself.
Install Confluence in a cluster Confluence Data Center is a clustered solution for large
enterprises. It can be hosted on your own infrastructure or
Windows and Linux deployed to AWS or Azure for a private cloud solution.
AWS Quick Start
Azure Read the Confluence Data Center Technical Overview to find
out if Confluence Data Center is right for your organization.
If you're ready to set up a production Confluence site or you want more control, check out our full installation
guides.
Our installers come with all the bits and pieces you need to run the application, but there's a few things you'll
need to get up and running:
A computer or laptop with a supported operating system - you'll be installing Confluence so you'll need
admin rights.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 407
2. Install Confluence
For Windows
1. Run the installer - we recommend running with a Windows administrator account.
If prompted, make sure you allow the installer to make changes to your computer. This will allow
you to install Confluence as a service.
2. Choose Express Install, then click Next.
3. Once installation is complete, it will ask you if you want to open Confluence in your browser. Make
sure this option is selected then click Done.
4. Confluence will open in your default browser, and you're ready to start the set up wizard.
For Linux
1. Change to the directory where you downloaded Confluence then execute this command to make it
executable:
$ sudo ./atlassian-confluence-X.X.X-x64.bin
3. Set up Confluence
The set up wizard is the last step in getting Confluence up and running. You'll need your email address to
generate your evaluation license.
1. Select Trial, and click Next.
This will allow Confluence to set up everything it needs to run, including an H2 database.
2. Select Get an evaluation license then follow the prompts to generate your license.
3. If you want to try some Confluence apps to give you more functionality, select the ones you want and
click Next.
It will take a few minutes to get everything connected and operational.
4. Select Manage users with Confluence, and click Next.
5. Enter and confirm the details you want to use for your administrator account, and click Done.
That's it! You're ready to team up with some colleagues and start using Confluence!
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 408
Before you install Confluence, there's a few questions you need to answer.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 409
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 410
Install Confluence
1. Download Confluence
Set up Confluence
Follow the prompts to log in to my.atlassian.com to retrieve your license, or enter a license key.
1. If you've not already done so, it's time to create your database. See the 'Before you begin' section of
this page for details and connection options.
2. Choose My own database then select your particular database from the Database type dropdown
menu.
3. For MySQL and Oracle, follow the prompts to download and install the required driver.
4. Enter your database details. Use test connection to check your database is set up correctly.
Advanced setup options...
If you want to specify particular parameters, you can choose to connect By connection string.
You'll be prompted to enter:
Database URL – the JDBC URL for your database. If you're not sure, check the
documentation for your database.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 411
Username and Password – A valid username and password that Confluence can use to
access your database.
Choose whether you'd like Confluence to populate your site with content:
Demonstration space...
This option will create a space that you and your users can use to get to know Confluence. You can
delete this space at any time.
Import data from an existing site...
Use this option if you have a full site export of an existing Confluence site. This is useful when you’re
migrating to another database or setting up a test site.
Good to know:
You can only import sites from the same or earlier Confluence version.
The system administrator account and all other user data and content will be imported from your
previous installation.
In the setup wizard:
Upload a backup file – use this option if your site export file is small (25mb or less).
Restore a backup file from the file system – use this option if your backup file is large. Drop the
file into your <confluence-home>/restore directory then follow the prompts to restore the
backup.
Build Index – we’ll need to build an index before your imported content is searchable. This can
take a long time for large sites, so deselect this option if you would rather build the index
later. Your content won't be searchable until the index is built.
Choose to manage Confluence's users and groups inside Confluence or in a Jira application, such as Jira
Software or Jira Service Desk:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 412
username and password to create a local administrator account which will let you access
Confluence if Jira is unavailable. Note that this single account is stored in Confluence's internal
user directory, so if you change the password in Jira, it will not automatically update in Confluence.
Confluence Base URL – this is the URL Jira will use to access your Confluence server. The URL
you give here overrides the base URL specified in Confluence, for the purposes of connecting to
the Jira application.
User Groups – these are the Jira groups whose members should be allowed to use Confluence.
Members of these groups will get the 'Can use' permission for Confluence, and will be counted in
your Confluence license. The default user group name differs depending on your Jira version:
Jira 6.4 and earlier: jira-users.
Jira Software 7.x and later: jira-software-users
Jira Core 7.x and later: jira-core-users
Jira Service Desk 3.x and later: jira-servicedesk-users
Admin Groups – provide one or more Jira groups whose members should have administrative
access to Confluence. The default group is jira-administrators. These groups will get the
system administrator and Confluence administrator global permissions in Confluence.
That's it! Your Confluence site is accessible from a URL like this:
http://<computer_name_or_IP_address>:<port>
If you plan to run Confluence behind a reverse proxy, check out Proxy and SSL considerations before you go
any further.
Here's a few things that will help you get your team up and running:
Set the server base URL – this is the URL people will use to access Confluence.
Set up a mail server – this allows Confluence to send people notification about content.
Add and invite users – get your team on board!
Start and stop Confluence – find out how to start and stop Confluence.
Troubleshooting
Running into problems installing Confluence?
Some anti-virus or other Internet security tools may interfere with the Confluence installation
process and prevent the process from completing successfully. If you experience or anticipate
experiencing such an issue with your anti-virus/Internet security tool, disable this tool first before
proceeding with the Confluence installation.
Can't start Confluence? See Confluence does not start due to Spring Application context has not
been set .
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 413
Before you install Confluence, there's a few questions you need to answer.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 414
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 415
If you see a path to your Java installation directory, the JRE_Home environment
variable has been set correctly.
If nothing is displayed, or only %JRE_HOME% is returned, you'll need to set the JRE
_HOME environment variable manually. See Setting the JAVA_HOME Variable in
Windows for a step by step guide.
Install Confluence
1. Download Confluence
1. Create your installation directory (with full control permission) – this is where Confluence will be
installed. Avoid using spaces or special characters in the path. We'll refer to this directory as your <in
stallation-directory>.
2. Extract the Confluence zip file to your <installation-directory>. We recommend using 7zip or
Winzip.
1. Create your home directory (with full control permission) – this is where Confluence data like logs,
search indexes and files will be stored. This should be seperate to your installation directory. We'll
refer to this directory as your <home-directory>.
2. Edit <installation-directory>\confluence\WEB-INF\classes\confluence-init.pro
perties.
3. At the bottom of the file, enter the path to your <home directory>.
Show me how to do this...
You can edit the confluence-init.properties file in Notepad or any other text editor.
a. Scroll to the bottom of the text and find this line:
# confluence.home=c:/confluence/data
b. Remove the '#' and the space at the beginning of this line (so Confluence doesn't regard the
line as a comment)
confluence.home=c:/data/confluence-home
c. If you decide to use a different directory as the home directory you should:
Avoid spaces in the directory path or file name.
Use forward slashes '/' to define the path in this file.
By default Confluence listens on port 8090. If you have another application running on your server that uses
the same ports, you'll need to tell Confluence to use a different port.
Show me how to do this...
To change the ports:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 416
1. Edit <installation-directory>\conf\server.xml
2. Change the Server port (8000) and the Connector port (8090) to free ports on your server.
In the example below we've changed the Server port to 5000 and the Connector port to 5050.
5. Start Confluence
A command prompt will open. Closing this window will stop Confluence.
Set up Confluence
Follow the prompts to log in to my.atlassian.com to retrieve your license, or enter a license key.
1. If you've not already done so, it's time to create your database. See the 'Before you begin' section of
this page for details and connection options.
2. Choose My own database then select your particular database from the Database type dropdown
menu.
3. For MySQL and Oracle, follow the prompts to download and install the required driver.
4. Enter your database details. Use test connection to check your database is set up correctly.
Advanced setup options...
If you want to specify particular parameters, you can choose to connect By connection string.
You'll be prompted to enter:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 417
Database URL – the JDBC URL for your database. If you're not sure, check the
documentation for your database.
Username and Password – A valid username and password that Confluence can use to
access your database.
Choose whether you'd like Confluence to populate your site with content:
Demonstration space...
This option will create a space that you and your users can use to get to know Confluence. You can
delete this space at any time.
Import data from an existing site...
Use this option if you have a full site export of an existing Confluence site. This is useful when you’re
migrating to another database or setting up a test site.
Good to know:
You can only import sites from the same or earlier Confluence version.
The system administrator account and all other user data and content will be imported from your
previous installation.
In the setup wizard:
Upload a backup file – use this option if your site export file is small (25mb or less).
Restore a backup file from the file system – use this option if your backup file is large. Drop the
file into your <confluence-home>/restore directory then follow the prompts to restore the
backup.
Build Index – we’ll need to build an index before your imported content is searchable. This can
take a long time for large sites, so deselect this option if you would rather build the index
later. Your content won't be searchable until the index is built.
Choose to manage Confluence's users and groups inside Confluence or in a Jira application, such as Jira
Software or Jira Service Desk:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 418
Jira Administrator Login – this is the username and password of a user account that has the Jira
System Administrator global permission in your Jira application. Confluence will also use this
username and password to create a local administrator account which will let you access
Confluence if Jira is unavailable. Note that this single account is stored in Confluence's internal
user directory, so if you change the password in Jira, it will not automatically update in Confluence.
Confluence Base URL – this is the URL Jira will use to access your Confluence server. The URL
you give here overrides the base URL specified in Confluence, for the purposes of connecting to
the Jira application.
User Groups – these are the Jira groups whose members should be allowed to use Confluence.
Members of these groups will get the 'Can use' permission for Confluence, and will be counted in
your Confluence license. The default user group name differs depending on your Jira version:
Jira 6.4 and earlier: jira-users.
Jira Software 7.x and later: jira-software-users
Jira Core 7.x and later: jira-core-users
Jira Service Desk 3.x and later: jira-servicedesk-users
Admin Groups – provide one or more Jira groups whose members should have administrative
access to Confluence. The default group is jira-administrators. These groups will get the
system administrator and Confluence administrator global permissions in Confluence.
That's it! Your Confluence site is accessible from a URL like this:
http://<computer_name_or_IP_address>:<port>
If you plan to run Confluence behind a reverse proxy, check out Proxy and SSL considerations before you go
any further.
Here's a few things that will help you get your team up and running:
Set the server base URL – this is the URL people will use to access Confluence.
Set up a mail server – this allows Confluence to send people notification about content.
Add and invite users – get your team on board!
Start and stop Confluence – find out how to start and stop Confluence.
Troubleshooting
Running into problems installing Confluence?
If your web browser window shows an error the first time you try to access Confluence, wait for 30
seconds or so and then refresh the page.
If the command prompt window closes immediately, your JAVA_HOME variable may not be set
correctly. See Setting the JAVA_HOME Variable in Windows.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 419
If you see an error, see Confluence does not start due to Spring Application context has not been
set for troubleshooting options.
Collaborative editing errors? See Troubleshooting Collaborative Editing.
Head to Installation Troubleshooting in our Knowledge Base for more help.
This page describes the procedure for uninstalling an instance of Confluence which has been installed using the
Windows Installer.
To uninstall Confluence from Windows:
1. Log in to Windows as the same user that was used to install Confluence with the Windows Installer.
2. Start the uninstaller by doing either of the following:
Click the Windows Start Menu > All Programs > Confluence > Uninstall Confluence
OR
Open the Windows Control Panel, choose Add or Remove Programs (on Windows XP) or Progr
ams and Features on (Windows 7, Vista) and then select Confluence X.Y from the list of
applications and click Uninstall/Change.
OR
Open the Windows command prompt and do the following:
a. Change directory to your Confluence installation directory
b. Run the uninstall.exe file
3. Follow the prompts to uninstall Confluence from your computer.
Please note:
The uninstaller will not delete the Confluence Home Directory.
All log files that were generated while Confluence was running will not be deleted.
All files within the Confluence Installation Directory will be deleted (with the exception of the Tomcat log f
older located in the Confluence Installation Directory).
The uninstaller can be made to operate in unattended mode by specifying the -q option at the Windows
command prompt — i.e. uninstall -q
If you wish to re-install Confluence in 'unattended mode', do not uninstall your previous installation of
Confluence just yet. See Using the Silent Installation Feature for more information.
Installing Confluence on Linux
In this guide we'll run you through installing On this page:
Confluence in a production environment, with an
external database, using the Linux installer. Before you begin
Install Confluence
This is the most straightforward way to get your 1. Download Confluence
production site up and running on a Linux server. 2. Run the installer
Set up Confluence
3. Choose installation type
4. Enter your license
5. Connect to your
database
6. Populate your new site
with content
7. Choose where to
manage users
8. Create your administrator
Other ways to install Confluence: account
9. Start using Confluence
Evaluation - get your free trial up and running Troubleshooting
in no time.
TAR.GZ – install Confluence manually from
an archive file.
Windows – install Confluence on a Windows
server.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 420
Before you install Confluence, there are a few questions you need to answer.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 421
Install Confluence
1. Download Confluence
2. Run the installer – we recommend using sudo to run the installer as this will create a dedicated
account to run Confluence and allow you to run Confluence as a service.
$ sudo ./atlassian-confluence-X.X.X-x64.bin
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 422
You can also choose to run the installer as with root user privileges.
3. Follow the prompts to install Confluence. You'll be asked for the following info:
Set up Confluence
Follow the prompts to log in to my.atlassian.com to retrieve your license, or enter a license key.
1. If you've not already done so, it's time to create your database. See the 'Before you begin' section of
this page for details and connection options.
2. Choose My own database then select your particular database from the Database type dropdown
menu.
3. For MySQL and Oracle, follow the prompts to download and install the required driver.
4. Enter your database details. Use test connection to check your database is set up correctly.
Advanced setup options...
If you want to specify particular parameters, you can choose to connect By connection string.
You'll be prompted to enter:
Database URL – the JDBC URL for your database. If you're not sure, check the
documentation for your database.
Username and Password – A valid username and password that Confluence can use to
access your database.
Choose whether you'd like Confluence to populate your site with content:
Demonstration space...
This option will create a space that you and your users can use to get to know Confluence. You can
delete this space at any time.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 423
Choose to manage Confluence's users and groups inside Confluence or in a Jira application, such as Jira
Software or Jira Service Desk:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 424
That's it! Your Confluence site is accessible from a URL like this:
http://<computer_name_or_IP_address>:<port>
If you plan to run Confluence behind a reverse proxy, check out Proxy and SSL considerations before you go
any further.
Here's a few things that will help you get your team up and running:
Set the server base URL – this is the URL people will use to access Confluence.
Set up a mail server – this allows Confluence to send people notification about content.
Add and invite users – get your team on board!
Start and stop Confluence – find out how to start and stop Confluence.
Troubleshooting
Running into problems installing Confluence?
If the installer fails with a FontConfiguration error, you'll need to install a font package. See Conflue
nce Server 6.13 or later fails with FontConfiguration error when installing on Linux operating
systems for info on how to do this.
Some anti-virus or other Internet security tools may interfere with the Confluence installation
process and prevent the process from completing successfully. If you experience or anticipate
experiencing such an issue with your anti-virus/Internet security tool, disable this tool first before
proceeding with the Confluence installation.
The Linux OOM Killer can sometimes kill Confluence processes when memory on the server
becomes too low. See How to Configure the Linux Out-of-Memory Killer.
Collaborative editing errors? See Troubleshooting Collaborative Editing.
Head to Installation Troubleshooting in our Knowledge Base for more help.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 425
Before you install Confluence, there are a few questions you need to answer.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 426
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 427
$ java -version
$ echo $JAVA_HOME
If you see a path to your Java installation directory, the JAVA_Home environment
variable has been set correctly. If a path is not returned you'll need to set your JAVA
_HOME environment variable manually before installing Confluence.
See Creating a Dedicated User Account on the Operating System to Run Confluence
for more information.
Install Confluence
1. Download Confluence
1. Create your installation directory – this is where Confluence will be installed. Avoid using spaces or
special characters in the path. We'll refer to this directory as your <installation-directory>.
$ mkdir confluence
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
2.
Confluence 6.15 Documentation 428
Replace x.x.x with your Confluence version and <installation-directory> with the full
path to the directory you created in the last step.
3. Give your dedicated Confluence user read, write and execute permission to your <installation-d
irectory>.
1. Create your home directory – this is where Confluence application data like logs, search indexes and
files will be stored. This should be separate to your installation directory, with no spaces or special
characters in the path. We'll refer to this directory as your <home-directory>.
$ mkdir confluence-home
2. Give your dedicated Confluence user read, write and execute permissions to the <home-directory
>.
3. Edit <installation-directory>\confluence\WEB-INF\classes\confluence-init.pro
perties.
4. At the bottom of the file, enter the absolute path to your <home-directory>. This tells Confluence
where to find your <home-directory> when it starts up.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
a.
Confluence 6.15 Documentation 429
# confluence.home=c:/confluence/data
b. Remove the # and the space at the beginning of this line (so Confluence doesn't read the
line as a comment) and add the absolute path to your home directory (not a symlink). For
example:
confluence.home=/var/confluence-home
By default Confluence listens on port 8090. If you have another application running on your server that uses
the same ports, you'll need to tell Confluence to use a different port.
In the example below we've changed the Server port to 5000 and the Connector port to 5050.
Linux won't allow you to bind to ports less than 1024. If you want to run Confluence on port 80, for
example, you could use a reverse proxy to redirect traffic from port 80. See Using Apache with
mod_proxy.
5. Start Confluence
$ su -u <user>
$ ./start-confluence.sh
$ sudo su <user>
$ ./start-confluence.sh
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 430
2.
updated the Connector port).
Set up Confluence
Follow the prompts to log in to my.atlassian.com to retrieve your license, or enter a license key.
1. If you've not already done so, it's time to create your database. See the 'Before you begin' section of
this page for details and connection options.
2. Choose My own database then select your particular database from the Database type dropdown
menu.
3. For MySQL and Oracle, follow the prompts to download and install the required driver.
4. Enter your database details. Use test connection to check your database is set up correctly.
Advanced setup options...
If you want to specify particular parameters, you can choose to connect By connection string.
You'll be prompted to enter:
Database URL – the JDBC URL for your database. If you're not sure, check the
documentation for your database.
Username and Password – A valid username and password that Confluence can use to
access your database.
Choose whether you'd like Confluence to populate your site with content:
Demonstration space...
This option will create a space that you and your users can use to get to know Confluence. You can
delete this space at any time.
Import data from an existing site...
Use this option if you have a full site export of an existing Confluence site. This is useful when you’re
migrating to another database or setting up a test site.
Good to know:
You can only import sites from the same or earlier Confluence version.
The system administrator account and all other user data and content will be imported from your
previous installation.
In the setup wizard:
Upload a backup file – use this option if your site export file is small (25mb or less).
Restore a backup file from the file system – use this option if your backup file is large. Drop the
file into your <confluence-home>/restore directory then follow the prompts to restore the
backup.
Build Index – we’ll need to build an index before your imported content is searchable. This can
take a long time for large sites, so deselect this option if you would rather build the index
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 431
Choose to manage Confluence's users and groups inside Confluence or in a Jira application, such as Jira
Software or Jira Service Desk:
That's it! Your Confluence site is accessible from a URL like this:
http://<computer_name_or_IP_address>:<port>
If you plan to run Confluence behind a reverse proxy, check out Proxy and SSL considerations before you go
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 432
any further.
Here's a few things that will help you get your team up and running:
Set the server base URL – this is the URL people will use to access Confluence.
Set up a mail server – this allows Confluence to send people notification about content.
Add and invite users – get your team on board!
Start and stop Confluence – find out how to start and stop Confluence.
Troubleshooting
Running into problems installing Confluence?
Check your JAVA_HOME is set correctly.
If you see an error, see Confluence does not start due to Spring Application context has not been
set for troubleshooting options.
Use a GNU version of the unzip utility. There are known issues extracting the tar.gz file on
Solaris and AIX. See 'extractBundledPlugins Couldn't find atlassian-bundled-plugins.zip on
classpath' Due to Solaris TAR Utility.
Collaborative editing errors? See Troubleshooting Collaborative Editing.
Head to Installation Troubleshooting in our Knowledge Base for more help.
This page describes the procedure for uninstalling Confluence, which had been installed using the Linux Installer
.
To uninstall Confluence from Linux:
1. Open a Linux console.
2. Change directory (cd) to your Confluence installation directory.
3. Execute the command uninstall. This command must be executed as the same user account that was
used to install Confluence with the Linux Installer.
4. Follow the prompts to uninstall Confluence from your computer.
Please note:
The uninstaller will not delete the Confluence Home Directory.
All log files that were generated while Confluence was running will not be deleted.
All files within the Confluence Installation Directory will be deleted (with the exception of the Tomcat log f
older located in the Confluence Installation Directory).
The uninstaller can be made to operate in unattended mode by specifying the -q option — i.e. uninstal
l -q
If you wish to re-install Confluence in 'unattended mode', do not uninstall your previous installation of
Confluence just yet. See Using the Silent Installation Feature for more information.
Unattended installation
If you've previously installed Confluence using the
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 433
Good to know
The response.varfile file contains the options specified during the installation wizard steps of
your previous Confluence installation. Don't uninstall your previous Confluence installation until after
you've copied this file to your new install location.
If you decide to modify the response.varfile file, make sure all directory paths specified are
absolute, for example, sys.installationDir=C\:\\Program
Files\\Atlassian\\Confluence
(Windows) or sys.installationDir=/opt/atlassian/confluence (Linux).
Unattended installations will fail the file contains relative directory paths.
3. In command prompt or terminal change directory (cd) to where you downloaded the installer.
Windows
> atlassian-confluence-X.X.X-x64.exe -q -varfile
response.varfile
Linux
$ atlassian-confluence-X.X.X-x64.bin -q -varfile
response.varfile
-q instructs the installer to run in unattended mode (quietly). -varfile specifies the location and
name of the configuration file containing the options used by the installer.
Once Confluence is installed, you will still need to head to http://localhost:<port> to finish setting up
Confluence.
See the Set up Confluence section on Installing Confluence on Windows or Installing Confluence on Linux f
or more info.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 434
Problem
This page tells you what to do if you get errors like the following when starting Confluence, when you can't
access Confluence on port 8090.
If you see this error:
This means you are running other software on Confluence's default port of 8090. This may be another other
process running on the same port. It may also be a previous instance of Confluence that hasn't been shut down
cleanly.
To find out what process is listening on that port, load a command prompt and type: netstat -an
-a : Displays all active TCP connections and the TCP and UDP ports on
which the computer is listening.
-n : Displays active TCP connections, however, addresses and port
numbers are expressed numerically and no attempt is made to determine
names.
There is also Process Explorer tool available to determine what is binding port 8090.
To change the ports for Confluence, open the file conf/server.xml under your Confluence Installation
directory. The first four lines of the file look like this:
Default conf/server.xml
<Server port="8000" shutdown="SHUTDOWN" debug="0">
<Service name="Tomcat-Standalone">
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8090" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443" acceptCount="10"
debug="0" connectionTimeout="20000" useURIValidationHack="false"/>
...
You need to modify both the server port (default is 8000) and the connector port (default is 8090) to ports that
are free on your machine. The server port is required by Tomcat but is not user facing in any way. The connector
port is what your users will use to access Confluence, eg in the snippet above, the URL would be http://exam
ple.com:8090.
Hint: You can use netstat to identify free ports on your machine. See more information on using netstat on
Windows or on Linux.
For example, here are the first four lines of a modified server.xml file, using ports '8020' and '8099':
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 435
Final Configuration
If this is the URL your users will use to access Confluence, update your Base URL to point to the new
URL.
You should also ensure at this point that if you are using a firewall, it is configured to allow http/https
traffic over the port you have chosen.
NOTES
[1] For more information on netstat, see using netstat on Windows, or netstat man page (Linux).
[2] The Jira distribution runs on port 8080 by default. If you're looking to change the port of your Jira application's
distribution, see Changing JIRA application TCP ports.
[3] You will need to restart Confluence after editing server.xml for the changes to take effect.
Start and Stop Confluence
How you start and stop Confluence depends on whether you are running Confluence as a Service.
To check whether Confluence is already running you can go to http://<base-url>/status.
Windows
When installed as a service...
If you installed Confluence as a service, you can Start Confluence Server and Stop Confluence Server fro
m the Windows Start menu.
You can't start or stop Confluence manually using the start-confluence.bat and stop-confluence.
bat file.
We recommend running Confluence with a dedicated user account. To do this, use use the runas command
to execute start-confluence.bat.
Where <DOMAIN> is your Windows domain or computer name and <confluence> is the name of your
dedicated user.
If you installed Confluence using the installer, and don't have Java installed, use the Start and Stop
Confluence options in the Start menu, or:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 436
> cd <installation-directory>/bin
> start-confluence.bat /disablealladdons
> cd <installation-directory>/bin
> start-confluence.bat /disableaddon=com.atlassian.test.plugin
where com.atlassian.test.plugin is the app key. To disable multiple apps, use a colon separated list.
Regex/wildcards are not permitted, the full key of the plugin must be provided.
These parameters are applied at startup only, they do not persist. If you want to permanently disable an app,
go to
Linux
When installed as a service...
If you installed Confluence as a service, use one of the following commands to start, stop or restart Conflue
nce.
You can't start or stop Confluence manually using the start-confluence.sh and stop-confluence.s
h files.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 437
$ su -u <user>
$ ./start-confluence.sh
$ sudo su <user>
$ ./start-confluence.sh
$ cd <installation-directory>/bin
$ ./start-confluence.sh --disable-all-addons
$ cd <installation-directory>/bin
$ ./start-confluence.sh --disable-addons=com.atlassian.test.plugin
To disable multiple apps, use a colon separated list, for example, com.atlassian.test.plugin:com.at
lassian.another.plugin. Regex/wildcards are not permitted, the full key of the plugin must be provided.
These parameters are applied at startup only, they do not persist. If you want to permanently disable an app,
go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 438
On this page:
Before you begin
Clustering requirements
Supported platforms
Terminology
Install and set up Confluence
1. Install Confluence on the
first node
Add more Confluence nodes
2. Copy Confluence to
Other ways to install Confluence Data Center: second node
AWS Quick Start - hassle free deployment in 3. Configure load balancer
AWS 4. Start Confluence one
Move to Data Center - for existing Confluence node at a time
Server sites 5. Test your Confluence
cluster
6. Set up your Synchrony
cluster (optional)
Interested in learning more about Data Security
Center? Find out more about the benefits Troubleshooting
of Confluence Data Center. Upgrading a cluster
Clustering requirements
Supported platforms
See our Supported Platforms page for information on the database, Java, and operating systems you'll be
able to use. These requirements are the same for Server and Data Center deployments. See Confluence
Data Center Technical Overview for important hardware and infrastructure considerations.
We also have specific guides and deployment templates to help you running Confluence Data Center in AWS
or Azure. Check them out to find out what's required.
Terminology
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 439
Field Description
Region This is the region your cluster nodes (EC2 instances) will be running
in.
Host Optional. This is the AWS endpoint for Confluence to use (the
header address where the EC2 API can be found, for example 'ec2.amazona
ws.com'). Leave blank to use the default endpoint.
Tag key Optional. Use to narrow the members of your cluster to only
and Tag resources with particular tags (specified in the EC2 console).
value
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 440
4.
If the file path of the local home directory is not the same on nodes 1 and 2 you'll need to update the <
installation
directory>/confluence/WEB-INF/classes/confluence-init.properties file on node 2
to point to the correct location.
Copying the local home directory ensures the Confluence search index, the database and cluster
configuration, and any other settings are copied to node 2.
Configure your load balancer for Confluence. You can use the load balancer of your choice, but it needs to
support session affinity and WebSockets.
You can verify that your load balancer is sending requests correctly to your existing Confluence server by
accessing Confluence through the load balancer and creating a page, then checking that this page can be
viewed/edited by another machine through the load balancer.
You must only start Confluence one node at a time. The first node must be up and available before starting
the next one.
1. Start Confluence on node 1
2. Wait for Confluence to become available on node 1
3. Start Confluence on node 2
4. Wait for Confluence to become available on node 2.
The Cluster monitoring console (
> General Configuration > Clustering) shows information about the active cluster.
When the cluster is running properly, this page displays the details of each node, including system usage and
uptime. Use the
Remember, to test creating content you'll need to access Confluence via your load balancer. You can't
create or edit pages when accessing a node directly.
A simple process to ensure your cluster is working correctly is:
1. Access a node via your load balancer, and create a new document on this node
2. Ensure the new document is visible by accessing it directly on a different node
3. Search for the new document on the original node, and ensure it appears
4. Search for the new document on another node, and ensure it appears
If Confluence detects more than one instance accessing the database, but not in a working cluster, it
will shut itself down in a cluster panic. This can be fixed by troubleshooting the network connectivity
of the cluster.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 441
Synchrony is required for collaborative editing. You have two options for running Synchrony with a Data
Center license:
managed by Confluence (recommended)
This is the default setup. Confluence will automatically launch a Synchrony process on the same
node, and manage it for you. No manual steps are required.
Standalone Synchrony cluster (managed by you)
You deploy and manage Synchrony standalone in its own cluster with as many nodes as you need.
Significant setup is required. See Set up a Synchrony cluster for Confluence Data Center for a
step-by-step guide.
Head to Administering Collaborative Editing to find out more about collaborative editing.
Security
Ensure that only permitted cluster nodes are allowed to connect to a Confluence Data Center instance's Haz
elcast port (which defaults to 5801) or Synchrony's Hazelcast port (which defaults to 5701) through the use
of a firewall and or network segregation.
Troubleshooting
If you have problems with the above procedure, please see our Cluster Troubleshooting guide.
If you're testing Confluence Data Center by running the cluster on a single machine, please refer to our
developer instructions on Starting a Confluence cluster on a single machine.
Upgrading a cluster
It's important that upgrades follow the procedure for Upgrading Confluence Data Center.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 442
On this page:
Before you begin
Clustering requirements
Supported platforms
Terminology
Set up Data Center
1. Upgrade Confluence
Server
2. Apply Data Center
license
3. Create a shared home
directory
4. Start Confluence
Add more Confluence nodes
5. Copy Confluence to
second node
6. Configure load balancer
7. Start Confluence one
node at a time
8. Test your Confluence
cluster
9. Set up a Synchrony
cluster (optional)
Security
Troubleshooting
Clustering requirements
Supported platforms
See our Supported Platforms page for information on the database, Java, and operating systems you'll be
able to use. These requirements are the same for Server and Data Center deployments. See Confluence
Data Center Technical Overview for important hardware and infrastructure considerations.
We also have specific guides and deployment templates to help you running Confluence Data Center in AWS
or Azure. Check them out to find out what's required.
Terminology
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 443
single shared home directory (a total of 5 directories in a two node cluster) for Confluence plus directories for
Synchrony.
If you plan to upgrade Confluence as part of your migration to Data Center, you should upgrade your existing
Confluence Server site as the first step.
1. Go to
1. Create a directory that's accessible to all cluster nodes via the same path. The directory should be
empty. This will be your shared home directory.
2. In your existing Confluence home directory, move the contents of <confluence
home>/shared-home to the new shared home directory you just created.
4. Start Confluence
The setup wizard will prompt you to complete the migration, by entering:
A name for your cluster
The path to the shared home directory you created earlier
The network interface Confluence will use to communicate between nodes
A multicast address (automatically generated or enter your own) or the IP addresses of each cluster
node
How you want Confluence to discover cluster nodes:
Multicast - enter your own multicast address or automatically generate one.
TCP/IP - enter the IP address of each cluster node
AWS - enter your IAM Role or secret key, and region.
Field Description
IAM This is your authentication method. You can choose to authenticate by IAM
Role or Role or Secret Key.
Secret
Key
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 444
Region This is the region your cluster nodes (EC2 instances) will be running in.
Host Optional. This is the AWS endpoint for Confluence to use (the address
header where the EC2 API can be found, for example 'ec2.amazonaws.com').
Leave blank to use the default endpoint.
Security Optional. Use to narrow the members of your cluster to only resources in a
group particular security group (specified in the EC2 console).
name
Tag key Optional. Use to narrow the members of your cluster to only resources with
and Tag particular tags (specified in the EC2 console).
value
Configure your load balancer for Confluence. You can use the load balancer of your choice, but it needs to
support session affinity and WebSockets.
You can verify that your load balancer is sending requests correctly to your existing Confluence server by
accessing Confluence through the load balancer and creating a page, then checking that this page can be
viewed/edited by another machine through the load balancer.
You must only start Confluence one node at a time. The first node must be up and available before starting
the next one.
1. Start Confluence on node 1
2. Wait for Confluence to become available on node 1
3. Start Confluence on node 2
4. Wait for Confluence to become available on node 2.
The Cluster monitoring console (
> General Configuration > Clustering) shows information about the active cluster.
When the cluster is running properly, this page displays the details of each node, including system usage and
uptime. Use the
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 445
Remember, to test creating content you'll need to access Confluence via your load balancer. You can't
create or edit pages when accessing a node directly.
A simple process to ensure your cluster is working correctly is:
1. Access a node via your load balancer, and create a new document on this node
2. Ensure the new document is visible by accessing it directly on a different node
3. Search for the new document on the original node, and ensure it appears
4. Search for the new document on another node, and ensure it appears
If Confluence detects more than one instance accessing the database, but not in a working cluster, it
will shut itself down in a cluster panic. This can be fixed by troubleshooting the network connectivity
of the cluster.
Synchrony is required for collaborative editing. You have two options for running Synchrony with a Data
Center license:
managed by Confluence (recommended)
This is the default setup. Confluence will automatically launch a Synchrony process on the same
node, and manage it for you. No manual steps are required.
Standalone Synchrony cluster (managed by you)
You deploy and manage Synchrony standalone in its own cluster with as many nodes as you need.
Significant setup is required. See Set up a Synchrony cluster for Confluence Data Center for a
step-by-step guide.
Head to Administering Collaborative Editing to find out more about collaborative editing.
Security
Ensure that only permitted cluster nodes are allowed to connect to a Confluence Data Center instance's Haz
elcast port (which defaults to 5801) or Synchrony's Hazelcast port (which defaults to 5701) through the use
of a firewall and / or network segregation.
Troubleshooting
If you have problems with the above procedure, please see our Cluster Troubleshooting guide.
If you're testing Confluence Data Center by running the cluster on a single machine, please refer to our
developer instructions on Starting a Confluence cluster on a single machine.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 446
1. Back up
We strongly recommend that you backup your Confluence home and install directories and your database
before proceeding.
More information on specific files and directories to backup can be found in Upgrading Confluence.
You must stop all the nodes in the cluster before upgrading.
We recommend configuring your load balancer to redirect traffic away from Confluence until the upgrade is
complete on all nodes.
If you've chosen to let Confluence manage Synchrony for you (recommended), you don't need to do
anything. Synchrony was automatically upgraded with Confluence.
If you're running your own Synchrony cluster, you should:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 447
1. Grab the new synchrony-standalone.jar from the <local-home> directory on your upgraded
Confluence node.
2. Copy the new synchrony-standalone.jar to each of your Synchrony nodes, and start Synchrony
as normal.
The next step is to replicate your upgraded Confluence directories to other nodes in the cluster.
1. Stop Confluence on the first node.
2. Copy the installation directory and local home directory from the first node to the next node.
If the path to the local home directory is different on this node, edit the confluence-init.propert
ies to point to the correct location.
3. Start Confluence, and and confirm that you can log in and view pages on this node.
4. Stop Confluence on this node before continuing with the next node.
Repeat this process for each remaining node.
Once all nodes have been upgraded you can start Confluence Data Center on each node, one at a time (sta
rting up multiple nodes simultaneously can lead to serious failures).
The Cluster monitoring console (
> General Configuration > Clustering) includes information about the active cluster nodes. When the
cluster is running properly, you should be able to see the details of each node.
Your Data Center license is based on the number of users in your cluster, rather than the number of nodes. This
means you can add and remove nodes from your Data Center cluster at any time.
If you deployed Confluence Data Center on AWS using the Quick Start, your Confluence and Synchrony nodes
will be in auto-scaling groups. You will add and remove nodes in the AWS console either by changing the
minimum and maximum size of each group or using a scaling plan.
Adding a node
To add a node:
1. Copy the installation directory and local home directory from the stopped node to your new node.
2. Start Confluence on your new node.
During the startup process Confluence will recover indexes from a running node to bring the new node up
to date.
3. Go to
> General Configuration > Clustering and check that the new node is visible.
You should only start one node at a time. Starting up multiple nodes simultaneously can cause serious failures.
Removing a node
To remove a node, stop Confluence on that node. You can then remove the installation and local home
directory as required.
To see the number of nodes remaining go to
Confluence generates an identifier for each node in your cluster. You can use the confluence.cluster.nod
e.name system property to set the node identifier on each node so that it's easier for your users and
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 448
administrators to read.
See Configuring System Properties for more information on how to set the system property.
Change Node Discovery from Multicast to TCP/IP
If you're setting up Confluence Data Center for the first time, it'll step you through the process of choosing your
discovery mode and adding cluster nodes. If you decide to change node discovery for the cluster, you'll need to
edit the confluence.cfg.xml file in the local home directory of each cluster node.
Before you make any changes, shut down all nodes in your cluster
Make sure the discovery configuration is exactly the same for each node (make the same
changes to the confluence.cfg.xml file in each local home directory)
Always back up your site before making changes to these files.
The changes you need to make may differ slightly, depending on whether you've upgraded from an older version
of Confluence Data Center or if you've started with version 5.9. We've detailed both methods, below.
If both lines exist in the file, change them to the lines below; where the confluence.cluster.address prope
rty exists, but there's no reference to the confluence.cluster.join.type property, update the first line and
add the second line as shown below.
Enter the address of each node, and separate each address with a comma. Make sure you remove the square
brackets from around the IP addresses.
You can now restart your cluster nodes.
To switch from TCP/IP to multicast, just perform the reverse of the changes outlined above.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 449
The simplest way to deploy your entire Data Center cluster in AWS is by using the Quick Start. The Quick
Start launches, configures, and runs the AWS compute, network, storage, and other services required to
deploy a specific workload on AWS, using AWS best practices for security and availability.
The Quick Start provides two deployment options, each with its own template. The first option deploys the
Atlassian Standard Infrastructure (ASI) and then provisions Confluence Data Center into this ASI. The
second option only provisions Confluence Data Center on an existing ASI.
Here's an overview of the architecture for the Confluence Data Center Quick Start:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 450
Confluence will use the Java Runtime Engine (JRE) that is bundled with Confluence
(/opt/atlassian/confluence/jre/), and not the JRE that is installed on the EC2 instances
(/usr/lib/jvm/jre/).
The Quick Start uses c3.xlarge instances by default for Confluence and Synchrony nodes. The instance type
is up to you, but it must meet Confluence's system requirements. Smaller instance types (micro, small,
medium) are generally not adequate for running Confluence.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 451
Not all regions offer the services required to run Confluence. You'll need to choose a region that supports
Amazon Elastic File System (EFS). You can currently deploy Confluence using the Quick Start in the
following regions:
Asia Pacific (Sydney)
EU (Frankfurt)
EU (Ireland)
US East (North Virginia)
US West (Oregon)
The services offered in each region change from time to time, so check the Regional Product Services table
in the AWS documentation to see if your preferred region is supported yet.
1 At the time of writing, these regions did not yet support EFS, so also can't be used to run Confluence.
If you want to deploy an internal facing Confluence site, using your own DNS server, you can use Amazon
Route 53 to create a link between the public DNS and internal DNS.
1. In Route 53, create a Private hosted zone. For the VPC, you can use the existing Atlassian Services
VPC. The domain name is your preferred domain.
2. If you've already set up Confluence, go to Services > CloudFormation in the AWS console, select
the stack, and click Update Stack. (If you're setting up Confluence for the first time, follow the Quick
Start template as below).
3. Under Other Parameters, enter the name of your hosted zone in the Route 53 Hosted Zone field.
4. Enter your preferred sub-domain or leave the Sub-domain for Hosted Zone field blank and we'll use
your stack name as the sub-domain.
5. Follow the prompts to update the stack. We'll then generate the load balancer and EFS url, and create
a record in Route 53 for each.
6. In Confluence go to
> General Configuration and update the Confluence base URL to your Route 53 domain.
7. Set up DNS resolution between your on-premises network and the VPC with the private hosted zone.
You can do this with:
a. an Active Directory (either Amazon Directory Service or Microsoft Active Directory)
b. a DNS forwarder on EC2 using bind9 or Unbound.
8. Finally, terminate and re-provision each Confluence and Synchrony node to pick up the changes.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 452
Unless you specify the same number for Minimum and Maximum number of cluster nodes, the Auto
Scaling Group will launch new cluster nodes and terminate existing ones automatically to achieve the optimal
desired number of nodes between these two limits. By default, this target number is determined by the
following CloudWatch metrics:
If the average CPU utilization across the Auto Scaling Group exceeds 60% for 5 minutes, the target
number of nodes increases by one (up to the Maximum).
If the average CPU utilization across the Auto Scaling Group is lower than 40% for 30 minutes, the
target number of nodes decreases by one (down to the Minimum).
A default "cooldown" period of 10 minutes between scaling events is also applied. See Scaling Based on
Metrics for more information.
Note: Adding new cluster nodes, especially automatically in response to load spikes, is a great
way to increase capacity of a cluster temporarily. Beyond a certain point, adding large numbers of
cluster nodes will bring diminishing returns. In general, increasing the size of each node (i.e.,
"vertical" scaling) will be able to handle a greater sustained capacity than increasing the number
of nodes (i.e., "horizontal" scaling), especially if the nodes themselves are small.
See the AWS documentation for more information on auto scaling groups.
It is possible to SSH to your cluster nodes and file server to perform configuration or maintenance tasks.
Note that you must keep your SSH private key file (the PEM file you downloaded from Amazon and specified
as the Key Name parameter) in a safe place. This is the key to all the nodes in your instance, and if you lose
it you may find yourself locked out.
Note: the ConfluenceDataCenter.template deploys all EC2 instances in the Subnets specified
by the Internal subnets parameter. If you have specified Internal subnets that are completely
unreachable from outside, then you may need to launch an EC2 instance with SSH running and
accessible in one of the the External subnets, and use this as a "jump box" to SSH to any
instances in your Internal subnets. That is, you SSH first to your "jump box", and from there to
any instance deployed in the Internal subnets.
When connecting to your instance over SSH, use ec2-user as the user name, for example:
The ec2-user has sudo access. SSH access is by root is not allowed.
Upgrading
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 453
starting up.
You must make sure all existing nodes are terminated before launching new nodes on the new version.
Backing up
We recommend you use the AWS native backup facility, which utilizes snap-shots to back up your
Confluence Data Center.
Confluence Data Center is an excellent fit for the Microsoft Azure environment. We provide a reference template
that lets you deploy Confluence Data Center in Microsoft Azure, and you can then configure it depending on
your organization's Azure best practices. It's the fastest way to get everything you need to run Confluence Data
Center up and running in Azure.
We strongly recommend you set up user management, central logging storage, a backup strategy, and
monitoring, just as you would for a Confluence Data Center installation running on your own hardware.
How it works
Here's an architectural overview of what you'll get when deploying Confluence Data Center using the template:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 454
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 455
Limitations
There are some limitations you should be aware of before deciding to deploy to Azure:
Autoscaling is not yet available, due to a problem with Hazelcast, which Confluence uses to discover
nodes.
You can't use the deployment template to upgrade an existing Confluence deployment, or to provision
new nodes running a different version to the rest of your cluster.
If a node is deleted manually, it can't be redeployed without first removing the cluster. The existing
database, and the existing shared home directory won't be removed when redeploying.
This method uses the Azure Marketplace to deploy Confluence Data Center using our deployment templates as
a reference.
To deploy Confluence Data Center to Azure using our Marketplace app:
1. Log in to Azure Portal
2. Choose Create a resource to start a new deployment
3. Search for Atlassian then select Confluence Data Center from the list of Marketplace apps
4. Choose Create to start configuring the deployment
5. Follow the prompts in the wizard to configure your deployment. Refer to the parameters table below for
more information.
6. Confirm all the details are correct then click Create to purchase the subscription. Deployment will take
about 30 minutes.
7. Once deployment is complete, go to the Confluence URL (APPENDPOINT) listed in the deployment
outputs to complete onboarding and start using Confluence.
Parameters
Parameters Description
Resource group If you have an existing resource group, you can use
it, or create a new one.
Confluence admin credentials Provide a name and password for the initial
Confluence administrator on your instance.
Confluence Cluster Select the expected size of your site - trial, small,
medium, large, extra large. This will determine the
number of Confluence application nodes, and the
size of VMs to be provisioned. Choose Change Size
to override the defaults.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 456
This method uses the Azure command line interface to deploy Confluence Data Center using our deployment
templates as a reference. You'll need to install the Azure CLI to do this.
Using the deployment templates directly allows for greater configuration granularity. All hardware choices such
as the number of cluster nodes, size, disk size, and OS type are configurable as parameters. Check out the Dev
eloping guide in the template repository to learn more about developing the templates.
To deploy Confluence Data Center to Azure using the command line interface:
1. Download the azuredeploy.json template file and azuredeploy.parameters.json parameters
file from the Confluence directory on https://bitbucket.org/atlassian/atlassian-azure-deployment.
2. Edit the azuredeploy.parameters.json parameters file, and insert values for the following
required parameters:
Cluster size
SSH password (for the cluster nodes)
Database password
Confluence administrator account password
See the table below for more information on each of these required values.
The template applies sensible defaults for a number of other parameters, including the size of your VMs
and database instance. You can choose to override these defaults if you want to specify particular
values.
3. Log in to Azure via the command line interface.
4. Create a resource group. This will be the container for the Confluence resources you deploy.
5. Create a new deployment, and specify the Confluence Data Center template file and parameters file.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence
5. 6.15 Documentation 457
6. Log in to the Azure Portal to see the deployment outputs. The Application URL is the URL for your new
Confluence site.
7. Go to the Application URL in your browser to complete onboarding and start using Confluence.
Required parameters
The deployment template requires a number of values to be provided in order to deploy your Confluence Data
Center instance.
Parameter Description
Optional parameters
The following parameters are optional. If you don't provide a value in the parameter file, we'll use the default
values listed below.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 458
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 459
The confClusterSize parameter allows you to select the size of your deployment, and then use our
recommendations for all resources to be created.
If you choose not to set the confClusterSize parameter, you can choose to define your own values for things
like dbTier, dbTierSize, clusterVmSize, LinuxOsType, and appGtwyTier.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 460
These parameters are all listed in the azuredeploy.json template file, with a description and allowed values.
You should also check out the Developing guide in the template repository to learn more about developing your
own template.
Monitoring
As a number of the resources we provision are managed by Azure, a number of options are available for
monitoring. For example:
A number of default alerts are available, such as cluster nodes going offline, CPU, or Db DTU exceeding
80%. These alerts will be emailed to the Confluence Administrator email address specified in the
deployment.
Application Insights can be used to see the overall system health, and dig into particular areas of interest
Application Insights in the Azure documentation.
Azure SQL Analytics is available for more granular monitoring of your SQL Server database. Monitor
Azure SQL Database using Azure SQL Analytics in the Microsoft Azure documentation.
Note that some of these resources are still in Preview, so may not be available in your location yet.
Administering Confluence Data Center on Azure
Once you've deployed Confluence Data Center to Azure using the deployment template, administering the
application is similar to managing an application on your own hardware, with the exception that you'll need to go
via the bastion host (jumpbox) to access your nodes.
To access your jumpbox and nodes you'll need:
the SSH credentials you provided during setup,
the Confluence node credentials you provided during setup
the public DNS name or IP address of your jumpbox (you can obtain this through the Azure portal via Me
nu > Resource groups > <your resource group> > confluencenat), and
the node IP addresses, listed against the confluencecluster (instance n) row in Connected
devices. (You can obtain this through the Azure portal via Menu > Resource groups > <your resource
group> > confluencevnet).
You can SSH into your Confluence cluster nodes, Synchrony nodes and shared home directory to perform
configuration or maintenance tasks. Note that you must keep your SSH public key file in a safe place. This is the
key to your jumpbox, and therefore all the nodes in your instance.
Access the jumpbox via a terminal or command line using:
$ ssh JUMPBOX_USERNAME@DNS_NAME_OR_IP_ADDRESS
You can find the SSH URL in the outputs section of your deployment.
Once you've accessed the jumpbox, we can jump to any of the nodes in the cluster, using:
$ ssh NODE_USERNAME@NODE_IP_ADDRESS
You'll then be asked for your node password - after providing this, you should be connected to the node.
For your Azure deployment, you may need to make changes to some configuration files, just as you would for a
deployment on your own hardware:
your server.xml lives in /opt/atlassian/confluence/conf
your setenv.sh lives in /opt/atlassian/confluence/bin
your local home confluence.cfg.xml lives in /var/atlassian/application-data/confluenc
e
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 461
These files are only accessible from the existing nodes. The shared home is mounted (think of it as a network
hard disk) on each node under /media/atl/confluence/shared. So from an existing node (when you're
logged in through SSH), you can go to /media/atl/confluence/shared.
If modifications to these files are made manually, new nodes will not pick up those modifications. You can either
repeat the modifications on each node, or change the templates in the /media/atl/confluence/shared dir
ectory from which those files are derived. The mappings are:
the server.xml file is derived from /media/atl/confluence/shared/server.xml
the setenv.sh file is derived from /media/atl/confluence/shared/setenv.sh
the local home confluence.cfg.xml is derived from /media/atl/confluence/shared/home-co
nfluence.cfg.xml
the shared home confluence.cfg.xml is derived from /media/atl/confluence/shared/shared
-confluence.cfg.xml
These template files contain placeholders for values that are injected via the deployment script. Removing or
changing them may cause breakages with the deployment. In most cases, these files should not be modified, as
a lot of these settings are produced from the Azure Resource Manager templates automatically.
Backing up
We recommend you use the Azure native backup facility, which utilizes snapshots to back up
your Confluence Data Center instance.
To migrate content from an existing site into your Confluence Data Center site on Azure you will need to take a
full site export, and then import it into your new Confluence site.
See Manually Backing Up the Site for information on how to export your site, and Restoring a Site for information
on how to import it into your new site on Azure.
Make sure you have the Administrator account credentials for your existing site, as the administrator account
you created during Azure deployment process will be overwritten by the export, and you may be locked out of
your site.
The process of upgrading Confluence is the same as if you were running the cluster on your own hardware. You
will stop Confluence on all nodes, upgrade one node, stop that node then copy the installation directory across
to each remaining node in the cluster, before restarting each node, one at a time.
See Upgrading Confluence Data Center for more details.
You can't use the confluenceVersion parameter in the deployment template to upgrade an existing
Confluence deployment, or to provision new nodes running a different version to the rest of your cluster.
You also can't do a rolling upgrade. You will need to bring all nodes down before upgrading.
If you need to upgrade the operating system running on your Confluence nodes, you will need to SSH into each
node, perform a sudo apt dist-upgrade (Ubuntu) and reboot each node.
This page outlines how to switch from Confluence Data Center (clustered) to Confluence Server (non-clustered).
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 462
In these instructions we'll assume that you'll use one of your existing cluster nodes as your new, non-clustered
installation.
You'll need a Confluence Server license to switch back to Server.
1. Go to
Stop any cluster nodes that are still running before proceeding. We also recommend configuring your load
balancer to redirect traffic away from Confluence.
1. Create a directory called /shared-home in the <local home> directory on one node (if you removed
this directory when installing Data Center)
2. Move the entire config directory from your <shared home> directory to the <local
home>/shared-home directory
3. Move the remaining contents of your <shared home> directory to the root of your <local home> direct
ory
Your cluster's shared home directory should now be empty.
4. Start Confluence
The setup wizard will guide you through the migration process.
> General Configuration. The 'Cluster Configuration' page should not appear. Instead you'll see
information about Confluence Data Center.
Installing Java
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 463
The JDK (Java Development Kit) needs to be installed on the same server that will have Confluence installed.
We support running Confluence with the JDK or JRE (Java Runtime Environment). These instructions will just
cover installing the JDK.
Installing the JDK on Windows...
Before you start, go to Control Panel > Programs and Features to check whether a JDK is already
installed.
To install the JDK on Windows:
1. Download the appropriate AdoptOpenJDK or Oracle JDK version.
Check the Supported Platforms page to find out which JDK / JRE versions and vendors are supported
for your version of Confluence. Be sure to download the right one for your operating system.
2. Run the Java installer. Make a note of the installation directory, as you'll need this later.
3. Once the Java installation is complete, check that the JAVA_HOME environment variable has been set
correctly.
Open a command prompt and type echo %JAVA_HOME% and hit Enter.
If you see a path to your Java installation directory, the JAVA_Home environment variable has
been set correctly.
If nothing is displayed, or only %JAVA_HOME% is returned, you'll need to set the JAVA_HOME env
ironment variable manually. See Setting the JAVA_HOME Variable in Windows for a step by
step guide.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 464
1.
If you didn't change the path during installation, it'll be something like C:\Program
Files\Java\jdk1.8.0_65
You can also type where java at the command prompt.
If the path contains spaces, use the shortened path name. For example, C:\Progra~1\Jav
a\jdk1.8.0_65
If you would prefer to set the JAVA_HOME (or JRE_HOME) variable via the command line:
1. Open Command Prompt (make sure you Run as administrator so you're able to add a system
environment variable).
2. Set the value of the environment variable to your JDK (or JRE) installation path as follows:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
3.
Confluence 6.15 Documentation 465
echo %JAVA_HOME%
You should see the path to your JDK (or JRE) installation.
When you install Confluence Server using the installer, it will run Confluence with the Java Runtime Engine
(JRE) that was bundled with that Confluence release.
If you want to use a different Java vendor, version, or you want to install the full JDK, you can tell Confluence to
use the version of Java installed on your server.
Not all vendors and versions are supported, and some versions have known issues, so always check the Suppor
ted Platforms page, as using an unsupported version can cause problems in Confluence.
On this page:
Check your current setup
Installer method - Windows
Installer method - Linux
Environment variable method - Windows and Linux
How Confluence determines which Java to use
Which Java vendor can I use with my Confluence version?
Known issues
Upgrading Java
How you change Confluence's Java path depends on whether you originally installed Confluence using the
installer, or manually from a .zip or .tar.gz file.
The easiest way to check how Confluence is currently finding your Java is to:
1. Go to <install-directory>/bin/setjre.sh file (Linux) or setjre.bat (Windows) file.
2. Scroll to the bottom of the file and look for a line similar to the following. The file path may be different in
your file.
In Linux:
In Windows:
If a line similar to the one above is present, then JRE_HOME is set in this file by the installer, and you should
use the installer method for Windows or Linux below.
If this line isn't present, JRE_HOME is not set in this file (because Confluence was installed manually), and you
should use the environment variable method below.
The way you do this depends on whether you run Confluence manually using the start-confluence.bat file
, or as a Windows service.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 466
In these examples we're going to point Confluence to the AdoptOpenJDK JRE, which is installed on our
Windows server at C:\Program Files\AdoptOpenJDK\jdk8u192-b12\jre. The location of your JRE will be
different, but the steps are the same for any supported Java vendor and version.
To change the Java that Confluence uses if you start Confluence manually in Windows:
1. In Command Prompt, use the following command to check that Java is installed and has been added to
your path correctly.
This will return your Java version. If nothing is returned, or it returns the wrong version, check the
installation instructions for your Java vendor.
2. Stop Confluence.
3. In the Confluence installation directory edit the <install-directory>/bin/setjre.bat file
and change the last line to point to your local Java installation, as in the example below.
SET "JRE_HOME=C:\Progra~1\AdoptOpenJDK\jdk8u192-b12\jre"
If this line isn't present, exit this file and use the environment variable method below.
4. Start Confluence.
5. Go to
> General Configuration > System Information and check that Confluence is using the expected Java
version.
Remember, when you next upgrade Confluence this file will be overwritten, so you will need to re-apply this
change to the new setjre.bat file.
To change the Java that Confluence uses if you run Confluence as a Windows service:
1. Open the Tomcat properties dialog. See How to set system properties for Confluence running as a
service on Windows for a step-by-step guide to locating your service and launching the Tomcat dialog.
2. Choose the Java tab.
3. Update the Java Virtual Machine line to point to the AdoptOpenJDK jvm.dll, as in the example
below. The path to your Java installation will be different to our example.
C:\Program Files\AdoptOpenJDK\jdk8u192-b12\jre\bin\server\jvm.dll
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 467
> General Configuration > System Information and check that Confluence is using the expected Java
version.
Remember, when you next upgrade Confluence this file will be overwritten, so you will need to re-apply this
change to the service.
In this example we're going to point Confluence to the AdoptOpenJDK JRE, which is installed on our Linus
server at /opt/java/adoptopenjdk/jdk8u192-b12/. The location of your JRE will be different, but the steps are the
same for any supported Java vendor and version.
To change the Java that Confluence uses in Linux:
1. In Terminal, use the following command to check that Java is installed and added to your path correctly.
$ java -version
This will return your Java version. If nothing is returned, or it returns the wrong version, see Installing Java
for Confluence or check the installation instructions for your Java vendor.
2. Stop Confluence.
3. In the Confluence installation directory edit the <install-directory>/bin/setjre.sh file
and change the last line to point to your local Java installation, as in the example below.
If this line isn't present, exit this file and use the environment variable method below.
4. Start Confluence.
5. Go to
> General Configuration > System Information and check that Confluence is using the expected Java
version.
Remember, when you next upgrade Confluence this file will be overwritten, so you will need to re-apply this
change to the new setjre.sh file.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 468
If you installed Confluence manually (the path to the bundled JRE was not automatically set in the setjre file),
Confluence will use the path set in the JRE_HOME environment variable. If JRE_HOME is not set, it will use the
path set in JAVA_HOME.
See Setting JAVA_HOME variable for Confluence to find out how to set this environment variable in Windows.
Refer to the documentation for your Linux distribution to find out how to set an environment variable in Linux.
You won't need to update the JRE_HOME environment variable when you upgrade Confluence, but you will
need to update the path if you upgrade Java.
The JRE_HOME set in the setjre file takes precedence. If you installed Confluence using the installer, this will
be automatically set to the Java version bundled with Confluence.
If JRE_HOME is not set in the setjre.bat or setjre.sh file, Confluence will use the JRE_HOME defined in
your environment or service. If it can't find JRE_HOME, it will use the JAVA_HOME environment variable.
The following table lists the supported Java vendors, and whether Oracle or AdoptOpenJDK is bundled with
Confluence.
Known issues
You may find that Oracle is still listed as the vendor in System Information. This is a known issue in
Confluence which we hope to have resolved soon. The Java version will be reported correctly, so you can
use that to make sure Confluence is pointing to the right version.
AdoptOpenJDK does not include a required font configuration package, which may cause issues when
installing in Linux. See Confluence Server 6.13 or later fails with FontConfiguration error when installing
on Linux operating systems for information on how to install the required package manually.
Upgrading Java
If you choose not to use the bundled Java version, you will need to manually update Java from time to time, to
get access to new security fixes and other improvements.
Always check the Supported Platforms page before upgrading, for any known issues affecting particular Java
versions.
Creating a Dedicated User Account on the Operating System to Run Confluence
This step is optional if you are evaluating Confluence, but should be mandatory for Confluence installations
used in production. If you have used the Confluence installer on Linux, this user will be created automatically.
A dedicated user should be created to run Confluence, because Confluence runs as the user it is invoked under
and therefore can potentially be abused. For example:
If your operating system is *nix-based (for example, Linux or Solaris), type the following in a console:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 469
In this step, you'll choose whether you want a trial or a production installation.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 470
Trial installation
Set up Confluence with the embedded H2 database, default settings and sample content to get you
started.
You'll need to migrate to a supported external database before using Confluence as a production
system. This option is recommended if you're just taking Confluence for a test drive.
Production installation
Set up Confluence with your own external database. This option is recommended for setting up
Confluence in a production environment.
If you've purchased a license bundle that includes Questions or Team Calendars for Confluence (or if you're
keen to try these apps) you can get the setup wizard to install these apps automatically.
Follow the prompts to generate an evaluation license, or enter an existing license key. To retrieve an existing
license key head to my.atlassian.com, or to purchase a new commercial license go to my.atlassian.com/purc
hase.
If you selected a Trial installation in the previous step, Confluence will generate your license and then
create the embedded database. This will take a few minutes. Once complete, go to step 8 below.
If you selected a Production installation, go to the next step to set up your external database.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 471
Choose how you want Confluence to connect to your database either via a direct JDBC connection or via a
server-managed datasource connection.
Screenshot: Connection options
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 472
Direct JDBC
This uses a standard JDBC database connection. Connection pooling is handled within Confluence.
Driver Class Name – The Java class name for the appropriate database driver. This will depend on
the JDBC driver, and will be found in the documentation for your database. Note that Confluence
bundles some database drivers, but you'll need to install the driver yourself if it is not bundled. See Dat
abase JDBC Drivers for details.
Database URL – The JDBC URL for the database you will be connecting to. This will depend on the
JDBC driver, and will be found in the documentation for your database.
User Name and Password – A valid username and password that Confluence can use to access your
database.
You will also need to know:
The size of the connection pool Confluence should maintain. If in doubt, just go with the default
provided.
What kind of database you're connecting to, so you can tell Confluence which dialect it needs to
use.
Datasource
This asks your application server (Tomcat) for a database connection. You will need to have configured a
datasource in your application server. For information about configuring an external database, see Database
Configuration.
Datasource Name - The JNDI name of the datasource, as configured in the application server.
Note: Some servers will have JNDI names like jdbc/datasourcename; others will be like java:co
mp/env/jdbc/datasourcename. Check your application server documentation.
We can help you get your new Confluence site started with some demonstration content (which you can
remove once you're up and running), or you can choose to proceed with an empty site. You'll need to create
a space in your new site before you can start adding content.
If you're migrating from another Confluence installation choose Restore from backup to import your existing
Confluence data.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 473
This option allows you to import data from an existing Confluence installation as part of the setup process.
You'll need a manual backup file from your existing Confluence installation to do this (go to Backup and
Restore in the administration console of your existing Confluence site).
Screenshot: restore data options
There are two ways to restore your data - upload the file, or restore from a location on your file system.
Upload a backup file
This option will load the data from a zipped backup file. If your backup file is very large, restoring from
the file system is a better option. Follow the prompts to browse for your backup file. Ensure select Buil
d Index is selected so the search index is generated.
Restore a backup file from the file system
This option is recommended if your backup file is very large (100mb or more), or your backup file is
already on the same server.
Copy your XML backup file into the <confluence-home>/restore directory. Your backup file will
appear in the list. Follow the prompts to restore the backup. Ensure select Build Index is selected so
the search index is generated.
When the restore process has you'll be ready to log in to Confluence. The system administrator account and
all other user data and content has been imported from your previous installation.
You can choose to manage Confluence's users and groups inside Confluence or in a Jira application, such
as Jira Software or Jira Service Desk.
If you do not have a Jira application installed, or if you would prefer to set up external user
management later, choose Manage users and groups within Confluence.
If you have a Jira application installed, the setup wizard gives you the opportunity to configure the Jira
connection automatically. This is a quick way of setting up your Jira integration with the most common
options. It will configure a Jira user directory for Confluence, and set up application links between Jira
and Confluence for easy sharing of data. Choose Connect to Jira.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 474
Confluence will also use this username and password to create a local administrator account which
will let you access Confluence if Jira is unavailable. Note that this single account is stored in
Confluence's internal user directory, so if you change the password in Jira, it will not automatically
update in Confluence.
Confluence Base URL - this is the URL Jira will use to access your Confluence server. The URL you
give here overrides the base URL specified in Confluence, for the purposes of connecting to the Jira
application.
User Groups - these are the Jira groups whose members should be allowed to use Confluence.
Members of these groups will get the 'Can use' permission for Confluence, and will be counted in your
Confluence license. The default user group name differs depending on your Jira version:
Jira 6.4 and earlier: jira-users.
Jira Software 7.x and later: jira-software-users
Jira Core 7.x and later: jira-core-users
Jira Service Desk 3.x and later: jira-servicedesk-users
Admin Groups – Specify one or more Jira groups whose members should have administrative
access to Confluence. The default group is jira-administrators. These groups will get the
system administrator and Confluence administrator global permissions in Confluence.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 475
For full details and a troubleshooting guide, see Configuring Jira Integration in the Setup Wizard.
The system administrator has full administrative power over your Confluence instance. This person will be
able to add more users, create spaces, and set further Confluence options. Please refer to the overview of
global permissions for more information.
If you've delegated user management to a Jira application, we'll use the Jira system administrator account
you specified as Confluence's system administrator account.
That's it, Confluence is ready to go. Click Start to jump straight in to Confluence.
Choose Further Configuration if you want to go directly to the Administration Console and complete
administrator's tasks including configuring a mail server, adding users, changing the base URL and more.
You'll be able to specify exactly which groups in your User Management Limitations and
Jira app should also be allowed to log in to Recommendations
Confluence. Your license tiers do not need to be the Connecting to Crowd or Jira for
same for each application. User Management
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 476
Confluence will also use this username and password to create a local administrator account which
will let you access Confluence if Jira is unavailable. Note that this single account is stored in
Confluence's internal user directory, so if you change the password in Jira, it will not automatically
update in Confluence.
Confluence Base URL - this is the URL Jira will use to access your Confluence server. The URL you
give here overrides the base URL specified in Confluence, for the purposes of connecting to the Jira
application.
User Groups - these are the Jira groups whose members should be allowed to use Confluence.
Members of these groups will get the 'Can use' permission for Confluence, and will be counted in your
Confluence license. The default user group name differs depending on your Jira version:
Jira 6.4 and earlier: jira-users.
Jira Software 7.x and later: jira-software-users
Jira Core 7.x and later: jira-core-users
Jira Service Desk 3.x and later: jira-servicedesk-users
Admin Groups – Specify one or more Jira groups whose members should have administrative
access to Confluence. The default group is jira-administrators. These groups will get the
system administrator and Confluence administrator global permissions in Confluence.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 477
Troubleshooting
If you have trouble connecting Confluence to Jira, the following troubleshooting information should help you
get up and running.
If no users can log in to Confluence after you've completed the setup process, check that the people are
members of the Jira groups you specified. Only members of these groups will get the 'Can Use' Confluence
permission.
Failed to create application The setup wizard failed to complete Follow the steps below to rem
link, or registration of the peer-to-peer ove the partial configuration t
application link with Jira. Jira hen try the Connect to Jira
Failed to authenticate integration is only partially step again.
application link configured.
Failed to register Confluence The setup wizard failed to complete Follow the steps below to rem
configuration in Jira for shared registration of the client-server link ove the partial configuration th
user management with Jira for user management. The en try the Connect to Jira step
peer-to-peer link was successfully again.
created, but integration is only
partially configured.
Error setting Crowd The setup wizard successfully Fix the problem that prevented
authentication established the peer-to-peer link with the application from saving
Jira, but could not persist the the configuration file to disk
client-server link for user then follow the steps below to
management in your config.xml fil remove the partial
e. This may be caused by a problem configuration before trying the
in your environment, such as a full Connect to Jira step again.
disk.
Error reloading Crowd The setup wizard has completed the Restart Confluence. You
authentication integration of your application with should be able to continue
Jira, but is unable to start with the setup wizard. If this
synchronizing the Jira users with your does not work, contact Atlassi
application. an Support for help.
java.lang.IllegalStateException: The setup wizard has not completed Follow the steps below to rem
Could not create the the integration of your application ove the partial configuration a
application in Jira/Crowd with Jira. The links are only partially nd resolve any conflict with
(code: 500) configured. The problem occurred existing links then try the
because there is already a user Connect to Jira step again.
management configuration in Jira for
this <application> URL.
If you hit a roadblock, you'll need to log in to Jira and remove the partial integration before you can try again.
The specific steps will differ depending on your Jira application and version, but the essentials are the same
for all versions:
Log in to Jira as a user with system administrator permissions.
In the Administrator screens, go to Application Links.
Remove the application link that matches the base URL of your Confluence server.
In the User Management screens, go to Jira User Server.
Remove the link that matches the name and base URL of your Confluence server from the list of
applications that can use Jira for user management.
If you have multiple servers running on the same host...
If you're unable to tell which link matches your Confluence server because you have multiple
servers of the same type running on the same host you can check the application ID, which is
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 478
Return to the Confluence setup wizard and try the Connect to Jira step again.
If you're still unable to connect Jira and Confluence using the setup wizard, you may need to skip this step
and set up the links between Jira and Confluence manually once you've completed the Confluence setup
process. See Connecting to Crowd or Jira for User Management.
Upgrading Confluence
In this guide we'll run you through using the installer On this page:
to upgrade your Confluence site to the latest Before you begin
Confluence version on Windows or Linux. Plan your upgrade
1. Determine your upgrade
Upgrading to any later version is free if you have
path
current software maintenance. See our Licensing
2. Complete the
FAQ to find out more.
pre-upgrade checks
3. Upgrade Confluence in a
test environment
Upgrade Confluence
4. Back up
5. Download Confluence
6. Run the installer
After the upgrade
7. Copy your database
driver
8. Reinstall the service
(Windows only)
9. Re-apply any
Other ways to upgrade Confluence:
modifications
Manually – upgrade without using the 10. Update your reverse
installer. proxy and check you can
Data Center – upgrade your Data Center access Confluence
cluster. Troubleshooting
Before you upgrade Confluence, there's a few questions you need to answer.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 479
> General Configuration > Troubleshooting and support tools and make
sure the license support period has not expired.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 480
Use the table below to determine the most efficient upgrade path from your current version to the latest
versions of Confluence.
2.7 or earlier Upgrade to 2.7.4 then upgrade to 3.5.17, and follow paths below.
4.0 to 4.3 Upgrade to 5.10.x then upgrade to the latest version of Confluence 6.
Enterprise releases
An Atlassian Enterprise release is a feature release that gets backported security updates and critical bug
fixes during its entire two-year support window. If you can only upgrade once a year, consider upgrading to
an Enterprise release. Learn more
1. Check the Upgrade Notes for the version you plan to upgrade to (and any in between).
2. Go to
> General Configuration > Troubleshooting and support tools to run the health check (available
in Confluence 5.5 or later).
License expired?
If the software maintenance period included in your license has expired you can keep using
Confluence, but you'll need to renew before you can upgrade.
Go to
> General Configuration > License Details and follow the prompts to renew your license.
Still using the embedded database?
If you are using the embedded (trial) database you should migrate to a different database before
upgrading.
This database is supplied for evaluation purposes only and is not recommended for production
environments. See Embedded H2 Database for more information.
Database character encoding incorrect?
Database character encoding must be set to UTF+8 (or AL32UTF8 for Oracle databases). You will
not be able to upgrade to current Confluence versions unless you have the correct character
encoding.
3. Go to
> Manage apps and scroll down to the Confluence Update Check to check the compatibility of your
Marketplace apps.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
3.
3. Test any unsupported user-installed apps, customizations (such as custom theme or layouts) and
proxy configuration (if possible) before upgrading your production environment.
Upgrade Confluence
4. Back up
1. Back up your database and confirm the backup was created properly.
If your database does not support online backups you'll need to stop Confluence first.
This is where your search indexes and attachments are stored. If you store attachments outside
the Confluence Home directory, you should also backup your attachments directory.
5. Download Confluence
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence
1. 6.15 Documentation 482
Next, run the installer – we recommend using sudo to run the installer:
$ sudo ./atlassian-confluence-X.X.X-x64.bin
You can also choose to run the installer with root user privileges.
a. When prompted choose Upgrade an existing Confluence installation (for Linux users this is
option 3).
b. Make sure the Existing Confluence installation directory suggested by the wizard is correct
(especially important if you have multiple Confluence installations on the same machine).
c. Back up Confluence home is strongly recommended. This will create a .zip backup of the
Confluence home and installation directories.
d. The installation wizard notifies you of customizations in the Confluence Installation directory.
Make a note of these as you'll need to reapply them later.
There are some limitations...
The installation wizard's ability to notify you about customizations will depend on how your
existing Confluence instance was installed:
If your current Confluence instance was installed using the installer, the wizard will
check the entire Confluence Installation directory.
If your current Confluence instance was installed manually it will only check the conf
luence subdirectory of the Confluence Installation directory. The installation wizard
will not notify you of modifications in any other directory, for example modifications to
start-up scripts under the bin directory or modifications to the server.xml file
(such as an SSL configuration).
You won't be notified about files you've added to the installation directory, so be sure to
back them up first.
3. The wizard will shut down your Confluence instance and proceed with the upgrade. Once complete, it
will restart Confluence and you can then launch Confluence in your browser to confirm the upgrade
was successful.
Depending on the size of your instance and the number of upgrade tasks to be run, this step may take
a few minutes or several hours.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 483
If you're using an Oracle or MySQL database, you'll need to copy the jdbc driver jar file from your existing
Confluence installation directory to confluence/WEB-INF/lib in your new installation directory.
If you run Confluence as a service on Windows you should delete the existing service then re-install the
service by running <install-directory>/bin/service.bat.
This makes sure the service gets the most recent JVM options.
During the upgrade the wizard migrated the following from your existing Confluence installation:
TCP port values in your <install-directory>/conf/server.xml file.
Location of your Confluence home directory in <install-directory>/confluence/WEB-INF/c
lasses/confluence-init.properties.
10. Update your reverse proxy and check you can access Confluence
If you are upgrading from Confluence 5.x to Confluence 6.x you will need to modify your reverse proxy (if
used) to add Synchrony, which is required for collaborative editing. See Proxy and SSL considerations for
more information on the changes you'll need to make to your proxy config.
Once your upgrade is complete, you should access Confluence (via your reverse proxy, not directly) and:
Head to
> General Configuration > Collaborative editing and check the Synchrony status is running.
Edit any page to check that your browser can connect to Synchrony.
See Troubleshooting Collaborative Editing for suggested next steps if Synchrony is not running or you see an
error in the editor, as you may have a misconfigured reverse proxy.
Troubleshooting
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 484
License warnings
ERROR [confluence.upgrade.impl.DefaultUpgradeManager]
runUpgradePrerequisites
Current license is not valid: SUPPORT_EXPIRED
When you try to access Confluence in your browser, you'll see this warning:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 485
3. Restart Confluence to pick up the license change. You should now be able to log in to Confluence as
normal.
After you have completed an upgrade, you should see the following message in the atlassian-confluence.
log file:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 486
If you do not see the line in your log similar to the one above, this means that your upgrade may not have
completed successfully. Please check our Upgrade Troubleshooting documentation to check for a suitable
recommendation or fix.
Upgrade Checklist
1. The editor
Edit a page to check your browser can connect to Synchrony, which is required for collaborative editing. See Tro
ubleshooting Collaborative Editing if you are not able to edit a page.
Visit the Confluence dashboard and check that it is accessible and displays as expected. Test the different
Internet browsers that you have in use in your environment. In addition, confirm that the layout appears as
expected and that the menus are clickable and functioning.
3. Search
Try searching for content, for example pages, attachments or user names. Check that the expected results are
returned.
4. Permissions
Confirm that you can visit a page that has view restrictions, but you have permission to view. Confirm that you
can edit a page that has edit restrictions but you have permission to edit. Make sure that the permissions of child
pages are functioning as well. Involve as many space administrators as possible to confirm they are working.
Confirm that anonymous or forbidden users cannot access or modify restricted pages.
5. Attachments
6. Marketplace apps
Outdated third-party apps can cause upgrade failure. Quite often, they will just be incompatible and simply do
not work anymore. If you discover that your app is no longer working, please check for the latest version for your
app in the The Atlassian Marketplace or check for compatibility in the Universal Plugin Manager.
Migration from Wiki Markup to XHTML-Based Storage Format
If you are upgrading to Confluence 4.0 or later from an older version (From Confluence 3.5.x or earler) then as
part of the upgrade an automatic migration of your content will take place. This is a non-destructive process.
Your existing content is not overwritten. Instead, the migration process will create a new version of each wiki
markup page. The new version will use the new XHTML-based storage format, so that you can edit the page in
the Confluence rich text editor.
In addition, if you are upgrading to Confluence 4.3 or later from an older version then as part of the upgrade
an automatic migration of your page templates will take place. See Migration of Templates from Wiki Markup to
XHTML-Based Storage Format.
Note: Even though the process is non-destructive, you must be sure to perform a backup of your database and
home directory prior to starting the new version of Confluence, as we recommend for any Confluence upgrade.
Migration process
Depending on the size of your Confluence installation, the migration from wiki markup to the new XHTML-based
storage format could prove time consuming. The duration of the migration is difficult to estimate; this is due to a
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 487
number of site specific factors. As a rough guide, a test dataset we migrated was 130,000 pages, totalling
approximately 700Mb, which took six minutes.
On this page:
Migration process
Watching the migration logs during the upgrade
Re-running the migration – for content that
completely failed the migration
Re-attempting the migration – for content in
'unmigrated-wiki-markup' macro
Notes
Related pages:
Migration of Templates from Wiki Markup to
XHTML-Based Storage Format
Upgrading Confluence
The following properties that can be modified to allow finer control over the migration process:
To monitor the progress of a site migration you should watch the output in the application log.
Typical logging progress will be shown by multiple log entries at the INFO level of the following format:
There may be a wide array of messages logged from each individual page but any errors are also collected for
display in a single migration report once all content has been processed. Here is a typical example of such a
report:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 488
Each entry in the report will identify the content that caused migration exceptions as well as displaying the
exceptions themselves.
In almost all cases any content reported as errored will have been migrated to the new XHTML-based storage
format, but will actually consist of wiki markup content wrapped within an XML 'unmigrated-wiki-markup' macro.
This content will still be viewable in Confluence and editable within the new Confluence Editor.
However, in some cases a batch of content may actually have completely failed to migrated. This is most
typically due to an unhandled exception causing a database transaction rollback. This would be reported in the
log with a message like this:
Confluence provides no further report about this scenario and will also allow Confluence to restart as normal
without retrying a migration. If a user tries to view any such unmigrated content they will see an exception similar
to this:
The solution is to ensure you manually re-run the site migration after the restart.
Re-running the migration – for content that completely failed the migration
A Confluence Administrator can restart the site migration if there was any content that failed migration (see
previous section). Only the content that is still formatted in wiki markup will be migrated, so typically a
re-migration will take less time than the original migration.
To manually re-run migration:
1. Open this URL in your browser: <Confluence Address>/admin/force-upgrade.action
2. Select wikiToXhtmlMigrationUpgradeTask in the Upgrade task to run dropdown list.
3.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 489
The previous section was about dealing with the exceptional circumstance where certain content was left
completely unmigrated. The most common migration problem is that the content was migrated but remains
formatted as wiki markup on the page, within the body of an 'unmigrated-wiki-markup' macro. Any content which
is referenced in the migration report will be found in this state. This content is still viewable and editable but
since it is wiki markup it cannot be edited using the full feature set of the rich text editor.
The most common reason for content to be in this state is that the page contains an unknown macro, or a macro
that is not compatible with Confluence 4.x.
There are two possible fixes for this situation:
1. Install a version of the macro that is compatible with Confluence 4.x. See Plugin Development Upgrade
FAQ for 4.0 .
2. Edit the page and remove the problematic macro.
Regardless of the solution you choose, you can then force a re-migration of all the content (including content in
templates) that was left wrapped in an 'unmigrated-wiki-markup' macro. This feature is found at <Confluence
Address>/admin/unmigratedcontent.action
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 490
Notes
We refer to the Confluence storage format as 'XHTML-based'. To be correct, we should call it XML, because the
Confluence storage format does not comply with the XHTML definition. In particular, Confluence includes
custom elements for macros and more. We're using the term 'XHTML-based' to indicate that there is a large
proportion of HTML in the storage format.
Migration of Templates from Wiki Markup to XHTML-Based Storage Format
If you are upgrading to Confluence 4.3 or later from an older version (from Confluence 4.2.x or earlier) then
as part of the upgrade an automatic migration of your page templates will take place. This is a non-destructive
process. Your existing content is not overwritten. Instead, the migration process will create a new version of
each space template and each global template on your Confluence site. The new version will use the new
XHTML-based storage format, so that you can edit the template in the Confluence rich text editor.
Note: Nevertheless, you must be sure to perform a backup of your database and home directory prior to starting
the new version of Confluence, as we recommend for any Confluence upgrade.
To monitor the progress of a site migration you should watch the output in the application log.
A typical logging progress will be shown by multiple log entries at the INFO level of the following format:
On this page:
Watching the migration logs during the upgrade
Re-running the migration
Notes
Related pages:
Migration from Wiki Markup to XHTML-Based
Storage Format
Page Templates
Upgrading Confluence
There may be a wide array of messages logged from each individual template, but any errors are also collected
for display in a single migration report once all content has been processed. Here is a typical example of such a
report:
Each entry in the report will identify the content that caused migration exceptions as well as displaying the
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 491
exceptions themselves.
In almost all cases any content reported as errored will have been migrated to the new XHTML-based storage
format, but will actually consist of wiki markup content wrapped within an XML 'unmigrated-wiki-markup' macro.
This content will still be viewable in Confluence and editable within the Confluence rich text editor.
However, in some cases a batch of content may actually have completely failed to migrate. This is most typically
due to an unhandled exception causing a database transaction rollback. This would be reported in the log with a
message like this:
Confluence provides no further report about this scenario and will also allow Confluence to restart as normal
without retrying a migration. If a user tries to view or edit an unmigrated template, the wiki template editor will be
used.
The solution is to manually re-run the site migration after the restart, as described below.
A Confluence administrator can restart the template migration if any templates have failed the migration (see
previous section). Only the templates that are still formatted in wiki markup will be migrated again. Typically, a
re-migration will take less time than the original migration.
To manually re-run the migration:
1. Open this URL in your browser: <Confluence Address>/admin/force-upgrade.action
2. Select pageTemplateWikiToXhtmlMigrationUpgradeTask in the Upgrade task to run dropdown list.
3. Choose Force Upgrade.
Screenshot: The 'Force Upgrade' screen in the Confluence administration console
Notes
We refer to the Confluence storage format as 'XHTML-based'. To be correct, we should call it XML, because the
Confluence storage format does not comply with the XHTML definition. In particular, Confluence includes
custom elements for macros and more. We're using the term 'XHTML-based' to indicate that there is a large
proportion of HTML in the storage format.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 492
Before you upgrade Confluence, there's a few questions you need to answer.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 493
> General Configuration > Troubleshooting and support tools and make
sure the license support period has not expired.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 494
Use the table below to determine the most efficient upgrade path from your current version to the latest
versions of Confluence.
2.7 or earlier Upgrade to 2.7.4 then upgrade to 3.5.17, and follow paths below.
4.0 to 4.3 Upgrade to 5.10.x then upgrade to the latest version of Confluence 6.
1. Check the Upgrade Notes for the version you plan to upgrade to (and any in between).
2. Go to
> General Configuration > Troubleshooting and support tools to run the health check (available
in Confluence 5.5 or later).
License expired?
If the software maintenance period included in your license has expired you can keep using
Confluence, but you'll need to renew before you can upgrade.
Go to
> General Configuration > License Details and follow the prompts to renew your license.
Still using the embedded database?
If you are using the embedded (trial) database you should migrate to a different database before
upgrading.
This database is supplied for evaluation purposes only and is not recommended for production
environments. See Embedded H2 Database for more information.
Database character encoding incorrect?
Database character encoding must be set to UTF+8 (or AL32UTF8 for Oracle databases). You will
not be able to upgrade to current Confluence versions unless you have the correct character
encoding.
3. Go to
> Manage apps and scroll down to the Confluence Update Check to check the compatibility of your
Marketplace apps.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 495
Good to know:
You can disable an app temporarily while you upgrade if it is not yet compatible.
Compatibility information for Atlassian Labs and other free apps is often not available
immediatley after a new release. In many cases the app will still work, so give it a try in a
test site before upgrading your production site.
3. Test any unsupported user-installed apps, customizations (such as custom theme or layouts) and
proxy configuration (if possible) before upgrading your production environment.
Upgrade Confluence
4. Back up
1. Back up your database and confirm the backup was created properly.
If your database does not support online backups you'll need to stop Confluence first.
This is where your search indexes and attachments are stored. If you store attachments outside
the Confluence Home directory, you should also backup your attachments directory.
5. Download Confluence
1. Stop Confluence.
See Using read-only mode for site maintenance if you need to provide uninterrupted access.
2. Extract (unzip) the files to a directory (this is your new installation directory, and must be different to
your existing installation directory)
Note: There are some known issues with unzipping the archive on Windows. We recommend using
7Zip or Winzip.
3. Edit <Installation-Directory>\confluence\WEB-INF\classes\confluence-init.pro
perties file to point to your existing Confluence home directory.
4. If you're using an Oracle or MySQL database, you'll need to copy your jdbc driver jar file from your
existing Confluence installation directory to confluence/WEB-INF/lib in your new installation
directory.
5. There are some additional steps you make need to take if:
you are running Confluence as a Windows Service
Click here to expand...
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
5.
Confluence 6.15 Documentation 496
If you are running Confluence as a Windows service, go to the command prompt and type:
<Installation-Directory>\bin\service.bat remove
Confluence
It is vital that you stop and remove the existing service prior to uninstalling the old instance
of Confluence. For more information on running Confluence as Windows service, please
refer to Start Confluence Automatically on Windows as a Service.
To remove the service installed by the Confluence installer, you'll need to run <conflue
nce auto installer installation folder>\UninstallService.bat.
6. Start your new Confluence. You should not see the setup wizard.
If you run Confluence as a service on Windows you should delete the existing service then re-install the
service by running <install-directory>/bin/service.bat.
This makes sure the service gets the most recent JVM options.
If you have customized Confluence (such as an SSL configuration in the server.xml file, or CATALINA_OP
TS or JAVA_OPTS parameters in your confluence-init.properties file), you'll need to perform the
following steps after the upgrade is complete:
1. Stop your upgraded Confluence instance.
2. Reapply the customizations to the relevant files in the newly upgraded Confluence Installation
directory.
3. Restart the upgraded Confluence instance.
We strongly recommend you test your customizations in a test instance prior to upgrading your production
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 497
instance as changes may have been made to Confluence that make your customizations unsuable.
9. Update your reverse proxy and check you can access Confluence
If you are upgrading from Confluence 5.x to Confluence 6.x you will need to modify your reverse proxy (if
used) to add Synchrony, which is required for collaborative editing. See Proxy and SSL considerations for
more information on the changes you'll need to make to your proxy config.
Once your upgrade is complete, you should access Confluence (via your reverse proxy, not directly) and:
Head to
> General Configuration > Collaborative editing and check the Synchrony status is running.
Edit any page to check that your browser can connect to Synchrony.
See Troubleshooting Collaborative Editing for suggested next steps if Synchrony is not running or you see an
error in the editor, as you may have a misconfigured reverse proxy.
Troubleshooting
Your staging environment should closely replicate your real-live environment (production), including any
reverse proxies, SSL configuration, or load balancer (for Data Center). You may decide to use a different
physical server or a virtualized solution. The main thing is to make sure it is an appropriate replica of your
production environment.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 498
For the purposes of these instructions, we assume your staging environment is physically separate from your
production environment, and has the same operating system (and Java version if you've installed Confluence
manually).
3. Replicate Confluence
To replicate Confluence, make a copy of your Confluence installation and point it to your staging database.
These instructions are for Confluence Server (for Data Center there are some additional steps before you
start Confluence).
1. Copy your entire production installation directory to your staging server.
2. Copy your entire production home directory to your staging server.
3. Edit <installation-directory>/confluence/WEB-INF/classes/confluence-init.pro
perties to point to your staging home directory.
4. Edit <home-directory>/confluence.cfg.xml or <installation-directory>/server.xm
l to point to your staging database.
If you're using a direct JDBC connection, the line you need to update in confluence.cfg.xml will look
something like this...
<property
name="hibernate.connection.url">jdbc:postgresql://localhost:54
32/confluencestaging</property>
If you're using a datasource connection, the lines you need to update in server.xml will look
something like this...
5. Start Confluence with the following System Properties to make sure your staging site does not send
notifications to real users.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 499
-Datlassian.notifications.disabled=true
-Datlassian.mail.senddisabled=true
> General Configuration and change the base URL of your staging site (for example mysite.stag
ing.com)
8. Go to
> General Configuration > License Details and apply your development license.
9. Go to
> General Configuration > System Information and check that Confluence is correctly pointing to
your staging database, and staging home directory.
It's essential to check that you are not still connected to your production database.
If you have Confluence Data Center, the process is much the same as for Confluence Server described
above. You will copy each local home and installation directory to each staging node, and then:
1. Copy the production shared home directory to the staging server.
2. Edit<local-home-directory>/confluence.cfg.xml to point to your staging shared home
directory. This change must be made on every staging node.
Changes to the <installation-directory>/confluence/WEB-INF/classes/confluence-init.
properties and <home-directory>/confluence.cfg.xml must be made on every staging node.
When it comes time to start Confluence, start one node at a time, as usual.
If you're managing users in Jira, Crowd, or in an external LDAP directory you can:
replicate Jira, Crowd, or your external directory in your staging environment and point your Confluence
staging site to your staging external directory (recommended).
provide your staging server with network or local access to the same hosts as your production server.
There are a number of additional things you may want to change in your staging environment, to make sure it
does not interact with your production environment, or to clearly differentiate it for users.
If you have application links between Confluence and other Atlassian applications you should change the
server ID on each staging application. See How to change the server ID of Confluence and Changing Server
ID for Test Installations for Jira.
If you don't change the server ID and update your application links there is a chance that when you create a
new application link in production it will point to your staging server instead.
To review the Application Links manually in the database, use the following following SQL query:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 500
If you have external gadgets configured, you can update these from the database, using the following SQL
query:
If can be helpful to use a different color scheme on your staging site, to differentiate it from your production
site. See Customizing Color Schemes for how to do this.
You can also find this data in the database using the following SQL query:
It is a good idea to change the name of your staging site, to differentiate it from your production site. Head to
> General Configuration and update the Site Title if Confluence is running.
If Confluence is not running, you can do this from the database. You can find the site title using the following
SQL query:
Add a banner
It can be useful to add a banner to your staging site, to provide useful information like the date of the last
refresh, or who to contact if you want to make changes.
If you have a Confluence Data Center license, you can do this by enabling the banner that is used by read-on
ly mode (you don't need to enable read-only mode to use the banner).
If you have a Confluence Server license, you can manually add a banner using HTML. Head to
> General Configuration > Custom HTML. Remember to close your tags properly, or Confluence may not
display correctly.
If you want to add a banner before starting Confluence, you can do it in the database. You can find the
custom HTML using the following SQL query:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 501
You might want to disable specific plugins or check whether these plugins are already disabled or not. See
the How to reset all Confluence plugins back to their default state through the database knowledge base
article to find how to do this.
You can also disable plugins in Confluence in 6.1+ using Java system properties.
Once you have created your staging environment, you can upgrade it in the same way you would your
production environment.
Make a note of how long the upgrade takes, as this information will help you plan your production system
outage and communicate with your users.
You can also use your staging environment to test any customizations or essential Marketplace apps in your
site.
Supported Platforms
This page describes the additional software and infrastructure you'll need to On this page:
run Confluence. Please review this info before installing Confluence. The
information on this page applies to Confluence 6.15. Browsers
Operating
You should only use Confluence with a supported platform. Any systems
platforms and versions not listed on this page are unsupported, which Databases
means we don't test, fix bugs or provide assistance. Java
See End of Support Announcements for Confluence for upcoming Infrastruct
changes to supported platforms. ure
Go to
Related pages:
> General Configuration > Troubleshooting and support tools to
check your instance health. It looks at things like your license validity, Confluenc
Tomcat version, basic database setup and more. e
Installation
Definitions:
Guide
Supported - you can use Confluence 6.15 with this platform. Confluenc
e Setup
Limited - you can evaluate Confluence on this platform, but you can't use Guide
it to run a production Confluence site.
Server
Deprecated - support for this platform will end in an upcoming release. Hardware
Requireme
nts Guide
Supported
Platforms
FAQ
Browsers
Desktop browsers: Good to know:
Internet Explorer 11 We test Confluence in Internet Explorer 11 using standards-compliant
rendering mode, not compatibility mode. You may experience
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 502
Operating systems
Operating systems: Known issues:
Microsoft Windows The following operating system variants can't be used with
Confluence:
Linux (most distributions) Windows Nano
MacOS / OSX (evaluation Alpine Linux - see CONFSERVER-52400
only) Good to know:
You can run Confluence on 32bit or 64bit operating systems, but we
only provide installers for 64bit operating systems.
You can evaluate Confluence on MacOS / OSX, but you can't install
and run your production Confluence site on a Mac.
Databases
PostgreSQL: Known issues:
PostgreSQL 9.4 Confluence will not work on MySQL 5.6 versions earlier than 5.6.16.
See MySQL bug 69005.
PostgreSQL 9.5 Confluence will not work on MySQL variants such as:
PostgreSQL 9.6 MariaDB - see CONFSERVER-29060
Percona Server - see CONFSERVER-36471
MySQL:
Good to know:
MySQL 5.6
You must use the InnoDB storage engine in MySQL.
MySQL 5.7 The embedded H2 database is for evaluation only. For production
sites, you'll need to use one of the supported external databases
Oracle: listed on this page.
Oracle 12c Release 1
Oracle 12c Release 2
Microsoft SQL Server:
SQL Server 2012
SQL Server 2014
SQL Server 2016
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 503
Java
Oracle JRE / JDK: Known issues:
Java 1.8 You can only run Confluence with AdoptOpenJDK or Oracle
JRE/JDK.
AdoptOpenJDK: Some Oracle Java versions have bugs that impact Confluence. You
Java 8 can't run Confluence on Java 1.8.0_25 and 1.8.0_31 (see JDK-80592
99) or Java 1.8.0_45 (see JDK-8068400).
Some AdoptOpenJDK versions have bugs that impact Confluence.
We recommend version jdk8u192 or later.
Good to know:
You don't need to install Java if you plan to use the installer to install
Confluence, as a JRE is bundled with Confluence (provided by
AdoptOpenJDK).
Infrastructure
Hardware:
You can't run Confluence on SPARC based hardware. You'll need to use x86 hardware or 64bit
derivatives of x86 hardware.
You can't use an NFS mount for your installation or home directory due to Lucene requirements. If
you're installing Confluence Data Center, an NFS mount is fine for the shared home directory, but not
for the local home directories.
Virtualization:
You can run Confluence and Confluence Data Center in a virtualized environment (including Docker),
but our support team can't assist you with problems related to the environment itself. See Running
Confluence in a Virtualized Environment
Our support team can assist you with deploying Confluence Data Center in AWS using the Cloud
Formation Template or Quick Start. We won't be able to assist you if you have significantly customised
the Cloud Formation Template.
Application server:
We only support the Tomcat version that is bundled with your Confluence version. You can't run
Confluence in your own application server.
Internet protocols:
You can run Confluence in both IPv4 and IPv6 environments.
Raw IPv6 addresses are not always recognized. See the Confluence 6.9 Upgrade Notes for limitations
and known issues.
For more information see our Server Hardware Requirements Guide and System Requirements.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 504
View File macros These macros are now fully supported (updated announcement)
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 505
We will end support for the following macros in Confluence 7.0, and hide them from the macro browser. Any
existing instances of these macros will still work, but you won't be able to insert these macros into the editor
using the macro browser:
IM Presence macro
Netwok macro
Search results macro
Space details macro
End of support means Atlassian will not fix bugs related to these macros in Confluence 7.0 or later versions. We
will remove these macro entirely in a future Confluence release, and will provide more information at that time.
To check whether a macro is used in your site, go to
> General Configuration > Macro Usage. Some macros will be listed under the system app that provides
them.
IM Presence macro
The IM Presence Macro shows when a given user is online in a selected chat service. The macro only supports
a small number of chat services, and we feel that most modern chat tools provide better ways to see this
information.
If you have questions or concerns, please comment on this issue
CONFSERVER-57596
WAITING FOR RELEASE .
Network macro
The Network Macro allows you display the people a particular user is following, or people who are following that
user. Following someone is a useful way to get notifications about their activity, and this network information is
also available on each user's profile page.
If you have questions or concerns, please comment on this issue
CONFSERVER-57597
WAITING FOR RELEASE .
The Search Results Macro allows you to display the results of a keyword search on a page. We are making
some great changes to Search over the next few releases, and have observed that this macro is rarely used.
If you have questions or concerns, please comment on this issue
CONFSERVER-57598
WAITING FOR RELEASE .
The Space Details Macro allows you to display basic information about the current space on a page. This
information is available at all times from Space Tools > Overview.
If you have questions or concerns, please comment on this issue
CONFSERVER-57599
WAITING FOR RELEASE .
We will end support for the following Gadgets in Confluence 7.0, and hide them from the macro browser. Any
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 506
existing instances of these gadgets will still work, but you won't be able to insert these gadgets into the editor
using the macro browser:
Activity Stream
Confluence Page Gadget
Confluence Quick Nav Gadget
News gadget
End of support means Atlassian will not fix bugs related to these gadgets in Confluence 7.0 or later versions. We
will remove these gadgets entirely in a future Confluence release, and will provide more information at that time.
Gadgets were designed to allow you to display information dynamically from sources like iGoogle or Jira, for
example, in Confluence. The first gadgets were introduced in Confluence 3.1, and much of the technology they
were based on is now superseded or obsolete. Since then we have also implemented a number of better ways
to display dynamic information using macros and other integration points.
The Activity stream gadget shows a list of recently changed content in your site. We recommend using the Rece
ntly Updated macro as an alternative in Confluence.
This gadget displays the contents of a Confluence page. We recommend using the Include Page macro as an
alternative in Confluence.
This gadget provides a search field that can be used to search for page titles in Confluence. We recommend
using the Livesearch macro as an alternative in Confluence.
News gadget
This gadget previously displayed blogs and other news from Atlassian. It has not been displaying content for
some time. We will remove this gadget completley in 7.0.
If you have questions or concerns, please comment on this issue
CONFSERVER-57614
WAITING FOR RELEASE .
Shortcut links
We will end support for shortcut links in Confluence 7.0, and will remove the feature completley in a future
Confluence release.
Shortcut Links were introduced in Confluence 2.3 and provided a quick way to add links to websites in wiki
markup. Shortcut links can only be configured by an administrator, are not easily discoverable, and seldom used
by end users.
End of support means that Atlassian will not fix bugs related to shortcut links in Confluence 7.0 or later versions.
If you have questions or concerns, please comment on this issue
CONFSERVER-57610
WAITING FOR RELEASE .
We will remove the trackback and referrers features completley in Confluence 7.0.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 507
Trackback enables Confluence to send and receive trackback pings when pages are linked to. External
Referrers appear on the Page Information view of a page, and list clicks from external websites to the page.
Trackback is no longer widely used in modern websites, and because it relies on accepting unauthenticated
requests to a particular URL, is a spam vector.
If you have questions or concerns, please comment on this issue
CONFSERVER-57611
WAITING FOR RELEASE .
We will remove the Orphaned pages screen in the default theme in Confluence 7.0.
The Orphaned pages screen provided a list of all pages that Confluence considers orphaned pages (not a child
of a space homepage, and not linked to by any other page). Since the introduction of the Confluence 5 default
theme, the orphaned pages screen has been less useful because it's always possible to see all pages in a space
via Space Tools > Reorder pages.
If you have questions or concerns, please comment on this issue
CONFSERVER-57601
WAITING FOR RELEASE .
Hipchat integration
We have discontinued development on all chat products. Hipchat Cloud services were shut down in February
2019, and Hipchat Data Center and Server will both reach end of life within the next year.
We will end support for all bundled Hipchat plugins in Confluence 7.0. These will be disabled by default for new
installations. This will have no impact on existing installations, and can be easily enabled if required.
End of support means that Atlassian will not fix bugs related to Hipchat integration in Confluence 7.0 or later
versions.
If you have questions or concerns, please comment on this issue
CONFSERVER-57602
WAITING FOR RELEASE .
Atlassian will end support for PostgreSQL 9.3 in Confluence 6.13. End of support means that Atlassian will not
offer support for, or fix bugs related to, running Confluence 6.13 or later with this database.
Confluence 6.12 is the last version that will support PostgreSQL 9.3.
Confluence 6.12 and earlier versions will continue to work with PostgreSQL 9.3, however we will not fix
bugs affecting these databases after the end-of-life date for your version of Confluence.
Confluence 6.13 and later will not be tested with PostgreSQL 9.3.
Check out the Supported Platforms page for the full list of supported databases.
If you have questions or concerns regarding this announcement, please email eol-announcement at atlassian
dot com.
Atlassian will end support for PostgreSQL 9.2 in Confluence 6.8. End of support means that Atlassian will not
offer support for, or fix bugs related to, running Confluence 6.8 or later with this database.
Confluence 6.7 is the last version that will support PostgreSQL 9.2.
Confluence 6.7 and earlier versions will continue to work with PostgreSQL 9.2, however we will not fix
bugs affecting these databases after the end-of-life date for your version of Confluence.
Confluence 6.8 and later will not be tested with PostgreSQL 9.2.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 508
Check out the Supported Platforms page for the full list of supported databases.
If you have questions or concerns regarding this announcement, please email eol-announcement at atlassian
dot com.
We will end support for the JUnit Report macro with the release of Confluence 6.6. This macro is used to
display the results of JUnit tests on a Confluence page and, based on our research, is rarely used.
End of support means that Atlassian will not fix bugs related to this macro past the support end date for your
version of Confluence. We will remove this macro entirely in a future Confluence release, and will provide more
information at that time.
To check whether this macro is used in your site, go to
> General Configuration > Macro Usage. The JUnit Report macro will be listed under Advanced Macros if it's
used.
If you have questions or concerns, please comment on this issue
CONFSERVER-53942 - Plans to remove JUnit macro
WAITING FOR RELEASE .
We are replacing the open source jTDS driver for SQL Server with the official Microsoft JDBC Driver for SQL
Server. This new driver is bundled with Confluence 6.4 and later.
Atlassian will end support for the jTDS driver in Confluence 6.6. End of support means that Atlassian will not
offer support for, or fix bugs related to, installing and running Confluence 6.6 or later with this driver.
Confluence 6.5.x will be the last major release to bundle the jTDS driver.
Confluence 6.5.x and earlier versions will continue to be supported with the jTDS driver, until their support
end date.
Confluence 6.6.x will not bundle or support the jTDS driver. We'll provide plenty of information on how to
migrate to the new driver at that time.
If you have questions or concerns regarding this announcement, please email eol-announcement at atlassian
dot com.
Atlassian will end support for the Oracle Solaris operating system in Confluence 6.3. End of support means
that Atlassian will not offer support for, or fix bugs related to, installing and running Confluence 6.3 or later on
this operating system.
Confluence 6.2.x will be the last major release that can be installed on Solaris.
Confluence 6.2.x and earlier versions will continue to be supported on Solaris, until their support end
date.
Check out the Supported Platforms page for the full list of supported operating systems.
If you have questions or concerns regarding this announcement, please email eol-announcement at atlassian
dot com.
Atlassian will end support for the default browser provided with Android 4.0.3 (Ice Cream Sandwich) in
Confluence 6.0. End of support means that Atlassian will not fix bugs related to this browser past the support
end date, except for security related issues. This means:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 509
Confluence 5.10 will be the last major release that supports the default browser provided with
Android 4.0.3 (Ice Cream Sandwich).
Confluence 5.10.x and earlier versions will continue to work on the default browser provided with
Android 4.0.3 (Ice Cream Sandwich).
With the release of Confluence 6.0 we have added support for the default browser provided with current Android
versions from 4.4 (KitKat) and later. Check out the Supported Platforms page for the full list of supported
browsers.
If you have questions or concerns regarding this announcement, please email eol-announcement at atlassian
dot com.
To help us bring you new Confluence Server releases faster, we are considering only providing 64-bit installers.
Confluence 5.10 would be the last Confluence release to provide a 32-bit installer.
Q: Can I upgrade using the 64-bit installer?
Yes. If you installed Confluence using the 32-bit installer on a 64-bit operating system, you will be able to
upgrade using the 64-bit installer.
Q: What if I am not able to use the 64-bit installer?
We'd love to hear from you to better understand how this change would impact you. Comment on this issue
CONFSERVER-42817 - Planned deprecation of 32-bit installers
RESOLVED or contact us directly at eol-announc
ement at atlassian dot com.
Atlassian will end support for Internet Explorer 10 in Confluence 6.0. End of support means that Atlassian will not
fix bugs related to Internet Explorer 10 past the support end date, except for security related issues.
This change allows us to use more modern browser technologies to give you the best user experience in
Confluence. Check out the Supported Platforms page for the full list of supported browsers.
If you have questions or concerns regarding this announcement, please email eol-announcement at atlassian
dot com.
Confluence 5.10 will be the last major release that supports Internet Explorer 10.
Confluence 5.10.x and earlier versions will continue to work on Internet Explorer 10.
No Confluence releases after 5.10.x will be tested with Internet Explorer 10.
This section announces the end of Atlassian support for certain databases for Confluence. End of support
means that Atlassian will not fix bugs related to the specified database past the support end date for your
version of Confluence.
The details are below. Please refer to the list of supported platforms for details of platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcement
at atlassian dot com.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 510
Notes:
Confluence 5.10 is the last version that will support MySQL 5.5.
Confluence 5.10 and previously-released versions will continue to work with the database version listed
above, however we will not fix bugs affecting these databases after the end-of-life date for your version of
Confluence.
No Confluence releases after 5.10.x will be tested with the database listed above.
With the release of Confluence 5.9 we will be ending support for the following macros, known collectively as the
'View File' macros:
Office Excel
Office Word
Office PowerPoint
PDF
End of support means that Atlassian will not fix bugs related to these macros past the support end date for your
version of Confluence. We plan to remove these macros in a future Confluence release, and will provide plenty
of information to help you make the transition when the time comes.
The View File macros will still be available in future Confluence releases (including Confluence 5.9, 5.10 and
later), but we recommend inserting Office and PDF files as a thumbnail or link, and using the preview to view the
file in full, as it provides a much better way to display Office and PDF files on your pages. See Display Files and
Images for more info.
If you have any questions or concerns, please comment on this issue
CONFSERVER-39829 - Plans to remove the view file macros
RESOLVED
Status updates
As part of our work to make Confluence simpler and easier to use we've decided to remove the Status Updates
feature in Confluence 5.9. This includes the ability to:
update your status
see other people's status via their profile or the User Status List macro.
Our research tells us that this feature isn't widely used, and we believe that HipChat gives your team much
better ways to share their status.
We'll provide more information at the time of the Confluence 5.9 release. If you have questions or concerns,
CONFSERVER-38253 - Plans to remove status updates
please comment on this issue RESOLVED .
Documentation theme
In order to better focus our development efforts on a single theme, we plan to remove the Documentation theme
in Confluence 6.0.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 511
We know that many customers use the Documentation theme because they like to have a page tree in their
space sidebar. This has been available in the default theme for some time now, plus other great features like
sidebar shortcuts, JIRA links, and sticky table headers.
To help you switch to the more modern default theme, we've added some of your favorite documentation theme
features, including the ability to add:
a header and footer
custom content to the sidebar.
These new additions to the default theme are available in Confluence 5.9. As these fields will continue to use
wiki markup, you will be able to drop your existing wiki markup straight from the Documentation theme into the
default theme.
To help you switch themes we've put together a FAQ and step-by-step guide which covers everything from how
to turn on the default theme, find out which spaces are using the theme, and what to do if the Documentation
theme is the global theme for your whole site.
If you have any questions or concerns please comment on this issue
CONFSERVER-38256 - Plans to remove the documentation theme
RESOLVED .
This section announces the end of Atlassian support for certain databases for Confluence. End of support
means that Atlassian will not fix bugs related to the specified database past the support end date for your
version of Confluence.
The details are below. Please refer to the list of supported platforms for details of platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
Oracle 11.2
Notes:
Confluence 5.8 is the last version that will support the database versions listed above.
Confluence 5.8 and previously-released versions will continue to work with the database versions listed
above, however we will not fix bugs affecting these databases after the end-of-life date for your version of
Confluence.
No Confluence releases after 5.8.x will be tested with the databases listed above.
This section announces the end of Atlassian support for Tomcat 7.0.x for Confluence. As previously announced,
we now only support the version of Tomcat that is bundled with your version of Confluence.
End of support means that Atlassian will not fix bugs related to the specified version of Tomcat, past the support
end date for your version of Confluence. If you have questions or concerns regarding this announcement, please
email eol-announcement at atlassian dot com.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 512
Atlassian will end support for Internet Explorer 9 in the next major release after Confluence 5.8.x. End of support
means that Atlassian will not fix bugs related to Internet Explorer 9 past the support end date, except for security
related issues.
This change allows us to use more modern browser technologies to give you the best user experience in
Confluence. Check out the Supported Platforms page for the full list of supported browsers.
If you have questions or concerns regarding this announcement, please email eol-announcement at atlassian
dot com.
Confluence 5.8 will be the last major release that supports Internet Explorer 9
Confluence 5.8.x and earlier versions will continue to work on Internet Explorer 9
No Confluence releases after 5.8.x will be tested with Internet Explorer 9
This section announces the end of Atlassian support for Java 7 for Confluence. Please note that Oracle is
planning to stop providing public updates for JRE 7 in April 2015.
End of support means that Atlassian will not fix bugs related to the specified version of Java, past the support
end date for your version of Confluence. The details are below. Please refer to the list of supported platforms fo
r details of platform support for Confluence. If you have questions or concerns regarding this announcement,
please email eol-announcement at atlassian dot com.
Java 7 notes:
Confluence 5.7 is the last major version that will support Java 7. The Confluence 5.7.x bug-fix releases
will also continue to support Java 7.
Java 7 (JRE and JDK 1.7) will still be supported in Confluence 5.7.
Confluence 5.7.x and previously-released versions will continue to work with Java 7, but we will not fix
bugs affecting Java 7 after the end-of-life date for your version of Confluence.
Confluence 5.8 will not be tested with Java 7.
To help us to make Confluence a more robust and scalable application, we have decided to stop providing an
EAR/WAR distribution. This means that the only supported application server will be will be the version of
Tomcat that is bundled with each release.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 513
Confluence 5.6 will be the last Confluence release to provide an EAR/WAR edition.
Q: Do I need to use the installer?
No, the removal of the EAR/WAR distribution does not force you to use the installer. You can still use the
standalone distribution, which doesn't have an install script - it's just a copy of Tomcat with Confluence
configured inside it. Essentially it's a directory that you unpack and then run yourself.
Q: What if a security problem is found in the bundled version of Tomcat?
Our security team monitors vulnerabilities in all our dependencies, including Tomcat, and fixes continue to follow
our Security Bugfix Policy. If at any time you become aware of a vulnerability we've missed, please report it as
described in How to report a security issue.
If you have more questions or concerns regarding this announcement, please contact us at eol-announcemen
t at atlassian dot com.
This section announces the end of Atlassian support for certain databases for Confluence. End of support
means that Atlassian will not fix bugs related to the specified database past the support end date for your
version of Confluence.
The details are below. Please refer to the list of supported platforms for details of platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
PostgreSQL 8.4
PostgreSQL 9.0
With the release of Confluence 5.7
PostgreSQL 9.1
MySQL 5.1
Notes:
Confluence 5.6 is the last version that will support the database versions listed above.
Confluence 5.6 and previously-released versions will continue to work with the database versions listed
above, however we will not fix bugs affecting these databases after the end-of-life date for your version
of Confluence.
Confluence 5.7 has not been tested with the databases listed above.
This section announces the end of Atlassian support for Tomcat 6.0.x for Confluence.
End of support means that Atlassian will not fix bugs related to the specified version of Tomcat, past the
support end date for your version of Confluence. The details are below. Please refer to the list of supported
platforms for details of platform support for Confluence. If you have questions or concerns regarding this
announcement, please email eol-announcement at atlassian dot com.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 514
Confluence 5.5 is the last major version that will support Tomcat 6.0.x. The Confluence 5.5.x bug-fix
releases will also continue to support Tomcat 6.0.x.
Confluence 5.5.x and previously-released versions will continue to work with Tomcat 6.0.x. However, we
will not fix bugs affecting Tomcat 6.0.x after the end-of-life date for your version of Confluence.
Confluence 5.6 will not be tested with Tomcat 6.0.x.
This section announces the end of Atlassian support for certain databases for Confluence. End of support
means that Atlassian will not fix bugs related to the specified database past the support end date for your
version of Confluence.
The details are below. Please refer to the list of supported platforms for details of platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
To allow us to dedicate resources to providing the best experience on modern browsers, Confluence 5.5
will be the last release that supports Internet Explorer 8 (IE8). The reasons behind this decision are to
enable us to provide the best user experience to our customers, accelerate our pace of innovation and give
us the ability to utilize modern browser technologies.
End of support means that Atlassian will not perform any maintenance on Confluence related to IE8 after
the final release of Confluence 5.5.x, except for security related issues. In order to minimize the impact on
you and the way your company uses Confluence, we have provided this announcement as early as
possible, and hope that the subsequent 6 month period will give you adequate time to prepare for this
change without disruption.
Atlassian will continue to support Internet Explorer 9 (IE9) and Internet Explorer 10 (IE10) as well as the
latest versions of Chrome, Firefox and Safari. For further information, please refer to the Supported
Platforms page. If you have questions or concerns regarding this announcement, please email
eol-announcement at atlassian dot com.
This section announces the end of Atlassian support for certain databases for Confluence. End of support
means that Atlassian will not fix bugs related to the specified database past the support end date for your
version of Confluence.
The details are below. Please refer to the list of supported platforms for details of platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 515
This section announces the end of Atlassian support for Tomcat 5.5.x for Confluence. Please note: Apache
have announced that support for Apache Tomcat 5.5.x will end on 30 September 2012: End of life for Apache
Tomcat 5.5.x.
End of support means that Atlassian will not fix bugs related to the specified version of Tomcat, past the
support end date for your version of Confluence. The details are below. Please refer to the list of supported
platforms for details of platform support for Confluence. If you have questions or concerns regarding this
announcement, please email eol-announcement at atlassian dot com.
This section announces the end of Atlassian support for Java 6 for Confluence. Please note that Oracle has
announced the end of public updates for Java 6: Java SE 6 End of Public Updates Notice.
End of support means that Atlassian will not fix bugs related to the specified version of Java, past the support
end date for your version of Confluence. The details are below. Please refer to the list of supported platforms fo
r details of platform support for Confluence. If you have questions or concerns regarding this announcement,
please email eol-announcement at atlassian dot com.
Java 6 (JRE and JDK 1.6) When Confluence 5.0 is released, due in early 2013
Java 6 notes:
Confluence 4.3 is the last major version that will support Java 6. The Confluence 4.3.x bug-fix releases
will also continue to support Java 6.
Java 7 (JRE and JDK 1.7) will still be supported in Confluence 5.0.
Confluence 4.3.x and previously-released versions will continue to work with Java 6. However, we will
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 516
not fix bugs affecting Java 6 after the end-of-life date for your version of Confluence.
Confluence 5.0 will not be tested with Java 6.
This section announces the end of Atlassian support for certain databases for Confluence. End of support
means that Atlassian will not fix bugs related to the specified database past the support end date for your
version of Confluence.
The details are below. Please refer to the list of supported platforms for details of platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
This section announces the end of Atlassian support for certain databases for Confluence. End of support
means that Atlassian will not fix bugs related to the specified database past the support end date for your
version of Confluence.
The details are below. Please refer to the list of supported platforms for details of platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
DB2 notes:
Confluence 4.2 is the last version that will support DB2.
From Confluence 4.3, no versions of DB2 will be supported.
Confluence 4.2 and previously-released versions will continue to work with DB2. However, we will not fix
bugs affecting DB2 after the end-of-life date for your version of Confluence.
Confluence 4.3 will not be tested with DB2.
For help with moving from DB2 to a supported database, please refer to the list of supported databases
and the guide to migrating to another database.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 517
This section announces the end of Atlassian support for certain operating systems for Confluence. End of
support means that Atlassian will not fix bugs related to running Confluence server on that operating system
past the support end date.
We will stop supporting the following operating systems from Confluence 4.0, due in late 2011:
Mac OS X (as a Confluence server platform).
The details are below. Please refer to the list of supported platforms for details of platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
Mac OS X (as a Confluence server platform) When Confluence 4.0 releases, due in late 2011
Mac OS X Notes:
Atlassian intends to end support for Mac OS X (as a server platform) in Confluence 4.0 (due for
release in late 2011). Confluence 3.5 is the last version that will support Mac OS X.
The Sun/Oracle JDK/JRE 1.6 is the only JDK platform officially supported by Atlassian. This
means that Apple Mac OS X is not a supported operating system for the Confluence server, as
the Sun/Oracle JDK does not run on Mac OS X.
Accessing Confluence as a user from Mac OS X via a compatible web browser will still be
supported for the forseeable future.
This section announces the end of Atlassian support for certain database versions for Confluence. End of
support means that Atlassian will not fix bugs related to certain database versions past the support end date.
We will stop supporting the following database versions from Confluence 4.0, due in late 2011:
MySQL 5.0.
The details are below. Please refer to the list of supported platforms for details of platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
MySQL (version 5.0 only) When Confluence 4.0 releases, due in late 2011
MySQL Notes:
Atlassian intends to end support for MySQL 5.0 in Confluence 4.0 (due for release in the middle
of 2011). Confluence 3.5 is the last version that will support MySQL 5.0.
MySQL 5.1 will still be supported.
'Support End Date' means that Confluence 3.5 and previously released versions will continue to
work with MySQL 5.0. However, we will not fix bugs affecting MySQL 5.0 past the support end
date.
Confluence 4.0 will not be tested with MySQL 5.0.
This section announces the end of Atlassian support for certain web browser versions for Confluence. End of
support means that Atlassian will not fix bugs related to certain web browser versions past the support end
date.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 518
We will stop supporting the following web browser versions from Confluence 4.0, late middle of 2011:
Microsoft Internet Explorer 7 (IE7).
Safari 4.
Firefox 3.5.
The details are below. Please refer to the list of supported platforms for details of platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
Microsoft Internet Explorer (version 7 only) When Confluence 4.0 releases, late the middle of
2011
Safari (version 4 only) When Confluence 4.0 releases, due in late of 2011
Firefox (version 3.5 only) When Confluence 4.0 releases, due in late of 2011
This section announces the end of Atlassian support for certain database versions for Confluence. End of
support means that Atlassian will not fix bugs related to certain database versions past the support end date.
We will stop supporting the following database versions:
From Confluence 3.5, due in the first half of 2011, Confluence will no longer support PostgreSQL 8.1.
Note, PostgreSQL 8.2 and PostgreSQL 8.4 will still be supported.
The details are below. Please refer to the Supported Platforms for more details regarding platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 519
PostgreSQL (version 8.1 only) When Confluence 3.5 releases, due in the first half
of 2011
This section announces the end of Atlassian support for certain web browser versions for Confluence. End of
support means that Atlassian will not fix bugs related to certain web browser versions past the support end
date.
We will stop supporting the following web browser versions:
From Confluence 3.5, due in the first half of 2011, Confluence will no longer support Firefox 3.0.
Note, Firefox 3.5 and Firefox 3.6 will still be supported.
The details are below. Please refer to the Supported Platforms for more details regarding platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
Firefox (version 3.0 only) When Confluence 3.5 releases, due in the first half
of 2011
This section announces the end of Atlassian support for certain database versions for Confluence. End of
support means that Atlassian will not fix bugs related to certain database versions past the support end date.
We will stop supporting the following database versions:
From Confluence 3.4, due in the second half of 2010, Confluence will no longer support Oracle 10g (i.e.
Oracle 10.1 and Oracle 10.2).
Note, Oracle 11g (i.e. Oracle 11.1 and Oracle 11.2) will still be supported.
We have made these decisions in line with Oracle's decision to stop support for Oracle 10g, as per the "Oracle
Database (RDBMS) Releases Support Status Summary [ID 161818.1]" article on the Oracle Support site (note,
you will need an Oracle Support account to find and view the article). This also will reduce the testing time
required for each release and help us speed up our ability to deliver market-driven features. We are committed
to helping our customers understand this decision and assist them in upgrading to Oracle 11g if needed.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 520
The details are below. Please refer to the Supported Platforms for more details regarding platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
Oracle (version 10.1 and 10.2 only) When Confluence 3.4 releases, due in the second
half of 2010
This section announces the end of Atlassian support for certain web browser versions for Confluence. End of
support means that Atlassian will not fix bugs related to certain web browser versions past the support end
date.
We will stop supporting the following web browser versions:
From Confluence 3.4, due in the second half of 2010, Confluence will no longer support Safari 3 or
Safari 3.1.
Note, Safari 4 will still be supported.
The details are below. Please refer to the Supported Platforms for more details regarding platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
Safari (version 3 and 3.1 only) When Confluence 3.4 releases, due in the second
half of 2010
This section announces the end of Atlassian support for certain database versions for Confluence. End of
support means that Atlassian will not fix bugs related to certain database versions past the support end date.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 521
DB2 (version 8.2 only) When Confluence 3.3 releases, due Q3 2010
This section announces the end of Atlassian support for certain application servers for Confluence. End of
support means that Atlassian will not fix bugs related to certain application servers past the support end date.
We will stop supporting the following application servers:
From Confluence 3.2, due late Q1 2010, Confluence will no longer support JBoss application servers.
From Confluence 3.3, due in Q3 2010, Confluence will no longer support Oracle WebLogic, IBM
WebSphere or Caucho Resin.
We are reducing our application server platform support to reduce the amount of testing time and help us
speed up our ability to deliver market-driven features. We are committed to helping our customers understand
this decision and assist them in migrating to Tomcat, our supported application server.
The details are below. Please refer to the Supported Platforms for more details regarding platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
Caucho Resin 3.0, 3.1.6, 3.1.7 When Confluence 3.3 releases, due Q3 2010
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 522
We have chosen to standardize on Tomcat, because it is the most widely used application server in our user
population. It is fast, robust, secure, well-documented, easy to operate, open source, and has a huge
community driving improvements. It is the de facto industry standard, with several companies available that
specialize in providing enterprise grade support contracts for it, ranging from customizations to 24/7 support.
This section announces the end of Atlassian support for certain Java Platforms for Confluence.
We will stop supporting the following Java Platforms:
From Confluence 3.3, due Q3 2010, support for Java Platform 5 (JDK/JRE 1.5) will end.
We are ending support for Java Platform 5, in line with the Java SE Support Roadmap (i.e. "End of Service
Life" for Java Platform 5 dated October 30, 2009). We are committed to helping our customers understand this
decision and assist them in updating to Java Platform 6, our supported Java Platform.
The details are below. Please refer to the Supported Platforms for more details regarding platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
Java Platform 5 (JDK/JRE 1.5) When Confluence 3.3 releases, due Q3 2010
This section announces the end of Atlassian support for certain web browsers for Confluence.
We will stop supporting older versions of web browsers as follows:
From Confluence 3.2, due late Q1 2010, support for Firefox 2 and Safari 2 will end.
From 13 July 2010, in line with Microsoft's Support Lifecycle policy, support for IE6 will end.
The details are below. Please refer to the Supported Platforms for more details regarding platform support for
Confluence. If you have questions or concerns regarding this announcement, please email eol-announcemen
t at atlassian dot com.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 523
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 524
To transfer Confluence to another server you will copy the home and install folders straight into an identical
external database and user management setup. If your new server is using a different operating system there
may be some additional changes at step 4.
1. Run the Confluence installer on your new server
2. Shut down Confluence on both your old and new servers
3. If you're using Oracle or MySQL, copy the drivers from your old server to the new one
4. Delete the contents of the home directory on your new Confluence server, then copy in the contents of
the home directory from your old Confluence server.
5. Make any additional changes required for your environment.
<property
name="attachments.dir">${confluenceHome}/attachments</property
>
<property
name="lucene.index.dir">${localHome}/index</property>
<property
name="webwork.multipart.saveDir">${localHome}/temp</property>
If you're migrating from Linux to Windows, you'll need to replace the forward slashes with
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 525
<property
name="attachments.dir">${confluenceHome}\attachments</property
>
<property
name="lucene.index.dir">${localHome}\index</property>
<property
name="webwork.multipart.saveDir">${localHome}\temp</property>
6. Copy the <confluence-install>/conf/server.xml file from your old server to the same
location on your new server
7. If you use a data source, ensure the data source points to the new database. See Configuring a
datasource connection.
8. Start Confluence, then head to General configuration > License Details to add your license key
We strongly recommend you perform a rebuild of your content indices after performing a migration, to
ensure Confluence search works as expected.
If you have already set up an evaluation Confluence site, you can skip this step.
Below is a summary of the installation and setup procedure, focusing on the choice of database.
To install Confluence:
1. Download the installer from the Confluence download site.
Note: If you are using a Mac or another unsupported platform for your evaluation, you will need to
install from a zip file. Details are in the full installation guide.
2. Run the installer and choose the express or custom installation. If you are not sure, choose Express
Install.
The express option will install Confluence with default settings.
The custom option allows you to choose the Confluence installation directory, home (data)
directory, ports and other options.
3. When prompted, choose the option to open Confluence in your browser, where you can complete
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 526
3.
the setup.
To set up Confluence, including the database:
1. Follow the prompts in the browser-based setup wizard, to get your Confluence license.
2. Choose the Trial or Production installation type. If you are not sure, choose Trial Installation.
The Trial option will install Confluence with default settings, including the embedded database
which is automatically set up for you. You'll need to migrate to an external database before
running Confluence in a production environment (more info below).
If you have finished evaluating Confluence, you can skip this step.
Depending on your choices during the Confluence setup, your evaluation site may include sample content.
The example pages, blog posts and attachments are in the 'Demonstration space'. This space is present if:
You chose the 'Trial Installation' during setup.
Or you chose the 'Production Installation', then chose to include the 'Example Site'.
You can update the sample content, and create more of your own. You can also invite people to join you on
the site.
When you move to a production site, you can choose to copy the content and users to the new site.
To create content in your evaluation site:
Choose Spaces > Create Space to add a space, which is like a library of pages.
Choose Create to add pages and blog posts.
To add users: Go to
If you have finished evaluating Confluence, you can skip this step.
Apps, also called plugins or add-ons, provide additional features that you can install into your Confluence
site. Some of them are provided free of charge. Many of the commercial apps are available free for an
evaluation period.
You can browse and download app on the Atlassian Marketplace. You can also find apps via the Confluence
user interface, which interacts with the Atlassian Marketplace for you.
To find useful apps via the Confluence user interface:
1. Go to
When you are ready to move from an evaluation site to a production site, you need to migrate to a
production-ready database. This involves installing a new Confluence site with a new database, and
instructing Confluence to copy the data from your evaluation site to the new site. You will also need to check
some important configuration settings, and define your backup strategy. The instructions below lead you
through all the steps required.
Migrating your data to a production database:
1. Choose a database carefully, with a focus on reliability and backups. See our list of supported
databases. If you are unsure which one to choose, we recommend PostgreSQL.
2. Install a new database and a new Confluence site, by following our guide to migrating to another
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 527
2.
database. The guide will lead you through the following steps:
Setting up your database server.
Adding a Confluence database (schema) to your database server.
Installing a new, production-ready Confluence site.
Copying your Confluence data from your evaluation site to your new production site.
Setting important configuration options on your production site:
Set the base URL. See Configuring the Server Base URL.
Make sure you have configured an email server. See Configuring a Server for Outgoing Mail.
Decide on proxy setup and other settings that determine where Confluence fits into your network. See
Web Server Configuration.
Consider setting up a secure connection via SSL. See Running Confluence Over SSL or HTTPS.
Read our guidelines on security. See Best Practices for Configuring Confluence Security.
Decide whether you will manage your users in Confluence or connect to an external LDAP directory.
See Configuring User Directories.
Decide whether you want to allow public (anonymous) access to your site. See Setting Up Public
Access.
Set up your permission scheme. See Permissions and restrictions.
Connect Confluence to Jira applications such as Jira Software or Jira Service Desk or other
applications. See Linking to Another Application.
Defining your backup strategy:
By default, Confluence will create daily XML backups of your content and user data. This is suitable when
you are evaluating Confluence. When you move to a production site, you need more robust backup
procedures and technologies. See Production Backup Strategy.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 528
2.
access to all your applications (e.g. Confluence and Jira),
their administration features and site administration, which
includes managing users and bills.
Pre-migration
Decide to migrate
Keep in mind while you're evaluating that while Atlassian’s cloud and
server products provide the same benefits, they can differ in features
and functionality. In some cases, you may discover that the cloud
version of a product includes functionality that is fulfilled through an
app on server. You may also have in-house or custom-built apps to
consider.
a. App data is not typically included when migrating from
Confluence Server to Confluence Cloud. Some apps do have
the capability to export and import their data but you'll need to
check with the app developers or their documentation to
confirm if this is possible.
b. If you do need to map third-party apps to Confluence Cloud,
first check if there is a cloud equivalent of your server app in
our Marketplace. If there is a cloud equivalent, your next step
would be to check with the app developer to see if it stores any
data. Not all apps store data. If it does, you'll need to work with
the app vendor to understand your data migration options.
Atlassian doesn't directly handle migrating data generated
from third-party server apps to cloud apps. If there's no
equivalent and the app stores data, you should still contact the
vendor to see if there's a way to export the data.
3. Check costs: There's no cost to migrate to Confluence Cloud
besides the cost of your Confluence Cloud subscription. However,
you'll still want to assess your payment options and overall costs. A
few things to keep in mind:
a. Unlike Confluence Server, Confluence Cloud is sold as a
subscription, not a perpetual license. You can pay either
monthly or annually, with a discount for paying annually. Check
out Confluence Licensing to decide which payment schedule is
best for your team and estimate your baseline costs, or try our
Atlassian Cloud pricing calculator.
b. If you're planning on using apps from the Atlassian
Marketplace in Confluence Cloud, remember to factor these
into your cost considerations. The Atlassian Cloud pricing
calculator can help you calculate your total monthly or annual
cost including apps.
c. Note that your existing Confluence Server license and
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 529
c.
Prepare to migrate
Now that you've decided to migrate, let's figure out how to get there.
1. Assemble your team: Migrating from Confluence Server to Cloud
will have an impact on your users' experience and workflows, as well
as various stakeholders throughout your organization. Depending on
the size of your organization and number of users, a migration may
require a fully fledged project with defined roles and responsibilities
across teams. As early as possible, you should communicate with
individuals and stakeholders who are interested and impacted by a
move to Confluence Cloud. Where possible, recruit and enlist these
people to be a part of the process.
2. Communicate early and often: Beyond informing your organization
about the migration schedule, share your migration plan with team
members. Determine how you'll alert users about any issues or errors
that arise. At this stage, your migration communication plan should
cover things like:
a. When will the migration occur?
b. What downtime can users expect?
c. Ask people to avoid changing anything during the transition.
d. What will happen to the old site after migrating? Will it still be
accessible or readable?
3. Prepare your Confluence Server site: Evaluate your current
environment to determine if you need to make any changes before
migrating your data.
a. To use the Cloud Migration Assistant for Confluence, you'll
need to upgrade your Confluence Server to version 5.10 or
later before migrating.
b. You may also want to take this opportunity to clean up or
remove any unnecessary data.
4. Review your anonymous access settings:
a. If you don't want to allow anonymous users to access to your
Confluence Cloud site without logging in, you'll need to check
that anonymous access isn't enabled in server before
migrating. Learn more at Setting Up Public Access.
b. If you do want to allow anonymous access to some spaces,
but not others, you need to first allow anonymous access in
the global permissions for Confluence Cloud, and then review
the space permissions for each individual space to determine
whether they allow anonymous access. Disabling anonymous
access in the Confluence Cloud global permissions will disable
anonymous access at the space level as well.
5. Back up your data: Back up your Confluence Server data before
migrating to Confluence Cloud. If data is present in your Confluence
Cloud site, back it up for safekeeping as well.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 530
Additional considerations
Migration
After you have the necessary prerequisites in place and have completed the
tasks associated with the pre-migration phase, you're ready to perform the
migration. Follow the steps outlined below to migrate.
1. Run a test migration: We recommend performing a trial run in a
testing or staging site to ensure that your site's integrations,
functionality, and performance are working as expected and the
migration runs smoothly. You can do this using a free Confluence
Cloud trial. The test migration will help you:
a. Identify possible bugs and the steps needed to resolve before
the actual migration.
b. Establish a clearer timeline for your live migration, including
any expected downtime.
c. Validate the data before moving to Confluence Cloud.
2. Build a timeline: Identifying an ideal migration window can mean the
difference between happy and frustrated users. Determine how much
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence
2. 6.15 Documentation 531
Common scenarios
Not all migrations are quite so straightforward. Below are some of the
common migration scenarios you may encounter, and guidance on how to
approach each.
Merging server sites
If you need to merge multiple Confluence Server sites, just install the Cloud
Migration Assistant for Confluence on all server instances and move them
separately to the Confluence Cloud site.
Keep in mind that every space in your Confluence Cloud site needs to have
a unique space key. If a space key already exists in your Confluence Cloud
site, trying to migrate a space with the same space key will cause that
individual spaces' migration to fail.
If you've run into a problem during your migration, we're here to help. You
can start by searching for known issues in our public issue tracker. There,
you can find information about some of the common issues we see with Con
fluence migrations, including their status and suggested workarounds.
Some known issues include the following:
If you've run into a different issue or need help to move forward with your
migration, you can contact our Technical Support team or reach out to our A
tlassian Community for advice.
Post-migration
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 532
Now that you're a cloud admin, you'll have immediate access to our latest
features and bug fixes. Installs, upgrades, and patches are managed
seamlessly by Atlassian, so you can relax on your weekends.
To keep track of major changes that affect all users of the Confluence Cloud
products, follow the Atlassian Cloud Documentation blog. This includes new
features, bug fixes, and other changes across all Atlassian Cloud products,
for example, updates to the meeting notes templates or the ability to drag
and drop spaces for easy space reorganization in Confluence Cloud.
Additional support
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 533
Need more help with strategy, best practices, or planning questions? Our mi
gration planning specialists can help with planning your migration from Jira
Server to Jira Cloud.
Technical question or issue? Get in touch with our Technical Support team.
Looking for peer advice? Ask the Atlassian Community.
The Cloud Migration Assistant for Confluence is an app that helps you easily move content, users, and groups
from Confluence Server to Confluence Cloud. Built and maintained by Atlassian, the app is free to install and
use.
Once installed, you can choose what you want to move to the Cloud, start migrating at your convenience, and
monitor the progress of everything throughout the migration process.
Check out the Cloud Migration Center and FAQs to find out everything you need to know before
migrating. You can also use our helpful guide to plan your migration from start to finish.
Pre-migration checklist
You'll need a Confluence Cloud site set up before migrating. If you haven’t already set one up,
start a free 7-day trial.
Your Confluence Server site will need to be version 5.10 or later to migrate to cloud. If you're
running an earlier version, you'll need to upgrade it first.
Check that you have System Administrator global permissions in Confluence Server, and Site
Administrator permissions in your destination cloud site.
Before you run a migration plan, we recommend backing up your current Confluence Server site.
If your destination cloud site has existing data, back up your Confluence Cloud site as well.
This tool does not migrate any app data. You'll need to check with the app developers to confirm
whether you are able to move app data across. You can check what apps you're using at my.atla
ssian.com.
If you use a third-party user management system, you'll need to check that it is compatible with At
lassian Access.
Confluence Data Center
This app is not compatible with Confluence Data Center.
You can reduce the risk of running into issues, or the migration failing, if you conduct some manual checks in
your server instance and cloud site.
Groups
Make sure that there are no groups already in your cloud site with the same name as groups from your
server site, unless you are intentionally trying to merge them.
If we find a group in your server instance that has the same name a group in your cloud site (either Jira or
Confluence), we will merge the users from the server group into the cloud group. The server group users will
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 534
inherit the permissions of the cloud group. This also applies to groups with Jira product access that have the
same name as a Confluence group you are migrating. This is because all users and groups are managed in a
central location in your cloud site.
If you don’t want this to happen, you will need to make sure all groups across server and cloud have unique
names before running your migration plan.
The following generic groups are blacklisted and will not be migrated at
all: "site-admins", "system-administrators", "atlassian-addons", "atlassian-addons-admin". Users from
within these groups will be migrated, you will then need to manually add them to these groups after
migration.
Space keys
Your migration could also fail if a space from your server instance has the same space key as a space in your
cloud site. This is because every space in Confluence Cloud must have a unique space key.
If the migration assistant finds a conflict, the space will not migrate. In this case some spaces may still migrate,
but the overall plan will fail.
Before migrating, check that there are no competing space keys between your Server and Cloud sites. If you
find a conflict you may need to use a workaround to change the space key, or you can choose not to migrate
that space in step 3.
If a space key conflict is caused by a previous test migration you can reset your cloud site before migrating.
1. In Confluence Server, go to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 535
This step evaluates your Confluence Server instance. It will give you an overview of the number of users,
groups, spaces, pages, and attachments that currently exist.
It will also check for any user account errors, such as invalid or duplicate email addresses. You'll need to resolve
these errors before you can migrate.
You may be asked to update the Cloud Migration Assistance for Confluence. You will need to do this before
running any migrations.
If you choose to migrate spaces and no users, some user data will be migrated along with the spaces.
This is to make sure that mentions and comments stay active. These users will appear in your cloud site
but will not be granted product access, and will not be added to your license.
If you choose to migrate users later, their product access will be updated.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 536
There are a few things to be aware of when migrating users and groups from your server instance to a cloud
site:
Confluence Cloud is subscription-based and billed on a per-user basis. If you plan to migrate your users,
make sure you check the licensing options or calculate the cost with our pricing calculator.
If you use an external user management system, we recommend syncing it with your local directory
before migrating.
All users must have a unique and valid email address before you will be able to migrate. The process for
fixing any invalid email errors will depend on where your user data is stored.
Users with disabled status will be migrated as active but without any product access. This means they
will not be counted as active Confluence users for billing purposes.
If we find a group in your server instance that has the same name a group in your cloud site, we will
merge the users from the server group into the cloud group.
Global settings and global site permissions are not migrated with this tool. You will need to set
these manually after migration.
If you have users that already exist in your destination cloud site and you choose to migrate users with this app,
you will need to consider the following:
If a user has product access in cloud, but has disabled status in your server instance, they will
continue to have product access in cloud after migration.
If a user does not have product access in cloud, but is enabled in your server instance, they will be
granted product access through the migration process.
If we find a group in your server instance that has the same name a group in your cloud site, we will
merge the users from the server group into the cloud group.
When migrating users and groups, be sure to check for the issues listed above. Some users may be
granted escalated access.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 537
keys that already exist in your Confluence Cloud destination site. Make sure you check for conflicting space keys
in step 1.
When you've chosen all your spaces, select Add items to plan.
Add a name for your migration plan in the Migration plan name field. This name helps you keep track of your
plans, for example, differentiating between a user migration, a test migration, and a final production migration.
1. Select Choose cloud site and follow the prompts to log in to your Atlassian Cloud account as a Site
Admin (if you're not already logged in).
2. The sites associated with your Atlassian Cloud account will be listed in the Migration destination drop-d
own menu. If the current account is not correct, click Change account to log in with a different account.
3. Select your site from the Migration destination field then select Confirm.
4. When you're ready, select Review plan.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 538
You won't be able to run your migration until all user email errors are resolved. This is because these
errors will cause the migration to fail.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 539
Your saved migration plan will be listed on the migration dashboard, where you can view its details or run it. You
can also check the status of a plan, monitor the progress of a migration plan that is currently running, stop a plan
that's currently running, or create a new plan.
You can create as many plans as you need. At this time, migration plans can't be edited or deleted, so if you
create a plan that can't be used, just create a new plan to continue your migration to the Cloud.
STOPPED Your migration plan has been stopped. Once stopped, it can't be resumed. Any step already in
progress will first need to finish before the plan is shown as fully stopped. Some users, groups and spaces may
already have been migrated to your Confluence Cloud site.
FAILED We were unable to complete the migration plan. This might be because a space key already
exists in the destination site, or the migration hit an unexpected error. Some users, groups and spaces may
already have been migrated to your Confluence Cloud site.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 540
Depending on the type of migration, there may be some things you need to do once your migration is finished.
Spaces
We have a number of channels available to help you with your migration. For more Confluence migration
planning information and FAQs, visit the Atlassian Cloud Migration Center.
Need more support with strategy, best practices, or planning questions? Our migration planning specialists can
help with planning your migration from Jira Server to Jira Cloud.
If you have technical question or issues, get in touch with our Technical Support team.
Looking for peer advice? Ask the Atlassian Community.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 541
Leave a review
Your feedback is invaluable in helping us improve our products. Please take a moment to let us know what you
think by leaving a review of the Cloud Migration Assistant for Confluence on the Atlassian Marketplace.
You can migrate from Confluence Cloud to Confluence Server 6.0 or later only. You can't import Cloud data
(either the whole site or individual spaces) into any earlier versions of Confluence. We recommend installing
the latest version of Confluence Server.
Confluence Cloud is typically ahead of Confluence Server, which means that some features may not be
available after you've moved to Confluence Server.
Migration steps
Please note the following about your new Confluence Server site.
If you're unable to remove the Jira Cloud application link from your Confluence after the
import, you'll need to remove those references directly from the Confluence database as per t
his guide.
The User Management section might be missing due to
CONFSERVER-35177 - User and Group Links Missing from Admin Console After Migrating From Cloud
to Server GATHERING IMPACT
Follow the workaround notes on the issue to enable the feature again.
If your Confluence Cloud site has macros that depend on the Application Links back to a Jira
Cloud instance, and you are migrating Jira as well, these references will need to be updated
to work properly as per
APL-1144 - Allow relocation of application links even if the target application is still accessible.
TRIAGE
You can address that by either editing the XML prior to import, or by bulk editing those
references in Confluence database as per this guide .
If you experience problems loading pages after the import, head to
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 542
> General Configuration to check your base URL as the port may have changed.
If you find that some of your users' favorites (pages saved for later) are missing due to
CONFSERVER-36348 - Favourites missing after importing
GATHERING IMPACT . See How to
restore missing favorites after import from XML for more information.
Confluence spaces are not automatically created when you create a new Jira project.
If you are unable to create or edit pages after migrating from Cloud to Confluence 5.10, follow
the workaround in this issue to disable the specified dark features
CONFSERVER-44335 - Edit/Create pages is not working when migrate from Cloud to Server
CLOSED .
This issue doesn't affect Confluence 6.x versions.
Marketplace apps
After migrating your data you will need to install any compatible apps, such as Questions and Team
Calendars.
Please note that your Questions data will not be included in the migration.
Some third party apps are only available for Cloud, and will no longer be available after you migrate. You can
check whether your essential apps are available for Confluence Server, Cloud or both on Atlassian
Marketplace.
Database considerations
If you are uncertain about which database to choose for your new Confluence installation, we recommend
PostgreSQL - see Database Setup for PostgreSQL. The Confluence Cloud site runs on PostgreSQL, so
there should be no compatibility issues.
If you choose another supported database, contact Support if you encounter any compatibility issues.
Confluence license
You will need a new license to migrate to Confluence Server. Your existing Confluence Cloud license cannot
be used. You can get a new license at https://my.atlassian.com. You may also need new licenses for any
paid Marketplace apps.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 543
The load balancer distributes The cluster of Data Center nodes Data Center supports the same
requests from your users to the share the workload of incoming databases that are supported for
cluster nodes. If a cluster node requests. Failure of a cluster Confluence Server. It also
goes down, the load balancer node causes virtually no loss of supports any shared file system,
immediately detects the failure availability for users, because which stores: import/export files,
and automatically directs requests are immediately directed plugins, Logos directory, shared
requests to the other nodes within to other nodes. All nodes are caches, and any data directory
seconds. You can use any load active and process requests. which includes attachments,
balancer that supports session avatars and icons.
affinity.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 544
The basics
Confluence Data Center enables you to set up Confluence in a cluster similar to the one pictured below with:
Multiple server nodes that run the Confluence application, and other required components.
A shared file system that stores attachments, and other shared files.
A database that all nodes read and write to.
A load balancer to evenly direct requests to each node.
All Confluence nodes are active and process requests. A user will access the same Confluence node for all
requests until their session times out, they log out, or a node is removed from the cluster.
Licensing
Your Data Center license is based on the number of users in your cluster, rather than the number of nodes.
You can monitor the available license seats in the License page.
If you wanted to automate this process (for example to send alerts when you are nearing full allocation) you
can use the REST API.
REST API...
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 545
The following GET requests require an authenticated user with system administrator permissions. The
requests return JSON.
Your Confluence license determines which features and infrastructure choices are available. Head to Conflue
nce Server and Data Center feature comparison for a full run down of the differences between a Server
license and a Data Center license.
Home directories
logs attachments
caches avatars / profile pictures
Lucene indexes icons
configuration files export files
plugins import files
plugins
If you are currently storing attachments in your database you can continue to do so, but this is not available
for new installations.
Caching
Confluence uses a distributed cache that is managed using Hazelcast. Data is evenly partitioned across all
the Confluence nodes in a cluster, instead of being replicated on each node. This allows for better horizontal
scalability, and requires less storage and processing power than a fully replicated cache.
Because of this caching solution, to minimize latency, your nodes should be located in the same physical
location.
Indexes
A full copy of the Confluence indexes are stored on each Confluence node individually. A journal service
keeps each index in synch.
When you first set up your cluster, you will copy the local home directory, including the indexes, from the first
node to each new node.
When adding a new Confluence node to an existing cluster, you will copy the local home directory of an
existing node to the new node. When you start the new node, Confluence will check if the index is current,
and if not, request a recovery snapshot of the index from either the shared home directory, or a running node
(with a matching build number) and extract it into the index directory before continuing the start up process. If
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 546
the snapshot can't be generated or is not received by the new node in time, existing index files will be
removed, and Confluence will perform a full re-index.
If a Confluence node is disconnected from the cluster for a short amount of time (hours), it will be able to use
the journal service to bring its copy of the index up-to-date when it rejoins the cluster. If a node is down for a
significant amount of time (days) its Lucene index will have become stale, and it will request a recovery
snapshot from an existing node as part of the node startup process.
If you suspect there is a problem with the index on all nodes, you can temporarily disable index recovery on
one node, rebuild the index on that node, then copy the new index over to each remaining node.
The ClusterSafetyJob scheduled task runs every 30 seconds in Confluence. In a cluster, this job is run on
one Confluence node only. The scheduled task operates on a safety number – a randomly generated
number that is stored both in the database and in the distributed cache used across the cluster. The
ClusterSafetyJob compares the value in the database with the one in the cache, and if the value differs,
Confluence will shut the node down - this is known as cluster split-brain. This safety mechanism is used to
ensure your cluster nodes cannot get into an inconsistent state.
If cluster split-brain does occur, you need to ensure proper network connectivity between the clustered
nodes. Most likely multicast traffic is being blocked or not routed correctly.
This mechanism also exists in standalone Confluence.
By changing how often the cluster safety scheduled job runs and the duration of the Hazelcast heartbeat
(which controls how long a node can be out of communication before it's removed from the cluster) you can
fine tune the balance between uptime and data integrity in your cluster. In most cases the default values will
be appropriate, but there are some circumstances where you may decide to trade off data integrity for
increased uptime for example.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 547
To find out how to change the cluster safety scheduled job, see Scheduled Jobs.
You can change the Hazelcast heartbeat default via the confluence.cluster.hazelcast.max.no.
heartbeat.seconds system property. See Configuring System Properties.
Where an action must only run on one node, for example a scheduled job or sending daily email notifications,
Confluence uses a cluster lock to ensure the action is only performed on one node.
Similarly, some actions need to be performed on one node, and then published to others. Event handling
ensures that Confluence only publishes cluster events when the current transaction is committed and
complete. This is to ensure that any data stored in the database will be available to other instances in the
cluster when the event is received and processed. Event broadcasting is done only for certain events, like
enabling or disabling an app.
When configuring your cluster nodes you can either supply the IP address of each cluster node, or a
multicast address.
If you're using multicast:
Confluence will broadcast a join request on the multicast network address. Confluence must be able to open
a UDP port on this multicast address, or it won't be able to find the other cluster nodes. Once the nodes are
discovered, each responds with a unicast (normal) IP address and port where it can be contacted for cache
updates. Confluence must be able to open a UDP port for regular communication with the other nodes.
A multicast address can be auto-generated from the cluster name, or you can enter your own, during the
set-up of the first node.
The choice of hardware and infrastructure is up to you. Below are some areas to think about when planning
your hardware and infrastructure requirements.
If you plan to run Confluence Data Center on AWS, a Quick Start is available to help you deploy Confluence
Data Center in a new or existing Virtual Private Cloud (VPC). You'll get your Confluence and Synchrony
nodes, Amazon RDS PostgreSQL database and application load balancer all configured and ready to use in
minutes. If you're new to AWS, the step-by-step Quick Start Guide will assist you through the whole process.
Confluence can only be deployed in a region that supports Amazon Elastic File System (EFS). See Running
Confluence Data Center in AWS for more information.
It is worth noting that if you deploy Confluence using the Quick Start, it will use the Java Runtime Engine
(JRE) that is bundled with Confluence (/opt/atlassian/confluence/jre/), and not the JRE that is installed on the
EC2 instances (/usr/lib/jvm/jre/).
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 548
Server requirements
You should not run additional applications (other than core operating system services) on the same servers
as Confluence. Running Confluence, Jira and Bamboo on a dedicated Atlassian software server works well
for small installations but is discouraged when running at scale.
Confluence Data Center can be run successfully on virtual machines. If plan to use multicast, you can't run
Confluence Data Center in Amazon Web Services (AWS) environments as AWS doesn't support multicast
traffic.
Cluster nodes
Your Data Center license does not restrict the number of nodes in your cluster. We have tested the
performance and stability with up to 4 nodes.
While each node does not need to be identical, but for consistent performance we recommend they are as
close as possible. All cluster nodes must:
be located in the same data center
run the same Confluence version (for Confluence nodes) or the same Synchrony version (for
Synchrony nodes)
have the same OS, Java and application server version
have the same memory configuration (both the JVM and the physical memory) (recommended)
be configured with the same time zone (and keep the current time synchronized). Using ntpd or a
similar service is a good way to ensure this.
You must ensure the clocks on your nodes don't diverge, as it can result in a range of problems with
your cluster.
Memory requirements
Confluence nodes
We recommend that each Confluence node has a minimum of 10GB of RAM. A high number of concurrent
users means that a lot of RAM will be consumed.
Here's some examples of how memory may be allocated on different sized machines:
The maximum heap (-Xmx) for the Confluence application is set in the setenv.sh or setenv.bat file. The
default should be increased for Data Center. We recommend keeping the minimum (Xms) and maximum
(Xmx) heap the same value.
The external process pool is used to externalise memory intensive tasks, to minimise the impact on individual
Confluence nodes. The processes are managed by Confluence. The maximum heap for each process
(sandbox) (-Xmx), and number of processes in the pool, is set using system properties. In most cases the
default settings will be adequate, and you don't need to do anything.
Synchrony is required for collaborative editing. By default, it is managed by Confluence, but you can choose
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 549
to run Synchrony in its own cluster. See Possible Confluence and Synchrony Configurations for more
information on the choices available.
If you do choose to run your own Synchrony cluster, we recommend allowing 2GB memory for standalone
Synchrony. Here's an example of how memory could be allocated on a dedicated Synchrony node.
Database
The most important requirement for the cluster database is that it have sufficient connections available to
support the number of nodes.
For example, if:
each Confluence node has a maximum pool size of 20 connections
each Synchrony node has a maximum pool size of 15 connections (the default)
you plan to run 3 Confluence nodes and 3 Synchrony nodes
your database server must allow at least 105 connections to the Confluence database. In practice, you may
require more than the minimum for debugging or administrative purposes.
You should also ensure your intended database is listed in the current Supported Platforms. The load on an
average cluster solution is higher than on a standalone installation, so it is crucial to use the a supported
database.
You must also use a supported database driver. Collaborative editing will fail with an error if you're using an
unsupported or custom JDBC driver (or driverClassName in the case of a JNDI datasource connection).
See Database JDBC Drivers for the list of drivers we support.
All Confluence cluster nodes must have access to a shared directory in the same path. NFS and SMB/CIFS
shares are supported as the locations of the shared directory. As this directory will contain large amount of
data (including attachments and backups) it should be generously sized, and you should have a plan for how
to increase the available disk space when required.
Load balancers
We suggest using the load balancer you are most familiar with. The load balancer needs to support ‘session
affinity’ and WebSockets. This is required for both Confluence and Synchrony. If you're deploying on AWS
you'll need to use an Application Load Balancer (ALB).
Here are some recommendations when configuring your load balancer:
Queue requests at the load balancer. By making sure the maximum number requests served to a
node does not exceed the total number of http threads that Tomcat can accept, you can avoid
overwhelming a node with more requests than it can handle. You can check the maxThreads in <ins
tall-directory>/conf/server.xml.
Don't replay failed idempotent requests on other nodes, as this can propagate problems across all
your nodes very quickly.
Using least connections as the load balancing method, rather than round robin, can better balance the
load when a node joins the cluster or rejoins after being removed.
Many load balancers require a URL to constantly check the health of their backends in order to automatically
remove them from the pool. It's important to use a stable and fast URL for this, but lightweight enough to not
consume unnecessary resources. The following URL returns Confluence's status and can be used for this
purpose.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 550
Here are some recommendations, when setting up monitoring, that can help a node survive small problems,
such as a long GC pause:
Wait for two consecutive failures before removing a node.
Allow existing connections to the node to finish, for say 30 seconds, before the node is removed from
the pool.
Network adapters
Use separate network adapters for communication between servers. Cluster nodes should have a separate
physical network (i.e. separate NICs) for inter-server communication. This is the best way to get the cluster to
run fast and reliably. Performance problems are likely to occur if you connect cluster nodes via a network that
has lots of other data streaming through it.
Collaborative editing in Confluence 6.0 and later is powered by Synchrony, which runs as a seperate
process.
If you have a Confluence Data Center license, two methods are available for running Synchrony:
managed by Confluence (recommended)
Confluence will automatically launch a Synchrony process on the same node, and manage it for you.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 551
Confluence Data Center removes the application server as a single point of failure. You can further minimize
single points of failure by ensuring your load balancer, database and shared file system are also highly
available.
User management
You can manage users in Confluence's internal directory, in an external LDAP directory, or in Atlassian
Crowd or JIRA.
You can also connect Confluence Data Center to a SAML 2.0 identity provider for authentication and single
sign-on (only available to Confluence Data Center).
Marketplace apps
The process for installing Marketplace apps (also known as add-ons or plugins) in Confluence Data Center is
the same as for a standalone instance of Confluence. You will not need to stop the cluster, or bring down
any nodes to install or update an app.
The Atlassian Marketplace indicates apps that are compatible with Confluence Data Center.
If you have developed your own plugins (apps) for Confluence you should refer to our developer
documentation on How do I ensure my app works properly in a cluster? to find out how you can confirm your
app is cluster compatible.
A full copy of the Confluence indexes are stored on each Confluence node individually. A journal service keeps
each index in sync.
Confluence Data Center also stores a snapshot of the search index in the shared home directory, which can be
useful in a disaster recovery scenario. These snapshots are created as part of the Clean Journal Entries
scheduled job which, by default, runs once per day.
Index recovery
When you start a Confluence node it will check whether its index is current, and if not, it will request a recovery
snapshot from the shared home directory. If a snapshot is not available, it will generate a snapshot from a
running node (with a matching build number). Once the recovery snapshot is extracted into the index directory,
Confluence will continue the startup process.
If the snapshot can't be generated, or is not received in time, existing index files will be removed and Confluence
will perform a reindex on that node. If your index is very large or your file system slow, you may need to increase
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 552
the time Confluence waits for the snapshot to be generated using the confluence.cluster.index.recove
ry.generation.timeout system property.
Index recovery only happens on node startup, so if you suspect a problem with a particular cluster node's index,
restart that node to trigger index recovery.
If you suspect there's a problem with the index on all nodes, you'll need to rebuild the index on just one node
first, then copy it to the other nodes. We recommend backing up the local home directory and your shared home
directory before you begin.
In this example we'll rebuild the index on node 1. You may wish to use your load balancer to direct traffic away
from node 1 while the index is being rebuilt. This will prevent users from hitting a Confluence node with an
incomplete index.
1. Stop Confluence on node 1.
2. Set the confluence.cluster.index.recovery.num.attempts system property to 0.
This disables index recovery on node 1, so that when this node is restarted, it does not attempt to recover
the bad index from the remaining nodes.
3. Back up then delete the following index directories on node 1.
<local-home>/index
<local-home>/journal
4. Back up then delete the following index directory from your shared home directory.
<shared-home>/index-snapshots
5. Start Confluence on Node 1. Confluence will automatically begin building the index.
6. Once the reindex is complete stop Confluence on both node 1 and node 2.
7. Back up then delete the following index directories on node 2.
<local-home>/index
<local-home>/journal
8. Copy the <node1-local-home>/index directory to node 2 local home.
9. Start Confluence on node 2.
10. Repeat this process for any remaining nodes.
To avoid problems, both the node you are copying from and the node you are copying to should be
stopped while copying.
11. Finally, stop Confluence on Node 1.
12. Set the confluence.cluster.index.recovery.num.attempts system property back to 1.
This re-enables index recovery on node 1.
All nodes are now running the rebuilt index.
External Process Pool for Confluence Data Center
In Confluence Data Center we minimize the impact of particularly memory or CPU intensive actions by handling
them in an external process pool, which is a seperate pool of processes, managed by Confluence. These
processes (also known as sandboxes) can crash or be terminated, and will be restarted automatically by
Confluence, without affecting the Confluence application itself.
The external process pool currently handles the following actions:
Document conversion (thumbnail generation for file previews)
Exporting a space to PDF
The external process pool is only available for Confluence Data Center.
In Confluence Server, these actions are handled by Confluence, so the information on this page does
not apply.
Memory requirements
You will need to make sure that every Confluence node in the cluster has enough memory for the external
process pool. The pool contains two processes (sandboxes) by default, so we recommend allowing an additional
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 553
In most cases the default values will be adequate, however system administrators can configure the external
process pool using system properties. For example you may want to increase the size of the pool (the number of
processes available), or increase the amount of memory a process can consume. Here are the main properties
you may need to change:
conversion.sandbox.pool.size
Use this property to increase the number of processes (sandboxes) in the pool. You'll need to allow
additional memory on each node for each additional process.
conversion.sandbox.memory.limit.megabytes
Use this property to limit the amount of memory each process (sandbox) in the pool can consume.
See Recognized System Properties for a full description of these properties, including additional properties that
can be used to fine-tune, or disable sandboxes for particular actions.
When an external process (sandbox) is terminated, we'll write the following to the application log on that node:
This will be followed by an Attempting to restart the sandbox message, the next time someone
performs an action that uses the external process pool.
Note that the process is not immediatley restarted after termination, as we don't re-attempt failed actions. We
wait for the next request to spin up a new sandbox process.
Document conversion for Confluence Data Center
When you insert a file into a page (for example a Word document, or Excel spreadsheet), Confluence will
generate thumbnail images of the file contents, so it can be viewed inline in the page, or in the preview. This can
be quite memory and CPU intensive, and has been known to cause out of memory errors when processing very
complex files.
In Confluence Data Center we minimize the impact by handling the conversion in an external process pool,
which is a seperate pool of processes, managed by Confluence. These processes (also known as sandboxes)
can crash or be terminated, and will be restarted automatically by Confluence, without affecting the Confluence
application itself.
If you insert a very complex file, and the process crashes or is terminated, thumbnail generation will fail. When
this happens, a placeholder thumbnail will be used on the page, and a download option will be provided in the
file preview. Confluence Data Center doesn't re-attempt to generate thumbnails for failed files. A good example
of a complex file, is a PowerPoint presentation that contains 50 embedded Excel charts. Most files will be
processed without any problems.
The external process pool is only available for Confluence Data Center.
In Confluence Server, thumbnail generation is handled by Confluence, so the information on this page
does not apply.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 554
In most cases the default values will be adequate, however system administrators can change the behaviour
using system properties. For example you may want to increase the size of the pool (the number of processes
available), or increase the time limit before a process is terminated. Here are the three main properties you may
need to change:
conversion.sandbox.pool.size
Use this property to increase the number of processes (sandboxes) in the pool. You'll need to allow
additional memory on each node for each additional process.
conversion.sandbox.memory.limit.megabytes
Use this property to limit the amount of memory each process (sandbox) in the pool can consume.
document.conversion.sandbox.request.time.limit.secs
Use this property to change the amount of time (in seconds) that the sandbox will wait for the document
conversion process to complete, before terminating the process, and marking thumbnail generation for
that file as failed.
See Recognized System Properties for a full description of these properties, plus a few additional properties that
can be used to fine-tune, or disable the sandboxes completley.
Confluence does not re-attempt to generate thumbnails for a failed attachment, and re-inserting the attached file
into the editor will not trigger the process.
If you do want to re-attempt thumbnail generation, for example after increasing the request time limit, you will
need to re-upload the file, and then re-insert it into the page.
PDF export in Confluence Data Center
When you export a space to PDF, Confluence exports the content of each page to HTML, converts that HTML to
PDF, and then finally merges all the pages together into a single PDF file. This can be quite memory and CPU
intensive, and has been known to cause out of memory errors when processing spaces with very long or
complex pages.
In Confluence Data Center we minimize the impact by handling the export in an external process pool, which is a
seperate pool of processes, managed by Confluence. These processes (also known as sandboxes) can crash or
be terminated, and will be restarted automatically by Confluence, without affecting the Confluence application
itself.
The external process pool is only available for Confluence Data Center.
In Confluence Server, PDF export is handled by Confluence, so the information on this page does not
apply.
Exporting an entire space to PDF can sometimes fail, especially if the space is very large, or has very long or
complex pages. If PDF export fails you'll see one of the following errors in your browser.
This error occurs when the time it takes to convert the HTML of a page to PDF exceeds the set time limit. The
page title will be included in the error message.
You should take a look at the page, and see if it can be simplified. It might have a lot of complex macros, or a lot
of web images (images that are not attached to the page). If this error happens a lot, you can ask your admin to
increase the time limit.
This error occurs when Confluence runs out of memory, or hits another error while trying to convert the HTML of
a page to PDF. The page title will be included in the error message.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 555
As with the 'page took too long to convert' error above, you should take a look at the page, and see if it can be
simplified.
Confluence admins can get more information about the cause of these errors from the Confluence application
logs. If the failures are being caused by out of memory errors, your admin may be able to increase the amount of
memory available to each sandbox in the external process pool. See External Process Pool for Confluence Data
Center for more information.
This error occurs at the last stage of the process, when the time it took to stitch together all the individual page
PDFs into one PDF file, exceeds the set time limit.
If you hit this error you could try exporting the space again, or perhaps export the space in two sections (using
the custom option on the PDF export screen). If this error happens a lot, you can ask your admin to increase the
time limit.
This error occurs when Confluence runs out of memory, or hits another error, when attempting to stitch together
all the individual page PDFs into one file.
If you hit this error you could try exporting the space again, or perhaps export the space in two sections (using
the custom option on the PDF export screen).
Confluence admins can get more information about the cause of these errors from the Confluence application
logs. If the failures are being caused by out of memory errors, they may be able to increase the amount of
memory available to each sandbox in the external process pool. See External Process Pool for Confluence Data
Center for more information.
This error occurs when multiple people are exporting to PDF at the same time. Confluence limits the number of
PDF exports that can be processed concurrently.
If you hit this error, try exporting the space again later, after the other PDF exports have completed.
If this error happens a lot, your admin can increase the maximum number of concurrent PDF exports, or
increase the time Confluence should wait when the maximum number of concurrent PDF exports has been
reached using the following system properties:
confluence.pdfexport.permits.size
Use this property to set the maximum number of concurrent PDF exports that can be performed. This property
applies per node, not per sandbox process.
confluence.pdfexport.timeout.seconds
Use this property to set the amount of time a new PDF export request should wait before failing, if the maximum
number of concurrent PDF exports has already been reached.
Processes are automatically terminated once a time limit is exceeded. You can increase the time limit for PDF
export using the following system property:
pdf.export.sandbox.request.time.limit.secs
Use this property to set the amount of time (in seconds) that a process should wait to complete, before being
terminated. This time limit applies both to the time to convert the content from HTML to PDF, and the time to
merge the final PDF file.
See Recognized System Properties for a full list of properties, including a few additional properties that can be
used to fine-tune, or disable the sandboxes for a particular action.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 556
If you don't want to use the external process pool for PDF export, you can revert back to the Confluence Server
method of generating PDF exports using the following system property:
pdf.export.sandbox.disable
Set this property to true if you don't want to handle PDF exports in the external process pool.
Restricted Functions in Confluence Data Center
There are some features that are disabled or limited in Confluence Data Center. This is to ensure the integrity
and performance of your cluster.
The current restricted functions are:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 557
Confluence Quick Reload Plugin Available from 5.6.3 The quick reload function notifies
users when a new comment has
been added to a page they are
currently viewing.
Scheduled jobs history and status LIMITED On the Scheduled Jobs page in
the Confluence Data Center
administration console you will not
be able to access the last
execution time or history for each
job. The page will also only show
the configured status (scheduled
or disabled) of each job, and will
not indicate when a job is in
progress.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 558
Performance gains - Under a high load, clustered Confluence has improved performance overall.
Request responses don't diminish under increased load - Adding more nodes increases throughput,
handles higher load and decreases response times.
You might observe a different trend/behavior based on your configuration and usage. For details, please see the What we tested s
ection below.
The following sections detail the testing environment and methodology we used in our performance tests.
How we tested
Our performance tests were all run on the same controlled isolated lab at Atlassian. For each test, the entire
environment was reset and rebuilt. The testing environment included the following components and
configuration:
Apache proxy_balancer
Postgres database and the required data
G1GC garbage collector
8GB Xmx settings per node
6 CPUs per node
Confluence Server on one machine or Confluence Data Center on two, or four machines as required
for the specific test.
To run the test, we used a number of machines in the lab to generate load using scripted browsers and
measuring the time taken to perform an action. An action here, means a complete user operation like
creating a page or adding comment. Each browser was scripted to perform an action from a predefined list of
actions and immediately move on the to next action (i.e. zero think time). Please note that this resulted in
each browser performing more tasks than would be possible by a real user and you should not interpret the
number of browsers to be equal to the number of real world users. Each test was run for 20 minutes, after
which statistics were collected.
What we tested
All tests used the same Postgres database containing the same number of spaces and pages.
The mix of actions we included in the tests represented a sample of the most common user actions*
representing six typical types of users (personas). The table below show the ratio of actions performed
by each of these personas. These user-based actions were repeated until the test was completed.
PageReader 7
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 559
Searcher 1
Editor 1
Creator 1
Commenter 1
Liker 1
Tests were performed with differing load sizes, from 4 up to 96 browsers. For larger load sets, profiles were
scaled up, that is, doubling each amount for the 24 browser load, tripled for the 36 browser load.
* The tests did not include admin actions as these are assumed to be relatively infrequent.
Hardware
All performance tests were all run on the same controlled, isolated lab at Atlassian using the hardware listed
below.
Rackform iServ CPU: 2 x Intel Xeon E5-2430L, 2.0GHz (6-Core, HT, 15MB Cache, 60W) 20
R304.v3 32nm
RAM: 48GB (6 x 8GB DDR3-1600 ECC Registered 2R DIMMs)
Operating at 1600 MT/s Max
NIC: Dual Intel 82574L Gigabit Ethernet Controllers - Integrated
Controller: 8 Ports 3Gb/s SAS, 2 Ports 6Gb/s SATA, and 4 Ports 3Gb/s
SATA via Intel C606 Chipset
PCIe 3.0 x16: Intel X540-T2 10GbE Dual-Port Server Adapter (X540)
10GBASE-T Cat 6A - RJ45
Fixed Drive: 240GB Intel 520 Series MLC (6Gb/s) 2.5" SATA SSD
Power Supply: 600W Power Supply with PFC - 80 PLUS Gold Certified
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 560
The following table shows the relative performance as the load increases for each Confluence instance
configuration: Confluence Server, two node Confluence Data Center, and four node Confluence Data Center.
The table shows the response time relative to the baseline response time which we determined to be
Confluence Server with sixteen browsers.
Browsers 16 24 36 48 60 72 84 96
Not sure if you should upgrade from Confluence Server to Data Center? Learn more about the benefi
ts of Confluence Data Center.
This page demonstrates how you can use Confluence Data Center 5.9 or later in implementing and managing a
disaster recovery strategy for Confluence. It doesn't, however, cover the broader business practices, like setting
the key objectives (RTO, RPO & RCO1), and standard operating procedures.
Overview
Before you start, you need Confluence Data Center 5.9 or later to implement the strategy described in this
guide.
This page describes what is generally referred to as a 'cold standby' strategy, which means the standby
Confluence instance isn't continuously running and that you need to take some administrative steps to start the
standby instance and ensure it's in a suitable state to service the business needs of your organization.
Maintaining a runbook
The detailed steps will vary from organization to organization and, as such, we recommend you keep a
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 561
full runbook of steps on file, away from the production system it references. Make your runbook detailed
enough such that anyone in the relevant team should be able to complete the steps and recover your
service, regardless of prior knowledge or experience. We expect any runbook to contain steps that cover
the following parts of the disaster recovery process:
1. Detection of the problem
2. Isolation of the current production environment and bringing it down gracefully
3. Synchronization of data between failed production and intended recovery point
4. Warm up instructions for the recovery instance
5. Documentation, communication, and escalation guidelines
The major components you need to consider in your disaster recovery plan are:
Confluence installation Your standby site should have exactly the same
version of Confluence installed as your production
site.
Search Index The search index isn't a primary source of truth, and
can always be recreated from the database. For
large installations, though, this can be quite time
consuming and the functionality of Confluence will
be greatly reduced until the index is fully recovered.
Confluence Data Center stores search index
backups in the shared home directory, which are
covered by the shared home directory replication.
Install the same version of Confluence on your standby system. Configure the system to attach to the standby
database.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 562
Replicating data to your standby location is crucial to a cold standby failover strategy. You don't want to fail over
to your standb y Confluence ins tance and find that it's out of date or that it takes many hours to re-index.
Clustering considerations
For your clustered environment you need to be aware of the following, in addition to the information above:
Starting the standby cluster It's important to initially start only one node of the
cluster, allow it to recover the search index, and
check it's working correctly before starting additional
nodes.
You should exercise extreme care when testing any disaster recovery plan. Simple mistakes may cause your
live instance to be corrupted, for example, if testing updates are inserted into your production database. You
may detrimentally impact your ability to recover from a real disaster, while testing your disaster recovery plan.
The key is to keep the main data center as isolated as possible from the disaster recovery testing
.
This procedure will ensure that the standby environment will have all the right data, but as the testing
environment is completely separate from the standby environment, possible configuration problems on
the standby instance are not covered.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 563
Prerequisites
Before you perform any testing, you need to isolate your production data.
Attachments, plugins and indexes You need to ensure that no plugin updates or index
backups occur during the test:
1. Disable index backups
2. Instruct sysadmins to not perform any updates in
Confluence
3. Temporarily pause all replication to the standby
shared home directory
4. Replicate the data from the standby shared
home directory to another directory that's
isolated and with no communication with the
main shared home directory
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 564
After this you can resume all replication to the standby instance, including the database.
Once you have isolated your production data, follow the steps below to test your disaster recovery plan:
1. Ensure that the new database is ready, with the latest snapshot and no replication
2. Ensure that the new shared home directory is ready, with the latest snapshot and no replication
3. Ensure you have a copy of Confluence on a clean server with the right database and shared home
directory settings in <confluencelocalhome>/confluence.cfg.xml
4. Ensure you have confluence.home mapped, as it was in the standby instance, in the test server
5. Disable email (See atlassian.mail.senddisabled in Configuring System Properties)
6. Start Confluence
Handling a failover
In the event your primary site is unavailable, you'll need to fail over to your standby system. The steps are as
follows:
1. Ensure your live system is shutdown and no longer updating the database
2. Ensure the contents of <confluencesharedhome> is synced to your standby instance
3. Perform whatever steps are required to activate your standby database
4. Start Confluence on one node in the standby instance
5. Wait for Confluence to start and check it is operating as expected
6. Start up other Confluence nodes
7. Update your DNS, HTTP Proxy, or other front end devices to route traffic to your standby server
In most cases, you'll want to return to using your primary instance after you've resolved the problems that
caused the disaster. This is easiest to achieve if you can schedule a reasonably-sized outage window.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 565
Other resources
Atlassian Answers
Our community and staff are active on Atlassian Answers. Feel free to contribute your best practices, questions
and comments. Here are some of the answers relevant to this page:
Disaster Recovery Configuration for Jira and Confluence
Troubleshooting
If you encounter problems after failing over to your standby instance, check these FAQs for guidance:
What should I do if my database isn't synchronized correctly?
If your database doesn't have the data available that it should, then you'll need to restore the database from
a backup.
Once you've restored your database, the search index will no longer by in sync with the database. You can ei
ther do a full re-index, background or foreground, or recover from the latest index snapshot if you have one.
This includes the journal id file for each index snapshot. The index snapshot can be older than your database
backup; it'll synchronize itself as part of the recovery process.
Definitions
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 566
Database is being updated by an instance Add multicast route, Check firewall, Cluste
which is not part of the current cluster erro r Panic due to Multiple Deployments
rs on a cluster
Error in log: The interface is not suitable for Change multicast interface, Add multicast
multicast communication route
Multicast being sent, but not received Check firewall, Check intermediate routers
, Increase multicast TTL
App is unlicensed on some nodes after updating the Disable and re-enable the app in the
license on one node. Universal Plugin Manager.
After an app update, strings appear in the UI instead of Restart the affected node.
buttons and icons on some nodes.
Hazelcast CANNOT start on this node. No See Hazelcast CANNOT start on this
matching network interface found. node. No matching network interface
found KB article
Multicast
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 567
name="confluence.cluster.address">xxx.xx.xxx.xxx</property>
A warning message is displayed when an user changes the address from the one that Confluence has
generated by the hashing of the name. There is no way of eliminating the message any other way other than
by returning the address to the one that matches the cluster name. Purpose of the warning message is to
remind the user that the address has been changed - as it is not the hashed version any longer -
consequently the node can not join the cluster just by using the name. It is also necessary to provide the
correct address as well.
To ensure that the interface name is mapped correctly, the following tool can be used. It shows the mapping
of the interface name to the IP address.
Debugging tools
Listed below are some debugging tools that help determine what the status of the multicast traffic is:
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 568
tcpdump -i inte Captures network traffic on the given interface. Most useful on an interface that
rface only receives cluster traffic.
Multicast networking requirements vary across operating systems. Some operating systems require little
configuration, while some require the multicast address to be explicitly added to a network interface before
Confluence can use it. If multicast traffic can't be sent or received correctly, adding a route for multicast traffic
on the correct interface will often fix the problem. The example below is for a Ubuntu Linux system:
To support multiple applications using multicast on different interfaces, you may need to specify a route
specific to the Confluence multicast address.
Check firewall
Ensure your firewall allows UDP traffic on the multicast address and port used by Confluence.
Prefer IPv4
There are known issues relating to IPv6. You should configure your JVM to try binding to an IPv4 address
first.
Confluence might have selected the incorrect interface for multicast traffic, which means it cannot connect to
other nodes in the cluster. To override the interface used for multicast traffic after initial setup, edit the confl
uence.cluster.interface property in <local-home>/confluence.cfg.xml and specify the
network interface. For example to tell Confluence to use eth1:
<property name="confluence.cluster.interface">eth1</property>
If the solution to your problem involves changes to the Hazelcast configuration, these changes should not be
made to the Confluence configuration files. Instead, to ensure your configuration survives upgrades, make
your changes by creating a Hazelcast override file.
The multicast time-to-live (TTL) specifies how many hops a multicast packet should be allowed to travel
before it is discarded by a router. It should be set to the number of routers in between your clustered nodes:
0 if both are on the same machine, 1 if on two different machines linked by a switch or cable, 2 if on two
different machines with one intermediate router, and so on.
To increase the multicast TTL by edit the confluence.cluster.ttl property in the <local
home>/confluence.cfg.xml file on each node. For example to set the TTL to 3:
<property name="confluence.cluster.ttl">3</property>
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 569
Advanced switches and routers have the ability to understand multicast traffic, and route it appropriately.
Unfortunately sometimes this functionality doesn't work correctly with the multicast management information
(IGMP) published by the operating system running Confluence.
If multicast traffic is problematic, try disabling advanced multicast features on switches and routers in
between the clustered nodes. These features can prevent multicast traffic being transmitted by certain
operating systems.
Starting Confluence node fails with 'Port [5801] is already in use and auto-increment is disabled.
Hazelcast cannot start' error
"Exception bootstrapping cluster:Shared home directory is not configured correctly" Error during
Confluence Data Center startup
Recovering from a Data Center cluster split-brain
Cluster Panic due to Multicast Traffic Communication Problem
Hazelcast CANNOT start on this node. No matching network interface found.
Cannot find "external_id" column when trying to upgrade to a Confluence CDC license after upgrading
from a pre-5.5 Confluence Clustered installation
Multicast communication works only one-way
Configuration of Confluence Cluster Fails with 'Cannot assign requested address'
How to suppress cluster warning messages in the Confluence log files
We have dedicated staff on hand to support your installation of Confluence. Please follow the instructions for
raising a support request and mention that you're having trouble setting up your Confluence cluster.
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation
3. 570
b. View the logs for each node side by side (Hint: we find opening three tabs in node number
order helps you always know which logs you are viewing).
c. Search the logs for 'removing member' and 'panic'. This will give you a good idea of which
nodes caused the issue and when.
d. Make a chronological timeline of events from errors to node removal to panics. You can
essentially disregard all logging that happens post-panic because once a node panics it needs
to be restarted to function effectively. There will be a lot of noise in the logs, but it won't be very
useful. The time period we're most interested in will be the minute or so leading up to the first
removal or panic event in the logs.
For example:
e. When you've established when the first affected node was removed, or when the first cluster
panic occurred, look back in time in the logs on that node, to look for root causes.
Once you know when the first affected node was removed you can start investigating root causes. From this
point on, you're only looking at events on the affected node around the time of removal (in our example
above, this is Node 3 at around 2:50). The subsequent removals and panics are usually flow-on effects of
the original node removal event, and aren't likely to provide useful root cause information.
Garbage collection
Check the GC logs for the node that was removed (Node 3 in our example). Were there any GC pauses
longer than the Hazelcast heartbeat interval (30 seconds by default)? Nodes can't heartbeat during Garbage
Collection, so they will be removed from the cluster by one of the other nodes.
If there was a cluster panic, but the node was not removed from the cluster first, check the GC logs for
pauses around the time of the panic - pauses that are relatively short (less than 30 seconds) can sometimes
still cause panics (due to a race condition) in Confluence 5.10.1 and earlier.
Database connections
Check any database monitoring tools you may have. How many connections to the database were there at
the time of the outage? Heartbeats can fail to send if a node can get a connection from its connection pool
but not from the database itself, which can lead to nodes being removed from the cluster.
You won't be able to diagnose this from the Confluence logs and will need to look at any external monitoring
tools you have for your database. If the outage happens again, check the current number of connections at
the db level during the outage.
Network connectivity
Check your network monitoring tools. If a node drops off the network for a short time and cannot
communicate with the cluster, it can be removed by the other nodes. Your load balancer logs may be useful
here.
Contact Support for help troubleshooting these outages. Provide them with as much of the information above
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 571
Feature comparison
Create spaces
Create spaces to store your team
or project work.
Create pages
Create pages and blog posts, and
work on them with your team.
Collaborative editing
Up to 12 people can work on the
same page at the same time. Lear
n more
User management
Clustering
Run Confluence on multiple
nodes high availability. Learn
more
Read-only mode
Limit what users can do in your
site while you perform
maintenance. Learn more
Sandboxed processes
Run resource intensive tasks in
external sandboxes for greater
stability. Learn more
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 572
Deployment options
Azure template
Use our template to deploy
Confluence on Azure. Learn more
We want all teams to get the most out of Confluence, so the core features are available for everyone - including
creating pages, working together, organising your work.
Some features are developed specifically for customers with a Data Center license. These may be specific to the
needs of larger enterprises, or may provide additional infrastructure or administrative options to help you when
Confluence is essential to getting work done in your organization.
Find out more about how we prioritize features for our Server and Data Center products in our blog.
Considering switching? The following articles may help you decide if a Data Center license is right for your
organization.
Server vs. Data Center – What’s right for you? (blog)
Server to Data Center: The Tipping Point (whitepaper)
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 573
There are two products that allow you to run Confluence on your own servers: Confluence Server
and Confluence Data Center.
Data Center is built for enterprise organizations. It includes additional deployment options and
admin features that can help you keep Confluence highly available and performing at scale.
Learn more about Confluence Data Center features and deployment options:
Confluence Data Center
Confluence Server and Data Center feature comparison
To get the most out of Data Center, you need to set it up in a cluster, tailored to your
organization's needs.
We recommend assessing:
the number of users you have
the amount of data you have
your expected usage patterns
any specific requirements, such as high availability and disaster recovery
the resources your organization has allocated to maintain your Confluence site.
For more information about high availability, failover and disaster recovery for Confluence, head to
Confluence Data Center disaster recovery.
Our sizing and performance benchmarks can help you assess your expected load, and predict
performance:
Confluence Data Center load profiles
Confluence Data Center performance
Once you've identified your organization's needs, you can design and build your
environment. Read our Confluence Data Center Technical Overview for important hardware and
infrastructure considerations.
To help you get started, we've provided a Confluence Data Center sample deployment and
monitoring strategy.
We've also provided some general advice about node sizing and load balancers, to help you find
your feet if this is your first clustered environment:
Node sizing overview for Atlassian Data Center
Load balancer configuration options
Traffic distribution with Atlassian Data Center
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.
Confluence 6.15 Documentation 574
If you're new to Confluence, you can try out Confluence Data Center by downloading a free trial.
This can help you identify dependencies and plan your path to production.
Migrating from Confluence Server to Confluence Data Center? Read through these guides to
help minimize disruption during the switch:
Moving to Confluence Data Center
Atlassian Data Center migration plan
Atlassian Data Center migration checklist
It's also important to take an inventory of your third-party apps (also known as add-ons) to make
sure they're compatible with Data Center. Using a large number of add-ons can degrade
performance, so it's a good idea to remove any add-ons that aren't crucial to functionality.
Find out how to evaluate add-ons for Data Center migration.
Once your environment is ready, it's time to install and configure Confluence Data Center.
How you install depends on your environment:
Your own hardware – see Installing Confluence Data Center
Azure – see Getting started with Confluence Data Center on Azure
AWS (Amazon Web Services) – see Running Confluence Data Center in AWS
If you're migrating from Confluence Server to Confluence Data Center, follow the instructions
outlined in Moving to Confluence Data Center.
Before deploying Confluence Data Center to production, we recommend thoroughly testing the
installation. Head to our Data Center migration plan for detailed advice about testing and
launching to production.
Once you've got Confluence Data Center deployed in production, here are some resources for
monitoring the health of the cluster and scaling it up to accomodate more users:
Tools for monitoring your Data Center application
Ready to grow? Read up on scaling and adding nodes to your new Confluence Data
Center cluster:
Scaling with Atlassian Data Center
Adding or removing Confluence Data Center nodes
Created in 2019 by Atlassian. Licensed under a Creative Commons Attribution 2.5 Australia License.