---
title: DWS: Local Access
slug: manage/dws-local-access
docTags: 
createdAt: 2025-03-11T07:10:25.853Z
---

:::hint{type="danger"}
Local access (i.e., access over the local network) of the Diagnostic Web Server (DWS) is *disabled* by default as of BrightSignOS 9.0.218 (on the 9.0 branch) and BrightSignOS 9.1.75 (on the 9.1 branch). In BrightSignOS versions prior to these, local access to the DWS was enabled by default.

Note that some specially configured players have the external microSD card port and USB storage disabled at the factory (SKU: SVC-internal-storage-only). For these players, local access to the DWS remains enabled by default.
:::

This page describes several methods to enable local access to the DWS.

# Enable Local Access

Local access to the DWS can be enabled using one of the methods described below.

## BrightAuthor\:connected

The easiest way to enable local access to the DWS is to use the BrightSign Author app to create a Setup File that enables and configures the DWS.

::::WorkflowBlock
:::WorkflowBlockItem
Go to the **Admin** tab and select [Setup](docId\:XNnXywMV09iEgZIIt7RWA).
:::

:::WorkflowBlockItem
Under **Player Settings** > **Player Configuration**, click the checkbox next to **Enable Local Diagnostic Web Server**.

![](https://api.archbee.com/api/optimize/0prk6SO2dy9LdU77jB8D1/KxWFheTpWVPLndn_pFAYu_image.png)

For players that are already set up and connected to a BrightSign Cloud network, the DWS can also be turned on or off under [Network > Properties](docId\:Uba8sfkMSAJsIBrbv4A6N).
:::

:::WorkflowBlockItem
Enter a **Password** for the DWS. Password must be at least 8 characters long and include at least one uppercase letter, one lowercase letter, one number, and one special character. The **Username** will always be “admin”.
:::

:::WorkflowBlockItem
Specify other player settings as desired and either save the Setup File to a file location or add the Setup to the [Setup Library](docId\:HZY2W0MeeeryifOrZ9XFR).
:::

:::WorkflowBlockItem
The player must then be provisioned which applies the Setup File to the desired player. For instructions, see this page: [Provision](docId\:Cyl9kPm02CO5rgcB9WQQv)
:::
::::

## Advanced Methods

Local access to the DWS can also be enabled using BrightScript, the JavaScript API, or the BrightSign serial command prompt. These methods require more technical expertise than using the BrightSign Author app.

The full instructions and scripts to enable local access to the DWS can be found [here](https://github.com/brightsign/dev-cookbook/blob/main/examples/enable-ldws-example/README.md#running-the-examples).

### BrightScript

A custom script containing the [roNetworkConfiguration](docId\:U6ZceYQddlz9xdAKtTmJs) object can be used to enable local access to the DWS. Include the following lines in a *autorun.brs* script to enable access to the DWS on Ethernet port 80. This example script also sets the password (replace "your\_password\_here" with a strong password).

:::CodeblockTabs
BrightScript

```javascript
Sub Main()
	' Create network configuration object (0 = eth0, 1 = wlan0, 2 = ppp0, usb0 and usb1 can be input as well)
	nc = CreateObject("roNetworkConfiguration", 0)
	dwsConfig = { port: 80, open: "your_password_here" }
	rebootRequired = nc.SetupDWS(dwsConfig)
	nc.Apply()
    registrySection = CreateObject("roRegistrySection", "networking")
	registrySection.Write("dwse","yes")
    if rebootRequired then
       RebootSystem()
    end if
    // rest of the code
End Sub
```
:::

### JavaScript API

Local access to the DWS can be enabled through the JavaScript API by using the script below. This example script also sets the password (replace "your\_password\_here" with a strong password).

```javascript
const DWSConfiguration = require("@brightsign/dwsconfiguration");
const systemClass = require("@brightsign/system");
const registryClass = require("@brightsign/registry");
async function configureLDWS() {
	const config = {
		port: 80,                      // HTTP port for web interface
		password: {
			value: "your_password_here",
			obfuscated: false          // Password stored as plain text
		},
		authenticationList: ["digest"] // Use digest HTTP authentication
	};
	try {
        const dwsConfig = new DWSConfiguration();
		await dwsConfig.applyConfig(config);
        // Also write networking.dwse key
        const registry = new registryClass();
        await registry.write("networking", "dwse", "yes");
        // Reboot the player
        const system = new systemClass();
		system.reboot();
	} catch (error) {
		console.error("Configuration failed:", error.message);
	}
}
configureLDWS();
```

### &#x20;Serial Prompt

Local access to the DWS can be enabled through the player's serial port using the [BrightSign Shell](docId\:FXXyu9jmocUtC6XE2p7l2). The following commands enable local access to the DWS by writing to the player's registry. This is the least preferred method of enabling local access to the DWS as it does not set a strong password; it sets the player's serial number as the password

```javascript

registry write networking dwse yes
registry write networking http_server 80
registry flush
```

:::hint{type="info"}
A registry flush is necessary if you plan to power cycle the unit after executing the registry command. Registry writes will buffer for a few seconds because the EEPROM and NAND have a limited number of writes (and thus need to protect against carrying out too many writes too quickly).
:::

# Access the DWS

Once local access to the DWS has been enabled using one of the methods outlined above, you can access DWS by entering the player's local IP address into your web browser. Note that there will be a redirect to a secure web connection (i.e., https\://\{player-ip}).

If the player's IP address is not known, `brightsign-${serial}.local` can be entered into the browser's address bar where `{serial}` is the serial number of the player. As with entering the IP address, there will be a redirect to a secure web connection.

:::hint{type="info"}
Your browser may display a security warning to the effect of "Your connection is not private" or "This connection is not secure". This occurs because the player is using a self-signed SSL certificate which browsers do not automatically recognize as trusted. This warning is expected and safe to bypass. Self-signed certificates, while lacking third-party validation, provide the same encryption protection as trusted certificates.
:::

# Example

See [this BrightSign GitHub page](https://github.com/brightsign/dev-cookbook/tree/main/examples/browser/enable-ldws) which demonstrates three different methods to enable and configure the DWS on your player.&#x20;

