@mufazmi/rediscover 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,27 +2,27 @@
2
2
 
3
3
  <img src="public/rediscover_banner.png" alt="Rediscover Banner" width="100%">
4
4
 
5
- <br/>
6
5
  <br/>
7
6
 
8
7
  # Rediscover
9
8
 
10
- **Self-hosted Redis management tool with a beautiful web interface**
9
+ ### A Self-Hosted Redis Management Tool with a Modern Web Interface
10
+
11
+ <br/>
11
12
 
12
13
  [![License: MIT](https://img.shields.io/badge/License-MIT-red.svg)](https://opensource.org/licenses/MIT)
13
14
  [![Node.js](https://img.shields.io/badge/Node.js-18%2B-green.svg)](https://nodejs.org)
14
15
  [![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://hub.docker.com/r/mufazmi/rediscover)
15
16
  [![Redis](https://img.shields.io/badge/Redis-5.0%2B-red.svg)](https://redis.io)
16
- [![npm](https://img.shields.io/badge/npm-install-cb3837.svg)](https://www.npmjs.com/package/@mufazmi/rediscover)
17
+ [![npm](https://img.shields.io/badge/npm-@mufazmi/rediscover-cb3837.svg)](https://www.npmjs.com/package/@mufazmi/rediscover)
17
18
 
18
19
  <br/>
19
20
 
20
- A modern, feature-rich Redis management application with real-time monitoring,
21
- key management, and advanced operations — all from a clean, responsive web interface.
21
+ Rediscover is a production-ready, self-hosted Redis management platform built for developers and teams who need real-time visibility, intuitive key management, and multi-instance control — all from a clean, responsive web interface.
22
22
 
23
23
  <br/>
24
24
 
25
- [**⚡ Quick Start**](#-quick-start) · [**📦 Installation**](#-installation) · [**⚙️ Configuration**](#️-configuration) · [**🔧 Troubleshooting**](#-troubleshooting) · [**📖 Docs**](https://github.com/mufazmi/rediscover/wiki)
25
+ [**Live Demo**](#-live-demo) · [**Quick Start**](#-quick-start) · [**Installation**](#-installation) · [**Configuration**](#️-configuration) · [**Troubleshooting**](#-troubleshooting)
26
26
 
27
27
  <br/>
28
28
 
@@ -30,36 +30,56 @@ key management, and advanced operations — all from a clean, responsive web int
30
30
 
31
31
  ---
32
32
 
33
+ ## 🌐 Live Demo
34
+
35
+ Experience Rediscover before installing — two live instances are available for you to explore:
36
+
37
+ | Instance | URL |
38
+ |---|---|
39
+ | 🟢 Demo Server 1 | [rediscover.umairfarooqui.com](https://rediscover.umairfarooqui.com) |
40
+ | 🟢 Demo Server 2 | [rediscover1.umairfarooqui.com](https://rediscover1.umairfarooqui.com) |
41
+
42
+ **Demo Credentials** *(same for both instances)*
43
+
44
+ ```
45
+ Username : admin
46
+ Password : admin@123
47
+ ```
48
+
49
+ > These demo environments are shared and reset periodically. Please do not store sensitive data.
50
+
51
+ ---
52
+
33
53
  ## ✨ Features
34
54
 
35
- | | Feature | Description |
36
- |---|---|---|
37
- | 📊 | **Real-time Monitoring** | Live stats, memory usage, and performance metrics via WebSocket |
38
- | 🗝️ | **Key Management** | Browse, search, edit, and delete keys across all Redis data types |
39
- | 🔐 | **Secure Authentication** | JWT-based auth with role-based access control |
40
- | 🌐 | **Multi-Connection** | Manage multiple Redis instances from a single interface |
41
- | 📱 | **Responsive Design** | Works on desktop, tablet, and mobile — built with Tailwind CSS + Radix UI |
42
- | ⚡ | **High Performance** | Optimized loading and caching for large-scale deployments |
43
- | 🎨 | **Modern UI** | Clean, intuitive interface no clutter, no complexity |
44
- | 🔧 | **Easy Configuration** | Setup via environment variables or the built-in UI |
55
+ | Feature | Description |
56
+ |---|---|
57
+ | 📊 **Real-time Monitoring** | Live stats, memory usage, and performance metrics streamed via WebSocket |
58
+ | 🗝️ **Key Management** | Browse, search, create, edit, and delete keys across all Redis data types |
59
+ | 🔐 **Secure Authentication** | JWT-based auth with role-based access control |
60
+ | 🌐 **Multi-Connection** | Manage multiple Redis instances simultaneously from a single interface |
61
+ | 📱 **Responsive Design** | Fully functional on desktop, tablet, and mobile — built with Tailwind CSS + Radix UI |
62
+ | ⚡ **High Performance** | Optimized loading and caching for large-scale Redis deployments |
63
+ | 🎨 **Modern UI** | Clean, distraction-free interface with thoughtful UX |
64
+ | 🔧 **Flexible Configuration** | Configure via environment variables or directly through the built-in UI |
45
65
 
46
66
  ---
47
67
 
48
68
  ## ⚡ Quick Start
49
69
 
50
- Get Rediscover running in under a minute:
70
+ Get up and running in under a minute:
51
71
 
52
- **NPM**
72
+ **Via NPM**
53
73
  ```bash
54
74
  npm install -g @mufazmi/rediscover && rediscover
55
75
  ```
56
76
 
57
- **Docker**
77
+ **Via Docker**
58
78
  ```bash
59
79
  docker run -d -p 3000:3000 -p 3001:3001 mufazmi/rediscover:latest
60
80
  ```
61
81
 
62
- Then open **http://localhost:3000** in your browser. ✅
82
+ Open **http://localhost:3000** in your browser. ✅
63
83
 
64
84
  ---
65
85
 
@@ -70,8 +90,8 @@ Then open **http://localhost:3000** in your browser. ✅
70
90
  <table>
71
91
  <tr>
72
92
  <th>Method</th>
73
- <th>Requirement</th>
74
- <th>Version</th>
93
+ <th>Dependency</th>
94
+ <th>Minimum Version</th>
75
95
  </tr>
76
96
  <tr>
77
97
  <td rowspan="2"><b>NPM</b></td>
@@ -84,7 +104,7 @@ Then open **http://localhost:3000** in your browser. ✅
84
104
  </tr>
85
105
  <tr>
86
106
  <td rowspan="2"><b>Docker</b></td>
87
- <td>Docker</td>
107
+ <td>Docker Engine</td>
88
108
  <td>≥ 20.10.0</td>
89
109
  </tr>
90
110
  <tr>
@@ -104,28 +124,32 @@ Then open **http://localhost:3000** in your browser. ✅
104
124
 
105
125
  ---
106
126
 
107
- ### Method 1 — NPM *(Recommended)*
127
+ ### Option 1 — NPM *(Recommended)*
108
128
 
109
129
  ```bash
110
- # 1. Install globally
130
+ # Install globally
111
131
  npm install -g @mufazmi/rediscover
112
132
 
113
- # 2. Verify installation
133
+ # Verify installation
114
134
  rediscover --version
115
135
 
116
- # 3. Start the app
136
+ # Launch the application
117
137
  rediscover
118
138
  ```
119
139
 
120
- Open **http://localhost:3000** — done.
140
+ Then visit **http://localhost:3000**.
121
141
 
122
- > **Permission error?** Run: `npm config set prefix '~/.npm-global'` and add `~/.npm-global/bin` to your `PATH`.
142
+ > **Tip:** If you encounter a permission error, run:
143
+ > ```bash
144
+ > npm config set prefix '~/.npm-global'
145
+ > ```
146
+ > Then add `~/.npm-global/bin` to your `PATH` and re-install.
123
147
 
124
148
  ---
125
149
 
126
- ### Method 2 — Docker
150
+ ### Option 2 — Docker
127
151
 
128
- **Basic run:**
152
+ **Basic usage:**
129
153
  ```bash
130
154
  docker run -d \
131
155
  --name rediscover \
@@ -134,7 +158,7 @@ docker run -d \
134
158
  mufazmi/rediscover:latest
135
159
  ```
136
160
 
137
- **With environment variables:**
161
+ **With custom environment variables:**
138
162
  ```bash
139
163
  docker run -d \
140
164
  --name rediscover \
@@ -146,11 +170,12 @@ docker run -d \
146
170
  mufazmi/rediscover:latest
147
171
  ```
148
172
 
149
- **Docker Compose** *(recommended for production)*:
173
+ **Docker Compose** *(recommended for production deployments)*:
150
174
 
151
175
  ```yaml
152
176
  # docker-compose.yml
153
177
  version: '3.8'
178
+
154
179
  services:
155
180
  rediscover:
156
181
  image: mufazmi/rediscover:latest
@@ -175,47 +200,29 @@ docker-compose up -d
175
200
 
176
201
  ---
177
202
 
178
- zmi/rediscover/releases):
179
-
180
- | Platform | Binary |
181
- |---|---|
182
- | 🪟 Windows | `` |
183
- | 🍎 macOS (Intel) | `` |
184
- | 🍎 macOS (Apple Silicon) | `` |
185
- | 🐧 Linux | `` |
186
-
187
- ```bash
188
- # macOS / Linux — make executable and run
189
- chmod +x
190
- sudo mv /usr/local/bin/rediscover
191
- rediscover
192
- ```
193
-
194
- ---
195
-
196
203
  ## ⚙️ Configuration
197
204
 
198
- Create a `.env` file in your working directory:
205
+ Create a `.env` file in your working directory to customize Rediscover:
199
206
 
200
207
  ```env
201
- # ── Server ─────────────────────────────────
208
+ # ── Server ─────────────────────────────────────────────────
202
209
  PORT=3000
203
210
  BACKEND_PORT=3001
204
211
  NODE_ENV=production
205
212
  HOST=0.0.0.0
206
213
 
207
- # ── Security ────────────────────────────────
208
- JWT_SECRET=your-very-secure-secret-key # Required in production
214
+ # ── Security ────────────────────────────────────────────────
215
+ JWT_SECRET=your-very-secure-secret-key # Required in production
209
216
  JWT_EXPIRATION=24h
210
217
 
211
- # ── Redis Connection ────────────────────────
218
+ # ── Redis Connection ─────────────────────────────────────────
212
219
  REDIS_HOST=localhost
213
220
  REDIS_PORT=6379
214
221
  REDIS_PASSWORD=your-redis-password
215
222
  REDIS_TIMEOUT=5000
216
223
  REDIS_TLS=false
217
224
 
218
- # ── Application ─────────────────────────────
225
+ # ── Application ──────────────────────────────────────────────
219
226
  MAX_CONNECTIONS=10
220
227
  SESSION_TIMEOUT=30
221
228
  REFRESH_INTERVAL=5
@@ -228,20 +235,20 @@ DEBUG=false
228
235
  |---|---|---|
229
236
  | `PORT` | `3000` | Web UI server port |
230
237
  | `BACKEND_PORT` | `3001` | Backend API server port |
231
- | `NODE_ENV` | `development` | `production` or `development` |
232
- | `HOST` | `localhost` | Bind address (`0.0.0.0` for all interfaces) |
233
- | `JWT_SECRET` | — | **Required in production.** JWT signing secret |
238
+ | `NODE_ENV` | `development` | Runtime environment: `production` or `development` |
239
+ | `HOST` | `localhost` | Bind address — use `0.0.0.0` to expose on all interfaces |
240
+ | `JWT_SECRET` | — | **Required in production.** Secret key used to sign JWT tokens |
234
241
  | `JWT_EXPIRATION` | `24h` | Token lifetime (e.g. `1h`, `7d`, `24h`) |
235
- | `REDIS_HOST` | `localhost` | Default Redis hostname or IP |
242
+ | `REDIS_HOST` | `localhost` | Default Redis hostname or IP address |
236
243
  | `REDIS_PORT` | `6379` | Default Redis port |
237
- | `REDIS_PASSWORD` | — | Redis AUTH password (if set) |
244
+ | `REDIS_PASSWORD` | — | Redis AUTH password (leave blank if not set) |
238
245
  | `REDIS_TIMEOUT` | `5000` | Connection timeout in milliseconds |
239
- | `MAX_CONNECTIONS` | `10` | Max simultaneous Redis connections |
240
- | `REFRESH_INTERVAL` | `5` | Dashboard refresh rate in seconds |
241
- | `SESSION_TIMEOUT` | `30` | Session timeout in minutes |
246
+ | `MAX_CONNECTIONS` | `10` | Maximum simultaneous Redis connections |
247
+ | `REFRESH_INTERVAL` | `5` | Dashboard auto-refresh interval in seconds |
248
+ | `SESSION_TIMEOUT` | `30` | Idle session timeout in minutes |
242
249
  | `DEBUG` | `false` | Enable verbose debug logging |
243
250
 
244
- > **Tip:** You can also configure Redis connections directly in the web UI click **Add Connection** and enter your server details.
251
+ > **Note:** You can also add and manage Redis connections directly from the web UI by clicking **Add Connection** and entering your server details.
245
252
 
246
253
  ---
247
254
 
@@ -251,7 +258,7 @@ DEBUG=false
251
258
  <summary><b>❌ "npm: command not found" or "node: command not found"</b></summary>
252
259
  <br>
253
260
 
254
- Node.js is not installed. Install it first:
261
+ Node.js is not installed on your system. Install it using one of the methods below:
255
262
 
256
263
  ```bash
257
264
  # macOS
@@ -264,12 +271,12 @@ sudo apt install nodejs npm
264
271
  sudo yum install nodejs npm
265
272
  ```
266
273
 
267
- Or download directly from [nodejs.org](https://nodejs.org).
274
+ Or download the official installer at [nodejs.org](https://nodejs.org).
268
275
 
269
276
  </details>
270
277
 
271
278
  <details>
272
- <summary><b>❌ "Permission denied" during npm install</b></summary>
279
+ <summary><b>❌ "Permission denied" during npm global install</b></summary>
273
280
  <br>
274
281
 
275
282
  ```bash
@@ -283,15 +290,18 @@ npm install -g @mufazmi/rediscover
283
290
  </details>
284
291
 
285
292
  <details>
286
- <summary><b>❌ Port 3000 already in use</b></summary>
293
+ <summary><b>❌ Port 3000 is already in use</b></summary>
287
294
  <br>
288
295
 
289
296
  ```bash
290
- # Kill process on port 3000
291
- sudo lsof -ti:3000 | xargs kill -9 # macOS / Linux
292
- netstat -ano | findstr :3000 # Windows (then taskkill /PID <PID> /F)
297
+ # macOS / Linux — kill the process using the port
298
+ sudo lsof -ti:3000 | xargs kill -9
299
+
300
+ # Windows — find and kill the process
301
+ netstat -ano | findstr :3000
302
+ # Then: taskkill /PID <PID> /F
293
303
 
294
- # Or use a different port
304
+ # Alternatively, run on a different port
295
305
  PORT=3005 rediscover
296
306
  ```
297
307
 
@@ -302,28 +312,28 @@ PORT=3005 rediscover
302
312
  <br>
303
313
 
304
314
  ```bash
305
- # Check if Redis is running
306
- redis-cli ping # Should return: PONG
315
+ # Verify Redis is running
316
+ redis-cli ping # Expected response: PONG
307
317
 
308
- # Install Redis if missing
309
- sudo apt install redis-server # Ubuntu / Debian
318
+ # Install Redis if not present
319
+ sudo apt install redis-server # Ubuntu / Debian
310
320
  brew install redis && brew services start redis # macOS
311
- sudo yum install redis # CentOS / RHEL
321
+ sudo yum install redis # CentOS / RHEL
312
322
  ```
313
323
 
314
- Also check:
315
- - Redis port `6379` is open in your firewall
316
- - `bind` setting in `redis.conf` allows connections from your IP
324
+ Also verify:
325
+ - Port `6379` is open in your firewall rules
326
+ - The `bind` directive in `redis.conf` permits connections from your host
317
327
 
318
328
  </details>
319
329
 
320
330
  <details>
321
- <summary><b>❌ "Authentication failed" to Redis</b></summary>
331
+ <summary><b>❌ "Authentication failed" when connecting to Redis</b></summary>
322
332
  <br>
323
333
 
324
- - Verify the `requirepass` value in your `redis.conf`
325
- - Ensure `REDIS_PASSWORD` in your `.env` matches
326
- - Test with: `redis-cli -a your-password ping`
334
+ - Check the `requirepass` directive in your `redis.conf`
335
+ - Ensure `REDIS_PASSWORD` in your `.env` matches exactly
336
+ - Test manually: `redis-cli -a your-password ping`
327
337
 
328
338
  </details>
329
339
 
@@ -333,20 +343,20 @@ Also check:
333
343
 
334
344
  ```bash
335
345
  sudo usermod -aG docker $USER
336
- newgrp docker # Apply without logging out
346
+ newgrp docker # Apply group change without logging out
337
347
  ```
338
348
 
339
349
  </details>
340
350
 
341
351
  <details>
342
- <summary><b>❌ Container exits immediately</b></summary>
352
+ <summary><b>❌ Container exits immediately after starting</b></summary>
343
353
  <br>
344
354
 
345
355
  ```bash
346
- # Inspect the logs
356
+ # Inspect startup logs
347
357
  docker logs rediscover
348
358
 
349
- # Run interactively for debugging
359
+ # Run interactively to debug
350
360
  docker run -it --rm -p 3000:3000 -p 3001:3001 mufazmi/rediscover:latest
351
361
  ```
352
362
 
@@ -358,10 +368,9 @@ docker run -it --rm -p 3000:3000 -p 3001:3001 mufazmi/rediscover:latest
358
368
 
359
369
  ```bash
360
370
  # Export inline
361
- export JWT_SECRET="your-secure-key"
362
- rediscover
371
+ export JWT_SECRET="your-secure-key" && rediscover
363
372
 
364
- # Or add to .env
373
+ # Or persist in .env
365
374
  echo 'JWT_SECRET=your-secure-key' >> .env
366
375
  ```
367
376
 
@@ -371,36 +380,36 @@ echo 'JWT_SECRET=your-secure-key' >> .env
371
380
  <summary><b>❌ Blank page or UI not loading</b></summary>
372
381
  <br>
373
382
 
374
- - Ensure JavaScript is enabled in your browser
375
- - Temporarily disable ad blockers
383
+ - Confirm JavaScript is enabled in your browser
384
+ - Temporarily disable browser extensions or ad blockers
376
385
  - Use a modern browser: Chrome 90+, Firefox 88+, Safari 14+
377
- - Open DevTools → Console to check for errors
386
+ - Open **DevTools → Console** and look for JavaScript errors
378
387
 
379
388
  </details>
380
389
 
381
- **Enable debug mode** for detailed logs:
390
+ **Enable debug mode** for detailed diagnostic logs:
382
391
  ```bash
383
392
  DEBUG=true rediscover
384
393
  ```
385
394
 
386
- Still stuck? [Open a GitHub Issue](https://github.com/mufazmi/rediscover/issues) with your OS, Node.js version, install method, and the full error message.
395
+ Still stuck? [Open a GitHub Issue](https://github.com/mufazmi/rediscover/issues) with your OS, Node.js version, install method, and full error output.
387
396
 
388
397
  ---
389
398
 
390
- ## 🛠️ Development
399
+ ## 🛠️ Local Development
391
400
 
392
401
  ```bash
393
- # Clone the repo
402
+ # Clone the repository
394
403
  git clone https://github.com/mufazmi/rediscover.git
395
404
  cd rediscover
396
405
 
397
406
  # Install dependencies
398
407
  npm install
399
408
 
400
- # Start dev server
409
+ # Start the development server
401
410
  npm run dev
402
411
 
403
- # Run tests
412
+ # Run the test suite
404
413
  npm test
405
414
 
406
415
  # Build for production
@@ -411,15 +420,15 @@ npm run build
411
420
 
412
421
  ## 🤝 Contributing
413
422
 
414
- Contributions are welcome — bug fixes, features, and docs all appreciated.
423
+ Contributions are welcome and appreciated whether it's a bug fix, new feature, documentation improvement, or a question.
415
424
 
416
425
  1. Fork the repository
417
- 2. Create your branch: `git checkout -b feature/your-feature`
418
- 3. Commit your changes: `git commit -m 'Add your feature'`
419
- 4. Push: `git push origin feature/your-feature`
426
+ 2. Create a feature branch: `git checkout -b feature/your-feature-name`
427
+ 3. Commit your changes: `git commit -m 'Add: your feature description'`
428
+ 4. Push to the branch: `git push origin feature/your-feature-name`
420
429
  5. Open a Pull Request
421
430
 
422
- Please read [CONTRIBUTING.md](CONTRIBUTING.md) before submitting.
431
+ Please read [CONTRIBUTING.md](CONTRIBUTING.md) before submitting changes.
423
432
 
424
433
  ---
425
434
 
@@ -436,15 +445,15 @@ Please read [CONTRIBUTING.md](CONTRIBUTING.md) before submitting.
436
445
 
437
446
  ### 🏆 Security Recognition
438
447
 
439
- Recognized for responsible disclosure by:
448
+ Recognized by leading global organizations for responsible vulnerability disclosure:
440
449
 
441
- `NASA` · `Dell Technologies` · `Nokia` · `Lenovo` · `Zoom` · `LG` · `ABN AMRO Bank` · `Accenture` · `Paytm` · `U.S. Dept. of Homeland Security` · `WHO` · `United Airlines` · `Drexel University` · `Radboud University`
450
+ `NASA` · `Dell Technologies` · `Nokia` · `Lenovo` · `Zoom` · `LG` · `ABN AMRO Bank` · `Accenture` · `Paytm` · `U.S. Department of Homeland Security` · `WHO` · `United Airlines` · `Drexel University` · `Radboud University`
442
451
 
443
452
  ---
444
453
 
445
454
  ## 📄 License
446
455
 
447
- Released under the [MIT License](LICENSE). Free to use, modify, and distribute.
456
+ Released under the [MIT License](LICENSE). Free to use, modify, and distribute — attribution appreciated.
448
457
 
449
458
  ---
450
459
 
@@ -452,6 +461,6 @@ Released under the [MIT License](LICENSE). Free to use, modify, and distribute.
452
461
 
453
462
  **Made with ❤️ by [Umair Farooqui](https://github.com/mufazmi)**
454
463
 
455
- *If Rediscover saves you time, consider giving it a on GitHub!*
464
+ *If Rediscover saves you time, a on GitHub goes a long way — thank you!*
456
465
 
457
- </div># rediscover
466
+ </div>
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rediscover-backend",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rediscover-backend",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Self-hosted Node.js + Express backend for Rediscover",
5
5
  "main": "dist/server.js",
6
6
  "scripts": {