Bitbucket Data Center requirements
This page describes the requirements for running a production instance of Bitbucket Data Center. If you're ready to get started installing Bitbucket Data Center, see Install Bitbucket Data Center for detailed instructions.
A Bitbucket Data Center instance consists of a cluster of components, each on a dedicated machine, and connected over a high-speed LAN connection. This diagram depicts a typical Bitbucket Data Center instance with a load balancer, three application nodes, a shared database, a shared file system, and a single remote Elasticsearch node.
Each component has specific requirements, but only the load balancer needs to have a publicly accessible URL. The URL of the Bitbucket Data Center instance will be the URL of the load balancer, so this is the machine that you will need to assign the name of your Bitbucket Server instance in the DNS.
The remaining machines (Bitbucket cluster nodes, shared database, shared file system, and Elasticsearch node) do not need to be publicly accessible to your users.
Bitbucket application nodes
The Bitbucket cluster nodes all run the Bitbucket Data Center web application.
- Each Bitbucket cluster node must be a dedicated machine.
- The machines may be physical or virtual.
- The cluster nodes must be connected in a high speed LAN (that is, high bandwidth and low latency).
- The usual Bitbucket Server supported platforms requirements, including those for Java and Git, apply to each cluster node.
- The cluster nodes do not all need to be absolutely identical, but for consistent performance we recommend they should be as similar as possible.
- All cluster nodes must run the same version of Bitbucket Data Center.
- All cluster nodes must have synchronized clocks (for example, using NTP) and be configured with the identical timezone.
- Ensure that only permit cluster nodes are allowed to connect to a Bitbucket cluster node's Hazelcast port, which by default is port 5701, through the use of a firewall and/or network segregation.
You can use the load balancer of your choice. Bitbucket Data Center does not bundle a load balancer.
- Your load balancer should run on a dedicated machine.
- Your load balancer must have a high-speed LAN connection to the Bitbucket cluster nodes (that is, high bandwidth and low latency).
- Your load balancer must support both HTTP mode (for web traffic) and TCP mode (for SSH traffic).
- Terminating SSL (HTTPS) at your load balancer and running plain HTTP from the load balancer to Bitbucket Server is highly recommended for performance.
- Your load balancer should support "session affinity" (also known as "sticky sessions").
- If you don't have a preference for your load balancer, we provide instructions for
haproxy, a popular Open Source software load balancer.
You must run Bitbucket Data Center on an external database. You can not use Bitbucket Server's internal HSQL or H2 database with Bitbucket Data Center.
- The shared database must run on a dedicated machine.
- The shared database must be available to all cluster nodes via a high-speed LAN (it must be in the same physical data center).
- All the usual database vendors in Bitbucket Server's supported platforms are supported by Bitbucket Data Center, with one exception: we do not recommend MySQL at this time due to inherent deadlocks that can occur in this database engine at high load.
Shared file system
Bitbucket Data Center requires a high performance shared file system such as a SAN, NAS, RAID server, or high-performance file server optimized for I/O.
- The shared file system must run on a dedicated machine.
- The file system must be available to all cluster nodes via a high-speed LAN (it must be in the same physical data center).
- The shared file system should be accessible via NFS as a single mount point.
|Stored on the shared file system||Stored locally on each application node|
Bitbucket Data Center requires a remote Elasticsearch instance, as it is not bundled or installed for Bitbucket Data Center.
- Bitbucket Data Center will only work with Elasticsearch 2.3.5.
- Bitbucket Data Center can have only one remote connection to Elasticsearch for your cluster.
- This may be a standalone Elasticsearch installation or a clustered installation behind a load balancer.
Get started with Bitbucket Data Center
See Install Bitbucket Data Center for detailed information about setting up Bitbucket Data Center.
The Bitbucket Data Center FAQ answers the questions you might have when starting with Bitbucket Data Center.