> 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/setting-up/prepare-a-device-for-offline-operation.md).

# Prepare a Device for Offline Operation

Complete container downloads, cache Workflows and models, and configure networking and cameras before taking a device offline.

Prepare your device in Deployment Manager while it has internet access so it can run at a site without internet. [Add the device](/deployment/self-hosted/enterprise/deployment-manager/setting-up/add-a-device.md) first, then complete these steps in order. Leave "Offline Mode" off until preparation is complete.

## Complete Container Pulls

1. Open the device's "Activity" tab. Check the latest container pulls for every service you plan to use, including optional services such as Event Store or PLC Relay.
2. Wait for each required pull to show "Downloaded". Resolve "Download Failed" entries and wait for "Downloading" entries to finish before disconnecting.
3. Check that each service is running in "Service Containers" in the [Resource Monitor](/deployment/self-hosted/enterprise/deployment-manager/monitoring/view-the-resource-monitor.md), and confirm its running version matches the version you intend to deploy.

<figure><img src="https://1583372177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-ce3c85b7db28953cbc5a35ee7ebac9305d34a06b%2Foffline-prep-services.png?alt=media" alt="Activity entries showing a downloaded image and its running container"><figcaption><p>Confirm the image download completes and the service starts.</p></figcaption></figure>

Saved settings can wait for configuration approval or a [maintenance window](/deployment/self-hosted/enterprise/deployment-manager/setting-up/setup-maintenance-windows.md). Wait for changes to reach the device, and check [service logs](/deployment/self-hosted/enterprise/deployment-manager/monitoring/view-device-logs.md) if a download or startup fails.

## Select Workflows and Models

1. Open "Streams", scroll to "Workflows", and click "Add Workflow".
2. Select a Workflow and click "Save". Repeat for each Workflow you need, including those without a Stream. Pins keep their published definitions and identifiable models cached on the device.
3. In "Pinned Models" below "Workflows", click "Add Model", enter the "Model ID", and click "Save". Repeat for each model you call directly or select at runtime.

<figure><img src="https://1583372177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-ec73ab084d47fc8c6ab6a3737871ed15249d570d%2Foffline-prep-workflows.png?alt=media" alt="Pinned Workflows with cache sizes, model counts, and a missing-model warning"><figcaption><p>A cached Workflow can still have missing model weights. Resolve warnings for each Workflow you need.</p></figcaption></figure>

Run every required Workflow and model while online. For models selected at runtime, pin each possible model ID and test each selection. Follow the [cache completeness checks](/deployment/self-hosted/enterprise/offline-mode.md#check-cache-completeness) and, if needed, [TensorRT readiness checks](/deployment/self-hosted/enterprise/offline-mode.md#check-tensorrt-readiness) before continuing.

## Configure Networking and Cameras

1. Open "Networking" and [configure the device's ports](/deployment/self-hosted/enterprise/deployment-manager/making-changes/configure-device-network.md) for the destination network, including IP addresses, gateway, and DNS as needed. Wait for the settings to apply and confirm the device reconnects.
2. Connect your cameras and [add a Stream](/deployment/self-hosted/enterprise/deployment-manager/setting-up/add-a-stream.md) for each camera and Workflow. For GigE cameras, check the [camera IP settings](/deployment/self-hosted/enterprise/deployment-manager/making-changes/set-camera-static-ip.md).
3. Confirm each Stream reaches "Running", then check its frames and inference output. Use "Test connectivity" in "Networking" to check local destinations your Workflows use, and read each test result.

<figure><img src="https://1583372177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-b0d3e7d1e7e5ebedb30286ddbbd9a52857c012c3%2Foffline-prep-networking.png?alt=media" alt="Networking panel with diagnostics and cloud network management controls"><figcaption></figcaption></figure>

<figure><img src="https://1583372177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-37557f2afef0332a62280a077c17d213d8befaf4%2Foffline-prep-cameras.png?alt=media" alt="Discovered cameras with connection status, IP addresses, and Stream controls"><figcaption><p>Check camera addresses and Stream connections before disconnecting.</p></figcaption></figure>

Keep cameras and output destinations reachable on the local network without internet access. If you use DHCP, keep a DHCP server on that network; otherwise, assign static addresses on matching subnets. Every Workflow step must work with the services available at the deployment site.

## Enable Offline Mode

If you want inference to use only its local cache, open "Configuration", turn on "Offline Mode", and save. Wait for approval or scheduled application if required, then confirm inference restarts with the setting applied.

<figure><img src="https://1583372177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoksNmwps1HmYr8TqHDnX%2Fuploads%2Fgit-blob-cb97ce53a514d9347ecba57d1beec711a8b0f72c%2Foffline-prep-mode.png?alt=media" alt="Offline Mode setting in device Configuration"><figcaption></figcaption></figure>

This optional setting makes inference use its local cache; published Workflow changes and new model versions do not reach inference while it is on. Deployment Manager still needs internet for remote management and monitoring.

Before moving the device, complete the [disconnected restart test](/deployment/self-hosted/enterprise/offline-mode.md#test-a-disconnected-restart) if you enable Offline Mode. If you leave it off, [test cached fallback](/deployment/self-hosted/enterprise/offline-mode.md#cached-fallback-during-an-api-outage) with the requests your application uses.
