Installation Requirements
TeamForge Hardware Requirements
The following table lists the CPU, RAM and JVM Heap Size recommendations for Small, Medium, Large and Extra-large sites.
Small | Medium | Large | X-Large | |
---|---|---|---|---|
Users | 100 | 500 | 1000-5000 | 10000+ |
CPU | Octa-core | 12-core | > 12-core | > 16-core |
RAM | 16GB | 24GB | 32GB | 32GB |
Jboss JVM Heap Size | 1.5GB | 3GB | 6GB | > 8GB |
Elasticsearch JVM Heap Size | 2GB | 2GB | 2GB | 2GB |
You must have adequate RAM to accomodate the JVM heap requirements of Elasticsearch in addition to the JVM heap requirements of other components such as Jboss, integrated applications, and so on. | ||||
200 GB (or more) hard drive. The required hard drive capacity depends on the estimated amount of document and file release uploads. |
The following table highlights the factors that can impact TeamForge performance. Numbers are indicative. Anything more than the prescribed numbers may impact the performance.
Small | Medium | Large | X-Large | |
---|---|---|---|---|
Artifacts | 15000 | 70000 | 100000 | 100000 |
Flex Fields | 25 | 50 | 100 | 100 |
Projects | 20 | 80 | 500 | 500 |
Integrations | 0-1 | 0-2 | 0-2 | 0-2 |
Integrated Applications | 0-2 | 0-3 | 3+ | 3+ |
On Medium, Large, and X-Large sites, it is highly recommended that you install the TeamForge Application, Database, and SCM services on separate 64-bit servers based on the usage pattern.
Gerrit Hardware Requirements
The following table lists the CPU, RAM and Gerrit JVM Heap Size recommendations for Small, Medium, and Large sites.
For X-Large setup, see Gerrit Performance Cheat Sheet.
Small | Medium | Large | |
---|---|---|---|
Fetch requests per day | 100k | 500k | 1 Million |
CPU | 4-core | 16-core | 32-core |
RAM | 8GB | 16GB | 32GB |
Gerrit JVM Heap Size | 4GB | 12GB | 28GB |
200GB (or more) hard disk. The required hard disk capacity depends on the number and size of repositories. |
These numbers are indicative. Adjust your hardware based on your Gerrit server's usage. To better understand Gerrit hardware requirements and performance tuning possibilities, see Gerrit Performance Cheat Sheet.
Baseline Hardware Requirements
It’s highly recommended that you install the TeamForge Baseline services on a separate server as the baseline process can consume considerable CPU and database resources.
The following table lists the hardware requirements of the Baseline Server:
Description | Service | CPU | RAM | Storage |
---|---|---|---|---|
Baseline Application and Database Server | Application and Database | 4-core | 8GB | Directly proportional to the number and size of baselines created. Typically, baseline packages can be large in size. It's recommended to scale the storage according to your site's requirements. |
TeamForge Webhooks Event Broker Hardware Requirements
TeamForge Webhooks-based Event Broker can be installed on the same server on which TeamForge is installed.
The following table lists the hardware requirements for the Webhooks-based Event Broker:
Description | Service | CPU | RAM |
---|---|---|---|
TeamForge Webhooks Event Broker Application & Database Server | Application & Database | 2-core | 4GB (Upto 100 messages/sec) |
4-core | 8GB (Between 100 - 400 messages/sec) | ||
8-core | 16GB (Above 400 messages/sec) |
TeamForge Software Requirements
TeamForge 24.0 supports the following platforms:
-
RHEL 8.10
- Do not customize your operating system installation. Select only the default packages list.
- Red Hat Enterprise Linux servers must have access to the Red Hat Network or equivalent (satellite server, spacewalk, or RHN proxy).
Here's a list of a few noteworthy software that are installed by default when you install TeamForge 24.0:
- Apache HTTPD Server
- 2.4.37 for RHEL 8.10
- JBoss 22.0
- OpenJDK 17.0.61
- Tomcat 9.0.73
- PhantomJS 2.1.1
- Elasticsearch 7.16.3
- Highcharts 7.1.1
- Subversion
-
1.10.6 on RHEL 8.10
-
Git/Gerrit 3.6.8
-
Review Board 4.0.6
-
PostgreSQL Server 13.15
-
PostgreSQL JDBC Driver 42.6.0
-
Oracle Server 19c
-
Oracle Client 19c
-
Oracle JDBC Driver 23.2.0.0
PostgreSQL 13.15 is installed by default when you install TeamForge 24.0. However, you can use Oracle if you want to. See PostgreSQL or Oracle? for more information.
TeamForge 24.0 supports the following browsers:
- Google Chrome 99
- Mozilla Firefox 98
-
Microsoft Edge 100
- Microsoft Internet Explorer 10 and earlier are not actively tested and supported.
- TeamForge user interfaces are best viewed at screen resolution of at least 1280 x 800 (or more) pixels.
- Microsoft Internet Explorer 10 and earlier are not actively tested and supported.
Supported Integrations
TeamForge 24.0 supports the following integrations:
- SubversionEdge 5.0
- ViewVC 1.1.24
- Nexus 3 (3.70.0)2
- Jira 9.0.0–9.11.0
- TestLink 1.9.17–1.9.20
- Jenkins 2.332
Port Requirements
TeamForge Port Requirements
TeamForge components listen on a number of operating system ports. However, only a small subset must be exposed externally to enable users to access TeamForge services. Any port that is not absolutely needed must be closed.
You can select your open ports in one of these ways:
- Use the firewall configuration GUI tool that comes with your operating system. It's usually launched with a command like
system-config-selinux
. - Open the
/etc/sysconfig/iptables
file and manually specify your open ports.
Ports Open to the Internet
Open the following operating system level ports. All other ports must be firewalled off to maintain security.
Do not open port 7080 or port 8080 to the Internet. These ports are only for communications between the TeamForge application and the source code integration service, when those two site components are running on separate boxes.
Port | Description |
---|---|
22 (SSH) | Port 22 is the default port for the secure shell (SSH). This is required for basic SSH administrative functionality and for CVS, as all CVS transactions occur over SSH.
If all Teamforge repositories are in SVN (the default for Teamforge), then this port should be closed to the public and only accessible to the system administrators. If you have to expose SSH to the Internet, the best way to protect it is to require SSH keys and not allow password authentication, and do not permit root logins over SSH. If you must use local authentication for SSH, enforce regular password changes and password complexity. Note: If you have to expose SSH internally, limit access to the port to a bastion host if you can; otherwise limit it to specific trusted hosts or subnets. |
25 (SMTP) | Port 25 is the default port for SMTP (email). TeamForge discussion forums include mailing list functionality that allows users to send email to the TeamForge server. The James mail server included with TeamForge listens on port 25 to accept this mail for processing. |
80 (http) | Port 80 is the default port for Web data transfer. We strongly recommend that you set up SSL and use port 80 only to redirect to port 443. |
443 (https) | Port 443 is the default port for encrypted Web data transfer (https).
The Apache web server should be configured to encrypt all data so that it cannot be compromised by a third party with malicious intent. Apache can be configured to force all traffic to be sent over https, even when a request is sent via port 80 (http). |
29418 (Gerrit SSH) | Port 29418 is the default port which should be open for Gerrit SSH. |
Ports to be Open in a Firewall Environment for TeamForge 24.0
In the following table, Source Server
is where the data is coming from and Target Server
is where the data is going to.
Source Server | Target Server | Port to Be Open on the Target Server | Remarks | |
---|---|---|---|---|
Apache | All | TeamForge App | 80 or 443 | 443 for SSL |
TeamForge Database | TeamForge App | TeamForge Database | 5432 | |
SVN Integration | All | SVN | 80 or 443 | 443 for SSL |
Git Integration | All | Git | 80 or 443 | 443 for SSL |
Git SSH | All | Git | 29418 | |
Search | TeamForge App | Search | 2099 | |
Reports DB | TeamForge App | Reports DB | 5432 or 5632 | 5432 is used by default as Reports DB is co-hosted with TeamForge database. 5632 can be used if you want Reports DB on a separate port. |
Reports ETL | TeamForge App | Reports ETL | 7010 | |
Code Search (Elasticsearch) | All | Code Search (Elasticsearch) | 9200 |
Ports to be Open in a Firewall Environment for Baseline
In the following table, Source Server
is where the data is coming from and Target Server
is where the data is going to.
Source Server | Target Server | Ports to Be Open on the Target Server | Description |
---|---|---|---|
Baseline Application | TeamForge Database | 5432 | Baseline Application communication with TeamForge database server |
Baseline Application | Baseline Database | 5432 | Baseline Application communication with Baseline database server |
TeamForge Application | Baseline Application | 9191 | Baseline Application communication with TeamForge Application |
TeamForge Application | Baseline Post Install Application | 9192 | Baseline Post Install Application communication with TeamForge Application |
Ports to be Open in a Firewall Environment for TeamForge Webhooks-based Event Broker
In the following table, Source Server
is where the data is coming from and Target Server
is where the data is going to.
Source Server | Target Server | Ports to Be Open on the Target Server | Description |
---|---|---|---|
TeamForge Webhooks-based Event Broker Application | TeamForge Webhooks-based Event Broker Database | 5432 | TeamForge Webhooks-based Event Broker application communication with its database server |
Publisher Application | TeamForge Webhooks-based Event Broker Application | 3000 | Publisher application communication with TeamForge Webhooks-based Event Broker application |
Subscriber Application | TeamForge Webhooks-based Event Broker Application | Subscriber port (Unknown) | Subscriber application communication with TeamForge Webhooks-based Event Broker application Note: Subscriber ports should be accessible in a Firewall environment. |
Footnotes
-
TeamForge 19.2 and later used OpenJDK (it no longer uses Oracle JRE). It is recommended to remove the
JAVA_HOME
token, if added to yoursite-options.conf
file. TeamForge uses the defaultJAVA_HOME
which is set to the OpenJDK path. ↩ -
CollabNet releases new versions of integration plugins from time to time. It is recommended to upgrade your TeamForge-Nexus integration plugins whenever a new version is available. ↩