Skip to content

lhstack/web-redis-manager

Repository files navigation

Web Redis Manager

一个现代化的 Redis 可视化管理工具,支持多用户、多连接管理,提供直观的 Web 界面来管理 Redis 数据。

功能特性

1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png

安全特性

  • 端到端加密 (E2E):所有敏感连接数据使用 AES-256-GCM 加密存储
  • 加密密钥由用户密码 + 随机盐值通过 PBKDF2 派生,服务端无法解密用户数据
  • 支持双重认证 (2FA/TOTP)
  • JWT Token 认证

连接管理

  • 支持 Standalone、Cluster、Sentinel 三种连接模式
  • 支持 SSH 隧道连接(密码/私钥认证)
  • 支持 TLS/SSL 加密连接
  • 连接分组管理,支持拖拽排序

数据操作

  • 支持所有 Redis 数据类型:String、List、Hash、Set、ZSet
  • Key 浏览支持多种搜索模式:KEYS、SCAN、正则表达式
  • 内置代码编辑器,支持 JSON/XML/YAML 语法高亮和格式化
  • 内置 Redis 命令终端,支持命令自动补全

多用户系统

  • 管理员/普通用户角色区分
  • 用户数据隔离,每个用户独立管理自己的连接
  • 支持用户注册(可配置开关)
  • 登录验证码、双重认证 (2FA/TOTP) 支持

界面特性

  • 多 Tab 页签管理,支持分屏显示
  • Tab 拖拽排序和分屏操作
  • 数据库别名批量管理
  • 响应式布局

快速开始

体验地址: https://redis.lhstack.xyz

自己注册即可

Docker 部署(推荐)

使用 SQLite(默认,无需额外数据库)

docker run -d \
  --name web-redis-manager \
  -p 8080:8080 \
  -v redis-manager-data:/app/data \
  -e ADMIN_USERNAME=admin \
  -e ADMIN_PASSWORD=admin123 \
  lhstack/web-redis-manager:latest

或使用 docker-compose:

services:
  web-redis-manager:
    image: lhstack/web-redis-manager:1.0.0
    container_name: web-redis-manager
    environment:
      - SERVER_PORT=8080
      - GIN_MODE=release
      - DB_DRIVER=sqlite
      - DB_PATH=/app/data/data.db
      - JWT_SECRET=JJN0v2qX0Nne9SPC
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=7a7gx7fdUtrLxWSX
    volumes:
      - ./data:/app/data
    restart: unless-stopped
    logging:
      options:
        max-file: '1'
        max-size: '64k'
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 512M
curl -O https://raw.githubusercontent.com/lhstack/web-redis-manager/master/docker-compose.yml
docker-compose up -d

使用 MySQL

curl -O https://raw.githubusercontent.com/lhstack/web-redis-manager/master/docker-compose.mysql.yml
docker-compose -f docker-compose.mysql.yml up -d

使用 PostgreSQL

curl -O https://raw.githubusercontent.com/lhstack/web-redis-manager/master/docker-compose.postgres.yml
docker-compose -f docker-compose.postgres.yml up -d

访问 http://localhost:8080

手动部署

环境要求

  • Go 1.21+
  • Node.js 18+
  • pnpm

构建

# 前端
cd frontend
pnpm install
pnpm build

# 后端
cd ../backend
cp config.toml.example config.toml
go mod tidy
go build -o web-redis-manager .

# 运行
./web-redis-manager

配置说明

环境变量

环境变量 说明 默认值
SERVER_PORT 服务端口 8080
SERVER_HOST 监听地址 0.0.0.0
DB_DRIVER 数据库驱动 (sqlite / mysql / postgresql / postgres) sqlite
DB_PATH SQLite 数据库文件路径 (仅 sqlite) ./data/redis_manager.db
DB_HOST 数据库主机 (仅 mysql/postgresql) localhost
DB_PORT 数据库端口 (仅 mysql/postgresql,mysql 默认 3306,postgresql 默认 5432) 3306
DB_USER 数据库用户 (仅 mysql/postgresql) root
DB_PASSWORD 数据库密码 (仅 mysql/postgresql) -
DB_NAME 数据库名 (仅 mysql/postgresql) redis_manager
DB_SSLMODE SSL 模式 (仅 postgresql,可选: disable/require/verify-ca/verify-full) disable
JWT_SECRET JWT 密钥 随机生成
JWT_EXPIRE_HOURS Token 过期时间(小时) 24
ADMIN_USERNAME 管理员用户名 admin
ADMIN_PASSWORD 管理员密码 随机生成
ALLOW_REGISTRATION 允许用户注册 false
REQUIRE_CAPTCHA 登录需要验证码 true
REQUIRE_2FA 强制双重认证 false

配置文件

配置文件位于 backend/config.toml,环境变量优先级高于配置文件:

[server]
port = "8080"
host = "0.0.0.0"

[database]
# 数据库驱动,支持: sqlite, mysql, postgresql (或 postgres)
driver = "sqlite"

# SQLite 配置 (仅 driver = "sqlite" 时有效)
path = "./data/redis_manager.db"

# MySQL / PostgreSQL 配置 (仅 driver = "mysql" 或 "postgresql" 时有效)
host = "127.0.0.1"
port = 3306                 # MySQL: 3306, PostgreSQL: 5432
user = "root"
password = ""
dbname = "redis_manager"
sslmode = "disable"         # 仅 PostgreSQL,可选: disable/require/verify-ca/verify-full

[auth]
admin_username = "admin"
admin_password = ""         # 留空则自动生成
jwt_secret = ""             # 留空则自动生成
jwt_expire_hours = 24
allow_registration = false
require_captcha = true
require_2fa = false

技术栈

后端

  • Go 1.21+ / Gin
  • GORM (SQLite/MySQL/PostgreSQL)
  • go-redis
  • JWT 认证

前端

  • Vue 3 + TypeScript
  • Element Plus
  • Pinia
  • CodeMirror
  • Vite

项目结构

.
├── backend/
│   ├── config/             # 配置管理
│   ├── handler/            # HTTP 处理器
│   ├── middleware/         # 中间件
│   ├── model/              # 数据模型
│   ├── router/             # 路由配置
│   ├── service/            # 业务逻辑
│   ├── static/             # 前端构建输出
│   └── main.go
├── frontend/
│   ├── src/
│   │   ├── api/            # API 接口
│   │   ├── components/     # Vue 组件
│   │   ├── stores/         # Pinia 状态
│   │   └── types/          # TypeScript 类型
│   └── vite.config.ts
├── Dockerfile
├── docker-compose.yml          # SQLite 配置
├── docker-compose.mysql.yml    # MySQL 配置
├── docker-compose.postgres.yml # PostgreSQL 配置
└── README.md

安全架构

端到端加密 (E2E)

用户密码 + 随机盐值 → PBKDF2 (100,000 次迭代) → AES-256 密钥
                                                    ↓
连接数据 (host, port, password, SSH, TLS...) → AES-256-GCM 加密 → 数据库存储

加密范围包括:Redis 连接凭据、SSH 隧道配置、TLS 证书配置、Sentinel/Cluster 节点信息。

即使数据库被泄露,攻击者也无法解密连接数据。

License

本项目采用 Apache2 License 开源协议。

Copyright (c) 2025 lhstack

About

web 版本 redis 管理工具

Resources

License

Stars

Watchers

Forks

Packages

No packages published