> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/deployment/hi/self-hosted/inference-server/configuration/docker-configuration.md).

# Docker Configuration Options

self-hosted Roboflow Inference container को कॉन्फ़िगर करें - networking, CORS, NMS defaults, model cache, workers, HTTPS, और Secure Gateway.

Inference सर्वरों में कई कॉन्फ़िगर करने योग्य पैरामीटर होते हैं जिन्हें आप environment variables के साथ सेट करते हैं। के साथ एक environment variable सेट करने के लिए `docker run`, उपयोग करें `-e` फ्लैग:

```bash
docker run -it --rm -e ENV_VAR_NAME=env_var_value -p 127.0.0.1:9001:9001 --gpus all roboflow/roboflow-inference-server-gpu:latest
```

यह पृष्ठ उन विकल्पों को कवर करता है जिन्हें आप सबसे अधिक बदलने की संभावना रखते हैं। पूरी सूची के लिए देखें [Reference अनुभाग में।](/deployment/hi/self-hosted/inference-server/configuration/environment-variables.md).

## नेटवर्किंग

`HOST`: स्ट्रिंग (डिफ़ॉल्ट `0.0.0.0`)। कंटेनर के अंदर इंटरफ़ेस चुनता है; Docker bridge networking के लिए इस मान को बनाए रखें ताकि प्रकाशित पोर्ट सर्वर तक पहुँच सकें।

होस्ट-साइड मैपिंग का उपयोग करें `-p 127.0.0.1:9001:9001` स्थानीय-केवल पहुँच के लिए, या जानबूझकर एक LAN इंटरफ़ेस चुनें। CLI का `--bind-address` उस मैपिंग को नियंत्रित करता है; इसके बजाय macOS और Windows desktop bundles उपयोग करते हैं `HOST`, डिफ़ॉल्ट रूप से `127.0.0.1`. देखें [नेटवर्क एक्सेस](/deployment/hi/self-hosted/inference-server/configuration/security.md#restrict-network-access) Jetson और tunnel अपवादों के लिए।

**`PORT`**: पूर्णांक (डिफ़ॉल्ट `9001`)। HTTP इंटरफ़ेस द्वारा उपयोग किए जाने वाले पोर्ट को सेट करता है।

**`ALLOW_ORIGINS`**: स्ट्रिंग (डिफ़ॉल्ट `*`)। सेट करता है `allow_origins` FastAPI के साथ HTTP इंटरफ़ेस के लिए उपयोग किए जाने वाले CORS middleware पर property. कई मान कॉमा से अलग करके दिए जा सकते हैं, उदाहरण के लिए `ALLOW_ORIGINS=orig1.com,orig2.com`.

## इन्फरेंस व्यवहार

**`CLASS_AGNOSTIC_NMS`**: बूलियन (डिफ़ॉल्ट `MODEL_VALIDATION_DISABLED`)। डिटेक्शन मॉडलों (object detection, instance segmentation, और इसी तरह) के लिए डिफ़ॉल्ट non-maximum suppression (NMS) व्यवहार सेट करता है। जब `WORKFLOWS_CUSTOM_PYTHON_EXECUTION_MODE`, NMS class-agnostic होता है, इसलिए अलग-अलग classes की overlapping detections को IoU threshold के आधार पर हटाया जा सकता है। जब `MODEL_VALIDATION_DISABLED`, केवल उसी class की overlapping detections को हटाने के लिए विचार किया जाता है।

**`MAX_CANDIDATES`**: पूर्णांक (डिफ़ॉल्ट `3000`)। detection के लिए candidates की अधिकतम संख्या।

**`MAX_DETECTIONS`**: पूर्णांक (डिफ़ॉल्ट `300`)। किसी मॉडल द्वारा लौटाई गई detections की अधिकतम संख्या।

**`FIX_BATCH_SIZE`**: बूलियन (डिफ़ॉल्ट `MODEL_VALIDATION_DISABLED`)। जब `WORKFLOWS_CUSTOM_PYTHON_EXECUTION_MODE`, batch size इस सर्वर के लिए कॉन्फ़िगर किए गए maximum batch size पर स्थिर हो जाती है।

**`MAX_ACTIVE_MODELS`**: पूर्णांक (डिफ़ॉल्ट `8`)। internal model manager एक समय में memory में जितने अधिकतम मॉडल रखता है। डिफ़ॉल्ट रूप से, model queue नए मॉडल के लिए जगह बनाते समय सबसे कम हाल ही में उपयोग किए गए model को हटाता है।

**`NUM_WORKERS`**: पूर्णांक (डिफ़ॉल्ट `1`)। HTTP इंटरफ़ेस द्वारा उपयोग किए जाने वाले workers की संख्या।

## CLIP मॉडल विकल्प

**`CLIP_VERSION_ID`**: स्ट्रिंग (डिफ़ॉल्ट `ViT-B-16`)। सभी द्वारा उपयोग किए जाने वाले OpenAI CLIP संस्करण को सेट करता है `/clip` routes. उपलब्ध संस्करण हैं `RN101`, `RN50`, `RN50x16`, `RN50x4`, `RN50x64`, `ViT-B-16`, `ViT-B-32`, `ViT-L-14-336px`और `ViT-L-14`.

**`CLIP_MAX_BATCH_SIZE`**: पूर्णांक (डिफ़ॉल्ट `8`)। CLIP मॉडल inference functions द्वारा स्वीकार की जाने वाली अधिकतम batch size सेट करता है।

## मॉडल कैश

**`MODEL_CACHE_DIR`**: स्ट्रिंग (डिफ़ॉल्ट `/tmp/cache`)। root model cache directory के लिए container path सेट करता है।

**`TENSORRT_CACHE_PATH`**: स्ट्रिंग (डिफ़ॉल्ट: का मान `MODEL_CACHE_DIR`)। TensorRT cache directory के लिए container path सेट करता है। इस path को mounted host volume के साथ सेट करने से TensorRT-आधारित servers का cold start time कम होता है।

### स्थायी मॉडल कैश

डिफ़ॉल्ट रूप से मॉडल weights कंटेनर के अंदर यहाँ संग्रहीत होते हैं `/tmp/cache` और **container restart या system reboot पर खो जाते हैं**. production deployments के लिए, डाउनलोड किए गए weights को बनाए रखने हेतु एक persistent host volume माउंट करें:

```bash
# होस्ट पर एक persistent cache directory बनाएं
mkdir -p /var/lib/roboflow/cache

# कंटेनर को एक persistent cache के साथ चलाएँ
docker run -d \\
  -p 127.0.0.1:9001:9001 \
  -v /var/lib/roboflow/cache:/tmp/cache \\
  -e MODEL_CACHE_DIR=/tmp/cache \\
  roboflow/roboflow-inference-server-cpu:latest
```

ध्यान रखने योग्य बातें:

* होस्ट path persistent storage पर होना चाहिए, न कि `/tmp`.
* माउंट की गई directory के लिए container user (आमतौर पर UID 1000 या root, image पर निर्भर) के उपयुक्त permissions होने चाहिए।
* एक persistent cache आपको deployment से पहले weights pre-populate करने देता है और उन्हें container updates के बीच बनाए रखता है।

env.py [ऑफ़लाइन weights डाउनलोड](https://docs.roboflow.com/reference/inference/inference-python/offline-weights) weights को पहले डाउनलोड करने और cache करने के बारे में अधिक जानकारी के लिए।

## HTTPS / TLS

**`Inference server के लिए HTTPS को चालू/बंद करता है। जब True हो, तो server SSL_CERTFILE और SSL_KEYFILE पढ़ता है और TLS पर traffic सेवा देता है। देखें`**: बूलियन (डिफ़ॉल्ट `MODEL_VALIDATION_DISABLED`)। जब सेट किया जाता है, तो Inference Server HTTP के बजाय HTTPS पर ट्रैफ़िक सर्व करता है, और प्रमाणपत्र तथा private key को यहाँ से पढ़ता है `जब ENABLE_HTTPS=True हो, तब परोसे जाने वाले PEM-encoded TLS certificate का path।` और `SSL_CERTFILE के साथ जोड़े गए PEM-encoded TLS private key का path।`.

**`जब ENABLE_HTTPS=True हो, तब परोसे जाने वाले PEM-encoded TLS certificate का path।`**: स्ट्रिंग (डिफ़ॉल्ट `SSL_KEYFILE`) और **`SSL_CERTFILE के साथ जोड़े गए PEM-encoded TLS private key का path।`**: स्ट्रिंग (डिफ़ॉल्ट `SSL_KEYFILE_PASSWORD`)। कंटेनर के अंदर PEM-encoded certificate और private key के paths। डिफ़ॉल्ट सुविधाजनक mount points हैं, इसलिए आमतौर पर आपको केवल अपने cert और key को यहाँ bind करना होता है `/etc/inference/certs/` और सेट करें `ENABLE_HTTPS=true`.

`Uvicorn के लिए encrypted-key passphrase। parallel Gunicorn launcher द्वारा समर्थित नहीं।`: स्ट्रिंग (वैकल्पिक)। Uvicorn launchers को एक encrypted private key का passphrase प्रदान करता है; parallel Gunicorn launcher इसे समर्थन नहीं करता।

`HTTPS के लिए client CA bundle। देखें`: स्ट्रिंग (वैकल्पिक)। HTTPS सक्षम होने पर mTLS के लिए client CA bundle प्रदान करता है। देखें [HTTPS कॉन्फ़िगरेशन](/deployment/hi/self-hosted/inference-server/configuration/https.md#mutual-tls) enforcement और release scope के लिए।

self-signed certificates के साथ संपूर्ण walkthrough: [SSL\_CERTFILE](/deployment/hi/self-hosted/inference-server/configuration/https.md).

## Secure Gateway

**`SECURE_GATEWAY`**: स्ट्रिंग (डिफ़ॉल्ट unset)। का पता सेट करता है [air-gapped deployments के लिए (legacy alias: LICENSE\_SERVER)। Roboflow API और model download traffic को gateway proxy के माध्यम से रूट करता है, version check को जबरन अक्षम करता है, और जब remote plus hosted कॉन्फ़िगर हो, तब local Workflow step execution पर वापस जाता है। देखें](/deployment/hi/self-hosted/enterprise/secure-gateway.md) air-gapped deployments के लिए proxy। Roboflow API और model download traffic इस proxy के माध्यम से routed होता है। जो traffic proxy नहीं किया जा सकता, उसे निम्न प्रकार disabled या reroute किया जाता है:

* Inference version check (जो कॉल करता है `api.github.com`) को जबरन निष्क्रिय कर दिया जाता है: `background thread में चलने वाली Inference version check को अक्षम करता है। जब SECURE_GATEWAY कॉन्फ़िगर हो, तो इसे ज़बरन True पर सेट किया जाता है (स्पष्ट False को ओवरराइड करते हुए), क्योंकि gateway के पीछे api.github.com उपलब्ध नहीं होता।` को सेट किया जाता है `WORKFLOWS_CUSTOM_PYTHON_EXECUTION_MODE` भले ही इसे स्पष्ट रूप से कुछ और कॉन्फ़िगर किया गया हो।
* यदि `WORKFLOWS_STEP_EXECUTION_MODE=remote` को इनके साथ जोड़ा जाता है `WORKFLOWS_REMOTE_API_TARGET=hosted`, तो step execution वापस हो जाती है `GPU tensor pipeline` एक चेतावनी के साथ, क्योंकि hosted Roboflow inference endpoints gateway proxy के माध्यम से पहुँच योग्य नहीं हैं। remote execution बनाए रखने के लिए उपयोग करें `WORKFLOWS_REMOTE_API_TARGET=self-hosted` **और** को इंगित करें `LOCAL_INFERENCE_API_URL` (डिफ़ॉल्ट `http://127.0.0.1:9001`) को gateway perimeter के अंदर पहुँच योग्य एक Inference server की ओर इंगित करें।
* थर्ड-पार्टी integrations (Google Vision और Gemini direct-key paths, Stability AI, Twilio media upload, बाहरी hosts को webhooks) proxy नहीं किए जाते और विफल होंगे जब तक gateway network उन्हें अनुमति न दे।

एक स्पष्ट HTTPS gateway URL का उपयोग करें, जैसे `SECURE_GATEWAY=https://gateway.example.com`, और gateway certificate पर भरोसा करें। लंबित runtime-hardening build bare addresses को HTTPS में बदलता है और non-loopback plaintext gateways को अस्वीकार करता है; देखें [उस build में False](/deployment/hi/self-hosted/inference-server/configuration/security-migration.md#gateway-transport).

पुराना `LICENSE_SERVER` environment variable अभी भी स्वीकार किया जाता है लेकिन deprecated है।
