> 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/self-hosted/enterprise/deployment-manager/making-changes/update-device-configuration.md).

# Update Device Configuration

Manage device settings, service versions, inference engine, CA certificates, and additional services.

### Configuring Your Deployment

The Configuration page in Deployment Manager lets you manage services running on your device. This guide provides an overview of the key configuration options. Click "Save Configuration" to save edits or "Reset" to discard unsaved changes.

#### Device Settings

You can rename your device or update its timezone. The device name is purely for display in the Deployment Manager user interface and will not break any integrations. The timezone sets the clock on the device, which its logs, events, and maintenance windows use. Set it to the physical location of the deployment.

<figure><img src="https://1583372177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-5b850a8b6b8208f35daaf63f53ca2d546de5ee9a%2Fenterprise-device-settings.png?alt=media" alt="Device Settings panel with device name, timezone, and maintenance window"><figcaption></figcaption></figure>

#### Updates / Performance Settings

Versions of services can be configured on the tab for each service. Click "Update" on a service's card or tab to review the target version, estimated download and disk space, and maintenance schedule. If the update may not fit on the disk, the button reads "Update Anyway". Confirming saves the update, or adds it to existing unsaved edits. The current version keeps running while the new one downloads. A chip next to the device name shows progress (ex: "Updating Inference · 42%") or "Update Failed", and the "Activity" tab shows why a download failed.

**Version indicators:**

* **"Update Available"** - A newer version exists
* **"Update Scheduled"** - The update waits for a maintenance window
* **"Downloading", "Restarting", or "Update Failed"** - Installation progress or failure
* **"Update Pending"** - The running version differs from the configured version; check service logs if this persists

If a device runs its own image for a service (ex: a custom HMI instead of the default one), the version shows read-only. Version indicators, the "Update" button, and automatic updates do not apply, because the default version tracks a different image.

**Automatic Updates** - Turn on "Auto Update" on a service's card, or "Automatic Updates" on its tab, to keep the service on the version in your Workspace's default configuration. PLC Relay, OPC UA Server, and the RTSP Simulator follow the version shipped with Roboflow instead. Updates apply during your [Maintenance Windows](/deployment/self-hosted/enterprise/deployment-manager/setting-up/setup-maintenance-windows.md). "Latest Roboflow Core" in "Device Settings" turns on automatic updates for inference and Redis together. If you save configuration changes outside a maintenance window, deploy-affecting changes are queued for a window after any required approval.

To set the inference version on many devices at once, select them in the device list and click "Set Inference Version". The results list each device as saved, queued (waits for its maintenance window), failed, or skipped. Saved means Roboflow recorded the version, not that the device installed it. Other config edits on each device are kept.

**Inference Engine** - Controls which runtime the inference service uses. Select one of four modes:

* **Auto** (recommended) - Uses the Inference Models runtime and its model-specific defaults.
* **ONNX** - Uses ONNX Runtime with the providers available on the device.
* **TRT** - Forces ONNX Runtime with the TensorRT execution provider. Model compilation can take several minutes on first run. TensorRT engine caching is enabled when Offline Mode is off.
* **CPU** - Forces CPU-only inference. Useful for debugging GPU-related issues.

Under "Performance", use "RTSP Stream Capture" to set how the inference service connects to all its RTSP cameras. Choose "Default" for automatic transport, "TCP" for more reliable capture on lossy networks, "UDP" for lower latency, or "Custom" for FFmpeg options in `key;value|key;value` format. With "TCP", tune "Probe Size" (bytes) and "Analyze Duration" (microseconds): larger values improve stream detection but delay startup.

**Offline Mode** - Turn on this toggle to stop the inference service from contacting Roboflow. The device then runs Workflows and models only from its local cache, so published Workflow changes and new model versions do not reach inference. The change takes effect when the inference service restarts. While it is on, the device shows an "Offline Mode" chip in the device list and on the device page, and the publish confirmation for a Workflow lists the devices that will not get the update.

To see which Workflows the device keeps for offline use, open the device's "Streams" tab and scroll to "Workflows". To keep a Workflow on the device even when no stream uses it, click "Add Workflow", select it, and click "Save". The device downloads the latest published version and the models it can identify, and keeps them until you unpin it. Models selected at runtime must already be cached for offline use. On production devices in Workspaces with configuration approval enabled, changes to these pins can wait for approval before they take effect.

Before disconnecting, [prepare your device for offline operation](/deployment/self-hosted/enterprise/deployment-manager/setting-up/prepare-a-device-for-offline-operation.md). Follow the [Offline Mode readiness procedure](/deployment/self-hosted/enterprise/offline-mode.md#web-app) for detailed cache, TensorRT, restart, and recovery checks.

**Multiprocessing** - Turn on this toggle to run each stream's Workflow in its own process. This gives more throughput when several Workflows run at the same time. Each process loads its own models, so memory use goes up. New devices start with it on. The toggle shares the host's IPC namespace with the inference container. Changing it restarts the inference service when the device applies the new configuration.

#### Python Configuration

To run custom Python code in the inference service, expand "Python Configuration" at the bottom of the Configuration tab and edit `config.py`. Its `setup()` function runs once when the service starts, `on_prediction(predictions, frame)` runs after each prediction, and `pipeline_parameters` passes extra settings to the Inference Pipeline. Invalid Python syntax blocks saving. Saving a change restarts the inference service.

***

#### CA Certificates

Manage trusted CA certificates from "CA Certificates" on the device's "Networking" tab. This is useful when communicating with services that use custom or internal certificates (ex: corporate proxies or private registries).

Click "Add Certificate", enter a "Certificate Name" and the "PEM Content", then click "Save Configuration". Click the trash icon to remove a certificate. Certificate names may only contain letters, numbers, dots, hyphens, and underscores, and cannot start with a dot. The device installs the certificates on the host and in every service, so saving a certificate change restarts all services.

<figure><img src="https://1583372177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-b52d9c82bc0b8ad590e170c7a10862d4df6ca318%2Fdevice-ca-certificates.png?alt=media" alt="CA Certificates section on the Networking tab with a certificate name, PEM content, and Add Certificate"><figcaption></figcaption></figure>

***

#### Additional Services

Roboflow also allows you to add preconfigured additional services to your device. Each has its own configuration options, and you'll be prompted as needed when you try to add one:

* [Event Store](/deployment/self-hosted/enterprise/deployment-manager/services/event-store.md) for storing inference events on the device.
* [OPC UA Server](/deployment/self-hosted/enterprise/deployment-manager/services/opc-ua-server.md) for publishing data as OPC UA tags.
* [PLC Relay](/deployment/self-hosted/enterprise/deployment-manager/services/plc-relay.md) for reading and writing PLC tags.
* [RTSP Simulator](/deployment/self-hosted/enterprise/deployment-manager/services/rtsp-simulator.md) for streaming a video file as a test camera.
* A default HMI UI.

Click "Add Service" below the service cards to add one. Adding a service saves the configuration right away. To remove a service, click the trash icon in its card header. The removal is staged like any other configuration edit: it is saved when you click "Save Configuration" and can wait for a maintenance window or configuration approval, and "Reset" undoes it before then. Removing a service stops the Workflows or integrations that use it. RFDM manages streams without a separate manager container.

To run your own container, choose "Custom Service" from "Add Service" and enter a service name, container image, and tag. Open "Advanced Options" to set ports, volume mounts, the command, restart policy, dependencies, runtime, or environment variables, then click "Add Service". Write volume mounts as `host_path:container_path`, adding `:ro` for read-only. Each container path can be mounted only once.

When the device applies saved changes, it restarts only the services whose settings changed and the services that depend on them.

To restart every service on a device, click "Restart Services" in the device's options menu or its row menu in the device list. Streams and inference stop while the services restart. For 60 seconds after a configuration change, the dialog asks you to wait before restarting. Restarting while a device compiles a TensorRT engine discards the compile. To restart the whole device, click "Reboot Device" in the device's options menu. The device is unavailable until it finishes booting.

To restart one saved service, open its tab and click "Restart Service". The service stops for a short time, and so do any streams that use it. The dialog shows when the service is ready, or if the restart failed or timed out. If it failed, click "Retry Restart". Save or discard your changes first. The button shows only on devices with a Deployment Manager version that supports service restarts, and not for the manager service.
