Sonatype Nexus Repository System Requirements
This topic covers system requirements for the Sonatype Nexus Repository.
Supported Nexus Repository Versions
Sonatype's Product Development Lifecycle is fully explained in Sonatype Sunsetting Information. You can find specific information about supported versions in Sonatype Nexus Repository 3 Versions Status.
Supported Operating Systems
Sonatype Nexus Repository supports the following operating systems:
Linux
MacOS
Windows
Sonatype does not test or support other operating systems.
Dedicated Operating System User Account (Recommended)
We strongly recommend using a dedicated OS user account to run each unique process on a given host. The Nexus Repository process user must be able to create a valid shell.
As a security precaution, do not run Nexus Repository as the root
user.
Required File Handle Limits (Linux and MacOS)
Sonatype Nexus Repository typically consumes more file handles than the per-user default value allowed by Linux or MacOS operating systems. Also, while the Nexus Repository Docker image is configured with adequate file handle limits, some container platforms (e.g., Amazon ECS) will override the default limits.
Running out of file descriptors will lead to data loss. Therefore, you must permanently increase the limit on the number of open file descriptors for the user running Sonatype Nexus Repository to 65,536 or more before starting Nexus Repository.
Review the Adjusting File Handle Limits topic for instructions on adjusting file handle limits in Linux and MacOS as well as ensuring your container platform does not override the configured limits in the Docker image.
Supported Java Versions
Sonatype Nexus Repository is tested on and supports OpenJDK.
As of release 3.71.0, Nexus Repository requires Java 17.
Nexus Repository is compatible with both Intel and AMD CPU architectures.
For historic Java support information, see our Java Compatibility Matrix.
For information on obtaining a suitable JRE, see Obtaining and Verifying Suitable JRE.
CPU
Performance is primarily bounded by IO (disk and network) rather than CPU. Available CPUs will impact longer running operations and also the thread allocation algorithms of the web container.
See the Memory Recommendations by Profile Size section for suggested CPU configurations by deployment profile.
Memory Requirements
At a high level, expect to allocate up to two-thirds available RAM to Sonatype Nexus Repository; leave at least one-third RAM available for all other operating system processes and buffers.
Memory requirements vary by profile size. Due to use case complexity, there is no single defined requirement. The section below outlines Sonatype memory recommendations for small, medium, large, and very large profiles.
See our Nexus Repository Memory Overview topic for details about the different types of memory that Nexus Repository uses and example memory-related Java requirements.
Memory Suggestions by Profile Size
The profiles defined in the table below help gauge the typical memory requirements needed for a dedicated server host running Sonatype Nexus Repository.
Nexus Repository Memory Recommendations by Profile Size
Profile Size | Profile Description | CPUs | Disk Size (Blob) | RAM |
---|---|---|---|---|
Small |
| 8 | 20GB | 8GB |
Medium |
| 8+ | 200GB | 16GB |
Large |
| 12+ | 200GB or more | 32GB |
Very Large |
| 16+ | 10TB or more | 64GB |
Postgres Server Recommendations by Profile Size
Profile Size | Profile Description | CPUs | Disk Size | RAM |
---|---|---|---|---|
Small |
| 4 | 100GB | 16GB |
Medium |
| 8 | 200GB | 32GB |
Large |
| 16 | 200GB or more | 32GB or more |
Very Large |
| 16 | 300GB or more | 64GB |
Database Requirements
Sonatype Nexus Repository supports two database options: an embedded H2 database or an external PostgreSQL database. Using a PostgreSQL database requires a paid Pro license. New installations use an H2 database by default.
Important
Sonatype Nexus Repository's legacy embedded OrientDB database entered extended maintenance in August 2024. All Sonatype Nexus Repository customers are highly encouraged to migrate off of OrientDB. However, if you are unable to migrate, note that you will need to remain on the 3.70.x version line. Versions 3.71.0 and above do not support OrientDB.
PostgreSQL Requirements (Recommended)
Using an external PostgreSQL database with Nexus Repository requires a paid Pro license. However, we highly recommend all deployments use an external PostgreSQL database. More details are available in our Database Options section.
Compatible PostgreSQL Versions
Sonatype Nexus Repository requires PostgreSQL version 11.9 or newer.
High Availability deployments require PostgreSQL version 13 or later.
PostgreSQL Database Duplicate Key Value Error
After upgrading the PostgreSQL host operating system you may see exceptions with a specific message reporting duplicate key value violations. Refer to the support article "PostgreSQL Index Corruption - duplicate key violation errors" for details on remediating the issue.
Compatible PostgreSQL Providers
Sonatype Nexus Repository can use the following PostgreSQL providers:
Amazon RDS instance
Amazon Aurora PostgreSQL
Azure PostgreSQL Flexible Server
Google Cloud SQL for PostgreSQL
An instance of PostgreSQL that you provide
For best performance, Nexus Repository should have a low-latency connection to the database. When using a cloud database, the Nexus Repository node must be in the same region.
Required PostgreSQL Database User Permissions
The Nexus Repository database user requires CREATE and USAGE permission on the specified schema.
The specified schema must also be on the search_path
for that user.
Nexus Repository will then create and manage its tables, making it the owner of those objects; so, you do not need to specify any extra permissions.
Required Trigram Module for PostgreSQL Database
Nexus Repository 3 instances using PostgreSQL databases must have the pg_trgm (trigram) module. This module may not be installed with PostgreSQL by default on all Linux distributions, which will result in an exception when attempting to upgrade.
See Installing the Trigram Module for installation instructions.
Advanced Database Memory Tuning
Also see our Advanced Database Memory Tuning topic for examples of advanced database memory tuning based on different profile sizes.
H2 Requirements
Sonatype Nexus Repository supports 20,000 requests-per-day / 100,000 components in H2 deployments. Workloads beyond these limitations are not supported. Container-based deployments are also not supported in H2 deployments.
Temporary Directory
The temporary directory at $data-dir/tmp
must not be mounted with noexec
or repository manager startup will fail with java.lang.UnsatisfiedLinkError
message of failed to map segment from shared object: Operation not permitted
.
Disk Space Requirements
Required disk space for Nexus Repository varies by deployment size and complexity. You must have at least 4GB available disk space at all times; if available disk space drops below 4GB, the database will switch to read-only mode.
Sonatype Nexus Repository requires disk space for two primary directories:
Application Directory - Size varies slightly per release; as of August 2024, it is around 390MB. It is normal to have multiple application directories installed on the same host over time as you upgrade.
Data Directory - Size varies based on complexity and formats. Plan for substantial disk space. Note that formats like Docker and Maven can use very large amounts of storage (500GB easily).
File Systems
Nexus Repository stores multiple kinds of data and has two primary storage requirements to keep in mind when selecting a file system:
Embedded data (H2, OrientDB (Legacy), Elastic Search) requires very responsive, fast storage, ideally local disk
Blob storage (component binaries), which requires moderately responsive, high-capacity storage
The table below outlines various file systems and whether Nexus Repository can use them for embedded data and/or blob storage:
File System | Embedded data | Blob Stores | Comment |
---|---|---|---|
Local storage | Supported | Supported | Local storage is a good choice for both embedded data and binary storage. |
NFS v4 | Not Recommended (See Comment) | Supported |
|
Amazon EBS | Supported | Supported | EBS is a viable choice for both embedded data and binary storage. |
Amazon EFS | Unsupported | Supported (See Comment) |
|
Amazon S3 | N/A | Supported | S3 semantics aren't suitable for embedded data, but S3 is popular for binary storage. |
SMB, CIFS | Unsupported | Supported | Problems are common with SMB or CIFS-mounted devices for embedded data. |
Azure Blob Storage | N/A | Supported |
|
Azure Files | Unsupported | Supported | Issues with file handles have been observed when accessing embedded data over SMB. |
S3-Compatible | Unsupported | Supported (See Comment) |
|
Google Cloud Storage | N/A | Supported | Available for blob storage from Nexus 3.74.0 Pro. |
Google Cloud Filestore | Supported | N/A | Available for embedded data from Nexus 3.74.0 Pro. |
NFS v3 | Unsupported | Numerous customers have experienced inadequate performance with NFS v3. | |
GlusterFS | Unsupported | Split-brain problems and slow performance are common. | |
FUSE | Unsupported | FUSE based user-space filesystems are known to be unreliable for Nexus Repository. |
File System Optimization
We also have some optimization suggestions to use at your discretion. Also consider the noatime
option for your Nexus Repository work directory mounts and limit the symbolic links used as this will cause increased overhead whenever paths need to be resolved to an absolute file path.
Web Browser
Our general policy is to support the most recent modern browser version for your supported OS at time of Sonatype Nexus Repository version release date.
Vendor | Browser | Versions |
---|---|---|
Chrome | latest at Nexus Repository version release | |
Mozilla | Firefox | latest and ESR* at Nexus Repository version release |
Apple | Safari | latest at Nexus Repository version release |
Microsoft | Edge | latest at Nexus Repository version release |
Microsoft | Internet Explorer | No longer supported |
Note
* There is a known issue with uploading licenses using Firefox ESR.