{"id":18641,"library":"p3x-redis-ui-server","title":"P3X Redis UI Server","description":"Socket.IO backend server for the P3X Redis UI (v2026.4.373) with dual Angular/React frontends. Provides real-time Redis management via WebSocket events, supporting ioredis (standalone, cluster, sentinel), JWT-based authentication, AI query translation to Redis commands via Groq, and auto-decompression of 7 compressed formats (GZIP, ZIP, zlib, Zstandard, LZ4, Snappy, Brotli). Requires Node.js >=22. Released under MIT, no REST endpoints—all communication is socket-based. Differentiator: dual frontend stack (Angular + React) with full feature parity, 54 languages, 7 themes, and integrated login page.","status":"active","version":"2026.4.373","language":"javascript","source_language":"en","source_url":"https://github.com/patrikx3/redis-ui-server","tags":["javascript","redis","ui","gui","web","electron","desktop","server","angularjs"],"install":[{"cmd":"npm install p3x-redis-ui-server","lang":"bash","label":"npm"},{"cmd":"yarn add p3x-redis-ui-server","lang":"bash","label":"yarn"},{"cmd":"pnpm add p3x-redis-ui-server","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Serves the dual Angular/React frontend assets (not directly a npm dep, but bundled together)","package":"p3x-redis-ui-material","optional":false},{"reason":"Redis client for standalone, cluster, and sentinel modes","package":"ioredis","optional":false},{"reason":"Core real-time communication protocol","package":"socket.io","optional":false}],"imports":[{"note":"Package is ESM-only since v2023. CommonJS require() will not work.","wrong":"const P3XRedisUiServer = require('p3x-redis-ui-server')","symbol":"default","correct":"import P3XRedisUiServer from 'p3x-redis-ui-server'"},{"note":"Named export, not default. Introduced in v2024.","wrong":"import startServer from 'p3x-redis-ui-server'","symbol":"startServer","correct":"import { startServer } from 'p3x-redis-ui-server'"},{"note":"Type imports must use 'import type' in TypeScript under 'verbatimModuleSyntax'. The type is not a runtime value.","wrong":"import { P3XRedisUiServerOptions } from 'p3x-redis-ui-server'","symbol":"P3XRedisUiServerOptions","correct":"import type { P3XRedisUiServerOptions } from 'p3x-redis-ui-server'"}],"quickstart":{"code":"import { startServer } from 'p3x-redis-ui-server';\nimport { createServer } from 'http';\n\nconst httpServer = createServer();\nconst apiServer = await startServer({\n  httpServer,\n  config: {\n    p3xrs: {\n      port: 7843,\n      connections: {\n        'my-redis': {\n          host: 'localhost',\n          port: 6379,\n          password: process.env.REDIS_PASSWORD ?? ''\n        }\n      },\n      auth: {\n        enabled: true,\n        username: 'admin',\n        password: process.env.UI_PASSWORD ?? 'changeme'\n      },\n      lang: 'en',\n      theme: 'dark-blue',\n      ai: {\n        provider: 'groq',\n        apiKey: process.env.GROQ_API_KEY ?? ''\n      }\n    }\n  }\n});\n\nhttpServer.listen(7843, () => {\n  console.log('P3X Redis UI server running on http://localhost:7843');\n});","lang":"typescript","description":"Initializes the P3X Redis UI server with custom config, authentication, and AI query support."},"warnings":[{"fix":"Upgrade Node.js to v22 or later (currently tested on v24.14.1).","message":"Minimum Node.js version required: >=22. Versions <22 will throw an engine check error or fail to start.","severity":"breaking","affected_versions":"<22.0.0"},{"fix":"Convert project to ESM (type: 'module' in package.json) or use dynamic import().","message":"ESM-only package since v2023.4. CommonJS require() throws MODULE_NOT_FOUND or ERR_REQUIRE_ESM.","severity":"breaking","affected_versions":">=2023.4.0"},{"fix":"Use Socket.IO client to communicate. See documentation for event list.","message":"No REST API endpoints. All Redis operations must be done via Socket.IO events. HTTP requests to paths other than /health and the frontend assets will fail.","severity":"breaking","affected_versions":">=2022.0.0"},{"fix":"Rename config key 'connectionsFile' to 'connections.fileName' in p3xrs.json.","message":"The 'p3xrs.connectionsFile' config option is deprecated in favor of 'p3xrs.connections.fileName' and will be removed in v2027.","severity":"deprecated","affected_versions":">=2026.0.0"},{"fix":"Store the API key in an environment variable (GROQ_API_KEY) and restrict network access to api.groq.com for the server process.","message":"Groq API key usage: The AI query feature sends your Groq API key to Groq's servers. Ensure the key has appropriate rate limits and permissions. The package does not encrypt the key in memory.","severity":"gotcha","affected_versions":">=2025.0.0"},{"fix":"Monitor open file handles with lsof. Reduce connection pool size in config or increase system limit (ulimit -n 65536).","message":"File descriptor leak: Running the server in a tight reconnect loop with many Redis connections may exhaust file descriptors. Limit number of concurrent connections or set ulimit.","severity":"gotcha","affected_versions":">=2024.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use import { startServer } from 'p3x-redis-ui-server' or change your project to ESM.","cause":"CommonJS require() used for an ESM-only package.","error":"TypeError: Cannot destructure property 'startServer' of '...' as it is undefined."},{"fix":"Convert your entry point to ESM by setting 'type': 'module' in package.json or use dynamic import().","cause":"The package is ESM-only and cannot be required from CJS context.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module /path/to/p3x-redis-ui-server/index.js from /path/to/your/index.js not supported."},{"fix":"Kill the existing process (lsof -ti :7843 | xargs kill) or change the port in config.","cause":"Port 7843 is already in use by another instance or process.","error":"Error: listen EADDRINUSE :::7843"},{"fix":"Verify the hostname or IP in p3xrs.json for the Redis connection.","cause":"Hostname 'redis-host' could not be resolved. Check your connections configuration.","error":"Error: getaddrinfo ENOTFOUND redis-host"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}