Skip to navigation

Configuration

View as Markdown

This section describes how to configure the MSA Search NIM container using environment variables, GPU selection, and volume mounting.

GPU Selection

By default, Docker uses all available GPUs on the system when started with the NVIDIA Container Runtime:

docker run --runtime=nvidia ...

To expose only specific GPUs to the container, use the --gpus flag:

docker run --gpus='"device=1"' ...

The device IDs are listed in the output of nvidia-smi -L. For more information on GPU selection, refer to the NVIDIA Container Toolkit documentation.

Environment Variables

The following environment variables can be passed to the NIM using the -e flag with docker run:

ENVRequired?DefaultNotes
NGC_API_KEYYesNoneYou must set this variable to the value of your personal NGC API key.
NIM_CACHE_PATHNo/opt/nim/.cacheLocation (in container) where the container caches model artifacts.
NIM_HTTP_API_PORTNo8000Port inside the container where the NIM service is published. When using the -p flag with docker run, ensure the right-hand side of the colon matches this value (e.g., -p 8000:8000).
NIM_DISABLE_GPU_SERVERNoFalseControls the GPU Server for MMSeqs2. The GPU Server is enabled by default for optimal performance with the included ColabFold databases. Set to True to disable if using custom databases that do not support GPU Server.
NIM_GLOBAL_MAX_MSA_DEPTHNo500Sets the maximum number of MSA sequences returned. Must be set globally for all requests when GPU Server is enabled (default in version 2.0.0).
NIM_MSA_API_MAX_DATABASESNo5Maximum number of databases that can be specified in a single API request.
NIM_MSA_API_MAX_MSA_SEQUENCESNo10001Maximum value for the max_msa_sequences API parameter.
NIM_MSA_API_MAX_ITERATIONSNo6Maximum value for the iterations API parameter.
NIM_MSA_API_MAX_CHAINSNo20Maximum number of chains (sequences) allowed in a paired MSA search request.
NIM_MSA_API_MAX_SEQUENCE_LENGTHNo4096Maximum length of an input protein sequence.
NIM_MSA_API_DEFAULT_STRUCTURAL_TEMPLATE_DBSNoPDB70_220313Comma-separated list of databases to search for structural templates by default.
NIM_MSA_DB_NAME_MAPPINGSNouniref30_2302:Uniref30_2302,pdb70_220313:PDB70_220313Comma-separated list of lowercase:DisplayName mappings for database names in API responses when using ["all"]. Used for backwards compatibility; will be removed in MSA 3.0 when all database names will resolve to lowercase.
NIM_LOG_LEVELNoINFOSpecifies the level of logging detail. Available options: DEBUG, INFO, WARNING, ERROR.
NIM_MODEL_NAMENoNonePath to custom database directory inside the container. Use with volume mounts to load external or custom MMSeqs2 databases. See Task-Specific Profiles and Custom Databases for details.
NIM_MODEL_PROFILENoNoneSelect a specific database profile by ID. Profiles allow reduced storage by loading only the databases needed for a particular task. See Task-Specific Profiles and Custom Databases.
NIM_MSA_DB_INDEX_PATTERNNo**/*.idxGlob pattern for discovering sequence databases. The NIM scans for files matching this pattern under NIM_MODEL_NAME at startup. Database names are derived from the parent directory.
NIM_MSA_PDB_CIFS_ZIPNo**/pdb*.zipGlob pattern for discovering the PDB mmCIF structure archive. Used for retrieving 3D structures during structural template search.
NIM_TELEMETRY_MODENo0Controls telemetry collection. Set to 0 to disable telemetry (default), set to 1 to enable telemetry. Telemetry helps NVIDIA improve performance, compatibility, and reliability while maintaining strict privacy protections. For more information, refer to NVIDIA’s Privacy Policy and NIM Telemetry Settings.
NIM_TELEMETRY_ENABLE_LOGGINGNotrueEnables logging for telemetry operations when set to true. Only applicable when NIM_TELEMETRY_MODE=1.

Volumes

The following container paths can be mounted to local directories for persistent storage.

Container PathRequiredNotesDocker Argument Example
/opt/nim/.cache (or NIM_CACHE_PATH if set)RecommendedDirectory where model artifacts and databases are cached. If not mounted, the container will re-download on each startup. Ensure the local directory has read-write-execute permissions (chmod 0777). Example: mkdir -p ~/.cache/nim && chmod 0777 ~/.cache/nim-v ~/.cache/nim:/opt/nim/.cache
Custom path (set via NIM_MODEL_NAME env variable)OptionalMount custom databases by setting NIM_MODEL_NAME to point to your database directory inside the container, then mount the host directory to that path. Useful for using external or custom MMSeqs2 databases. See Task-Specific Profiles and Custom Databases for detailed examples.-e NIM_MODEL_NAME=/databases -v /host/path/to/db:/databases/mydb:ro

The MODEL_PATH environment variable is also supported for backward compatibility with the same behavior as NIM_MODEL_NAME.