RemoteDev Server for Redux DevTools
remotedev-server provides a local server bridge for the Redux DevTools ecosystem, enabling remote communication with applications through the Redux DevTools extension, Remote Redux DevTools, or the RemoteDev client. This allows developers to self-host the devtools monitoring server, offering an alternative to the public remotedev.io service for greater control and privacy. The current stable version is 0.3.1, last published in February 2021. The project appears to be largely unmaintained since then, suggesting an abandoned release cadence. Its key differentiator is the ability to run a dedicated, configurable WebSocket server (supporting HTTP/S and custom database options for log persistence) directly within a development environment or as a standalone process to capture and display Redux state changes from connected applications, including React Native. It primarily functions as a CommonJS module.
Common errors
-
Error: listen EADDRINUSE: address already in use :::8000
cause Another process is already using the default port 8000, preventing remotedev-server from starting.fixStop the conflicting process or start remotedev-server on a different port using `--port <NEW_PORT>` in CLI or `port: <NEW_PORT>` in programmatic options. -
remotedev: command not found
cause The `remotedev` executable is not found in the system's PATH, typically because the package was installed locally and not globally, or npm's local `node_modules/.bin` directory is not in the PATH.fixIf installed locally, run it via an npm script (e.g., `npm run remotedev` if defined in `package.json`). If desired globally (not recommended), install with `npm install -g remotedev-server`.
Warnings
- breaking The project is largely unmaintained since its last update in February 2021. Users should be aware that it may not be compatible with newer Node.js versions, WebSocket libraries, or recent changes in the Redux DevTools ecosystem. Critical bugs or security vulnerabilities are unlikely to be patched.
- gotcha Installing `remotedev-server` globally (`npm install -g remotedev-server`) is explicitly not recommended by the maintainers. While it allows direct command-line execution, it can lead to versioning conflicts and makes project-specific configurations harder to manage.
- gotcha When running multiple instances of remotedev-server or integrating with other services, port conflicts are common. The default port is 8000.
Install
-
npm install remotedev-server -
yarn add remotedev-server -
pnpm add remotedev-server
Imports
- remotedev
const remotedev = require('remotedev-server').default;import remotedev from 'remotedev-server';
- startServer
import { startServer } from 'remotedev-server';import remotedev from 'remotedev-server'; remotedev({ port: 8000 });
Quickstart
import remotedev from 'remotedev-server';
import http from 'http';
const PORT = process.env.REMOTEDEV_PORT ? parseInt(process.env.REMOTEDEV_PORT, 10) : 8000;
const HOSTNAME = process.env.REMOTEDEV_HOSTNAME || 'localhost';
const PROTOCOL = process.env.REMOTEDEV_PROTOCOL || 'http';
const serverOptions = {
hostname: HOSTNAME,
port: PORT,
protocol: PROTOCOL
};
// To enable HTTPS, provide key, cert, and passphrase
// if (PROTOCOL === 'https') {
// serverOptions.key = process.env.REMOTEDEV_KEY_PATH ?? '';
// serverOptions.cert = process.env.REMOTEDEV_CERT_PATH ?? '';
// serverOptions.passphrase = process.env.REMOTEDEV_PASSPHRASE ?? '';
// }
remotedev(serverOptions);
console.log(`RemoteDev server running on ${PROTOCOL}://${HOSTNAME}:${PORT}`);
console.log('Connect your Redux DevTools extension to this address.');