Redis management tool written in node.js
joeferner.github.io/redis-commander/
Redis web management tool written in node.js
$ npm install -g redis-commander $ redis-commander
Installation via yarn is currently not supported. Please use npm as package manager.
Or run Redis Commander as Docker image ghcr.io/joeferner/redis-commander rediscommander/redis-commander (instructions see below).
Multi-Arch images built are available at ghcr.io/joeferner/redis-commander:latest.
(https://github.com/joeferner/redis-commander/pkgs/container/redis-commander)
Remark: new version are not published to Dockerhub right now.
Web-UI to display and edit data within multiple different Redis servers. It can connect to Redis standalone server, Sentinel based setups and Redis Cluster.
It has support for the following data types to view, add, update and delete data:
- Strings
- Lists
- Sets
- Sorted Set
- Streams (Basic support based on HFXBus project from https://github.com/exocet-engineering/hfx-bus, only view/add/delete data)
- ReJSON documents (Basic support, only for viewing values of ReJSON type keys)
$ redis-commander --help
Options:
--version Show version number [boolean]
--redis-port The port to find redis on. [number]
--redis-host The host to find redis on. [string]
--redis-socket The unix-socket to find redis on. [string]
--redis-username The redis username. [string]
--redis-password The redis password. [string]
--redis-db The redis database. [number]
--redis-optional Set to true if no permanent auto-reconnect shall be done if server is down. [boolean] [default: false]
--sentinel-port The port to find sentinel on. [number]
--sentinel-host The host to find sentinel on. [string]
--sentinels Comma separated list of sentinels with host:port. [string]
--sentinel-name The sentinel group name to use. [string]
--sentinel-username The sentinel username to use. [string]
--sentinel-password The sentinel password to use. [string]
--clusters Comma separated list of redis cluster server with host:port. [string]
--is-cluster Flag to use parameter from redis-host and redis-port as Redis cluster member [boolean] [default: false]
--cluster-no-tls-validation Flag to disable tls host name validation within cluster setups (needed for AWS) [boolean] [default: false]
--redis-tls Use TLS for connection to redis server. Required for TLS connections. [boolean] [default: false]
--redis-tls-ca-cert Use PEM-style CA certificate key for connection to redis server. Requires "redis-tls=true" [string]
--redis-tls-ca-cert-file File path to PEM-style CA certificate key for connection to redis server. Requires "redis-tls=true", Overrides
"redis-tls-ca-cert" if set too. [string]
--redis-tls-cert Use PEM-style public key for connection to redis server. Requires "redis-tls=true" [string]
--redis-tls-cert-file File path to PEM-style public key for connection to redis server. Requires "redis-tls=true", Overrides
"redis-tls-cert" if set too. [string]
--redis-tls-key Use PEM-style private key for connection to redis server. Requires "redis-tls=true" [string]
--redis-tls-key-file File path PEM-style private key for connection to redis server. Requires "redis-tls=true", Overrides
"redis-tls-key" if set too. [string]
--redis-tls-server-name Server name to confirm client connection. Server name for the SNI (Server Name Indication) TLS extension. Requires
"redis-tls=true" [string]
--sentinel-tls Enable TLS for sentinel mode. If no special "sentinel-tls-*" option is defined the redis TLS settings are
reused ("redis-tls-*"). Required for TLS sentinel connections. [boolean] [default: false]
--sentinel-tls-ca-cert Use PEM-style CA certificate key for connection to sentinel. Requires "sentinel-tls=true" [string]
--sentinel-tls-ca-cert-file File path to PEM-style CA certificate key for connection to sentinel. Requires "sentinel-tls=true", Overrides
"sentinel-tls-ca-cert" if set too. [string]
--sentinel-tls-cert Use PEM-style public key for connection to sentinel. Requires "sentinel-tls=true" [string]
--sentinel-tls-cert-file File path to PEM-style public key for connection to sentinel. Requires "sentinel-tls=true", Overrides
"sentinel-tls-cert" if set too. [string]
--sentinel-tls-key Use PEM-style private key for connection to sentinel. Requires "sentinel-tls=true" [string]
--sentinel-tls-key-file File path to PEM-style private key for connection to sentinel. Requires "sentinel-tls=true", Overrides
"sentinel-tls-key" if set too. [string]
--sentinel-tls-server-name Server name to confirm client connection. Server name for the SNI (Server Name Indication) TLS extension. Requires
"sentinel-tls=true" [string]
--insecure-certificate Disable certificate check for all certificates (Redis, Sentinel, Cluster). Should not be used in
production! [boolean] [Standard: false]
--noload, --nl Do not load connections from config. [boolean]
--clear-config, --cc Clear configuration file. [boolean]
--migrate-config Migrate old configuration file in $HOME to new style. [boolean]
--test Test final configuration (file, env-vars, command line). [boolean]
--open Open web-browser with Redis-Commander. [boolean] [default: false]
--redis-label The label to display for the connection. [string] [default: "local"]
--read-only Start app in read-only mode. [boolean] [default: false]
--http-auth-username, --http-u The http authorisation username. [string] [default: "test"]
--http-auth-password, --http-p The http authorisation password. [string] [default: ""]
--http-auth-password-hash, --http-h The http authorisation password hash. [string] [default: ""]
--address The address to run the server on. [string] [default: "0.0.0.0"]
--port The port to run the server on. [number] [default: 8081]
--url-prefix The url prefix to respond on. [string] [default: ""]
--trust-proxy App is run behind proxy (enable Express "trust proxy"). [boolean] [default: false]
--max-hash-field-size The max number of bytes for a hash field before you must click to view it. [number] [default: 0]
--nosave, --ns Do not save new connections to config file. [boolean] [default: false]
--no-log-data Do not log data values from redis store. [boolean] [default: false]
--folding-char, --fc Character to fold keys at for tree view. [string] [default: ":"]
--root-pattern, --rp Default root pattern for redis keys. [string] [default: "*"]
--use-scan, --sc Use SCAN instead of KEYS. [boolean] [default: true]
--scan-count The size of each separate scan. [number] [default: 200]
-h, -?, --help Show help [boolean]
The connection can be established either via direct connection to redis server or indirect via a sentinel instance. Most of this command line parameters map onto configuration params read from the config file - see docs/configuration.md and docs/connections.md.
Redis Commander can be configured by configuration files, environment variables or using command line parameters. The different types of config values overwrite each other, only the last (most important) value is used.
For configuration files the node-config module (https://github.com/lorenwest/node-config) is used, with default to json syntax.
The order of precedence for all configuration values (from least to most important) is:
-
Configuration files
default.json- this file contains all default values and SHOULD NOT be changedlocal.json- optional file, all local overwrites for values inside default.json should be placed here as well as a list of redis connections to use at startuplocal-<NODE_ENV>.json- Do not add anything else than connections to this file! Redis Commander will overwrite this whenever a connection is added or removed via user interface. Inside docker container this file is used to store all connections parsed from REDIS_HOSTS env var. This file overwrites all connections defined insidelocal.jsonThere are some more possible files available to use - please check the node-config Wiki for a complete list of all possible file names (https://github.com/lorenwest/node-config/wiki/Configuration-Files)
-
Environment variables - the full list of env vars possible (except the docker specific ones) can be got from the file
config/custom-environment-variables.jsontogether with their mapping to the respective configuration key. -
Command line parameters - Overwrites everything
To check the final configuration created from files, env-vars set and command line param overwrites start redis commander with additional param "--test". All invalid configuration keys will be listed in the output. The config test does not check if hostnames or ip addresses can be resolved.
More information can be found in the documentation at docs/configuration.md and docs/connections.md.
Remark: Errors on image startup with "permission denied" on config files might be caused due to wrong runtime users running the image. "docker compose" in recent versions does not pick up the user defined inside the Dockerfile and uses some other user, therefor it should be explicit set inside the docker-compose.yml file as shown in the example file.
These environment variables can be used starting Redis Commander as normal
application or inside docker container (defined inside file config/custom-environment-variables.json)
and at docs/configuration.md:
HTTP_USER
HTTP_PASSWORD
HTTP_PASSWORD_HASH
ADDRESS
PORT
READ_ONLY
URL_PREFIX
SIGNIN_PATH
ROOT_PATTERN
NOSAVE
NO_LOG_DATA
FOLDING_CHAR
VIEW_JSON_DEFAULT
USE_SCAN
SCAN_COUNT
FLUSH_ON_IMPORT
REDIS_CONNECTION_NAME
REDIS_LABEL
CLIENT_MAX_BODY_SIZE
BINARY_AS_HEX from https://github.com/joeferner/redis-commander 
No comments:
Post a Comment