Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Bug report
about: Create a report to help us improve
title: "[Bug]:"
labels: ''
labels: bug
assignees: ''

---
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Feature request
about: Request a feature or submit an idea
title: "[Feature Request]:"
labels: ''
labels: feature
assignees: ''

---
Expand Down
Binary file added .github/redisinsight_browser.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
245 changes: 39 additions & 206 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,233 +1,66 @@
# RedisInsight

[![CircleCI](https://circleci.com/gh/RedisInsight/RedisInsight/tree/latest.svg?style=svg)](https://circleci.com/gh/RedisInsight/RedisInsight/tree/latest)
[![Forum](https://img.shields.io/badge/Forum-RedisInsight-red)](https://forum.redis.com/c/redisinsight/65)
[![Discord](https://img.shields.io/discord/697882427875393627?style=flat-square)](https://discord.gg/QUkjSsk)

Awesome Redis GUI written in Electron, NodeJS and React

## Directory Structure

- `redisinsight/ui` - Contains the frontend code
- `redisinsight/api` - Contains the backend code
- `docs` - Contains the documentation
- `scripts` - Build scripts and other build-related files
- `configs` - Webpack configuration files and other build-related files
- `tests` - Contains the e2e

## Plugins documentation

* [Introduction](docs/plugins/introduction.md)
* [Installation and Usage](docs/plugins/installation.md)
* [Plugin Development](docs/plugins/development.md)

## Prerequisites

Make sure you have installed following packages:
* [Node](https://nodejs.org/en/download/) >=14.x and <16
* [yarn](https://www.npmjs.com/package/yarn) >=1.21.3

## Installation

Before development or build you have to install required dependencies

```bash
$ yarn install
$ yarn --cwd redisinsight/api/
```

## Development

There are 2 ways to develop:

### Developing using electron app

After you have installed all dependencies you can now run the app.
Run `yarn start` to start an electron application that will watch and build for you.

```bash
# Development
$ yarn start
```

### Developing using web

#### Running backend part of the app

Run `yarn --cwd redisinsight/api/ start:dev` to start a local API at `localhost:5000`.

```bash
# Development
$ yarn --cwd redisinsight/api/ start:dev
```

While the API is running, open your browser and navigate to http://localhost:5000/api/docs. You should see the Swagger UI.

#### Running frontend part of the app

Run `yarn start:web` to start a local server for UI.

```bash
# Development
$ yarn start:web
```

Web interface will be available at http://localhost:8080

Now servers will watch for changes and automatically build for you

## Build

### Packaging the desktop app

#### Building statics for enablement area and default plugins

Run `yarn build:statics` or `yarn build:statics:win` for Windows

After you have installed all dependencies you can package the app.
Run `yarn package:prod` to package app for the local platform:

```bash
# Production
$ yarn package:prod
```

And packaged installer will be in the folder _./release_

### Create docker image

There are 2 different docker images available

- Image with API and UI
- Image with API only

#### Build Docker image with UI

```bash
docker build .
```

Image exposes 5000 port

Api docs - /api/docs

Main UI - /

Example:

```bash
docker build -t redisinsight .
```

```bash
docker run -p 5000:5000 -d --cap-add ipc_lock redisinsight
```

Then api docs and main ui should be available on http://localhost:5000/api/docs and http://localhost:5000

#### Build Docker with API only

Image exposes 5000 port

Api docs - /api/docs

Example:

```bash
docker build -f api.Dockerfile -t api.redisinsight .
```

```bash
docker run -p 5000:5000 -d --cap-add ipc_lock api.redisinsight
```

Then api docs and main ui should be available on http://localhost:5000/api/docs

## Tests
# <img src="https://redis.com/wp-content/uploads/2019/11/ico-redisinsight.svg" alt="logo" width="25"/> RedisInsight

### Running frontend tests
**Best in class Redis developer GUI to view and interact with your data! [Download it from here](https://redis.com/redis-enterprise/redis-insight/#insight-form)!**

#### Run UI unit tests
![RedisInsight Browser screenshot](/.github/redisinsight_browser.png)

```bash
yarn test
```
Built with love using [Electron](https://www.electronjs.org/), [Elastic UI](https://elastic.github.io/eui/#/), [Monaco Editor](https://microsoft.github.io/monaco-editor/) and NodeJS.

### Running backend tests
## Overview

#### Run backend unit tests
RedisInsight is an intuitive and efficient GUI for Redis, allowing you to interact with your databases and manage your data—with built-in support for Redis modules.

```bash
# Plain tests
yarn --cwd redisinsight/api test

# Tests with coverage
yarn --cwd redisinsight/api test:cov
```
### RedisInsight Highlights:

### Run backend integration tests (using local server)
* Browse, filter and visualise your key-value Redis data structures
* CRUD support for Lists, Hashes, Strings, Sets, Sorted Sets
* CRUD support for [RedisJSON](https://oss.redis.com/redisjson/)
* Introducing Workbench - advanced command line interface with intelligent command auto-complete and complex data visualizations
* Command auto-complete support for [RediSearch](https://oss.redis.com/redisearch/), [RedisJSON](https://oss.redis.com/redisjson/), [RedisGraph](https://oss.redis.com/redisgraph/), [RedisTimeSeries](https://oss.redis.com/redistimeseries/), [RedisAI](https://oss.redis.com/redisai/)
* Visualizations of your [RediSearch](https://oss.redis.com/redisearch/) index queries and aggregations
* Ability to build your own data visualization plugins
* Built-in click-through guides for Redis capabilities
* Oficially supported for Redis OSS, [Redis Cloud](https://redis.com/try-free/). Works with Microsoft Azure Cache for Redis (official support upcoming).
* Available for macOS, Windows and Linux

```bash
# Plain tests
yarn --cwd redisinsight/api test:api

# Tests with coverage
yarn --cwd redisinsight/api test:api:cov
```
Check out the [release notes](https://docs.redis.com/staging/release-ri-v2.0/ri/release-notes/).

> **_NOTE_**: Using `yarn test:api*` scripts you should have redis server up and running.
By default tests will look on `localhost:6379` without any auth
To customize tests configs you should run test with proper environment variables
## Get started with RedisInsight

Example:
This repository includes the code for the newly released in public preview RedisInsight 2.0. Check out the [blogpost](https://redis.com/blog/introducing-redisinsight-2/) announcing it.

If you have redis server running on a different host or port `somehost:7777` with default user pass `somepass`
The current GA version of RedisInsight is 1.11. You can install RedisInsight 2.0 along with the GA version.

You should run test commands with such environment variables
### Installable
Available to download for free from [here](https://redis.com/redis-enterprise/redis-insight/#insight-form).

```bash
# Plain tests
TEST_REDIS_HOST=somehost \
TEST_REDIS_PORT=7777 \
TEST_REDIS_PASSWORD-somepass \
yarn --cwd redisinsight/api test:api
```
### Build
Alternatively you can also build from source. See our wiki for instructions.

You can find all possible environment variable available in the [constants.ts](redisinsight/api/test/helpers/constants.ts) file
## Feedback

### Run backend integration tests (using docker)
* Request a new [feature](https://github.com/RedisInsight/RedisInsight/issues/new?assignees=&labels=&template=feature_request.md&title=%5BFeature+Request%5D%3A)
* Upvote [popular feature requests](https://github.com/RedisInsight/RedisInsight/issues?q=is%3Aopen+is%3Aissue+label%3Afeature+sort%3Areactions-%2B1-desc)
* File a [bug](https://github.com/RedisInsight/RedisInsight/issues/new?assignees=&labels=&template=bug_report.md&title=%5BBug%5D%3A)

Here you should not care about tests and local redis database configuration

We will spin up server inside docker container and run tests over it
## RedisInsight Plugins

```bash
# run this this command
./redisinsight/api/test/test-runs/start-test-run.sh -r oss-st-6
```
- -r - is the Redis Test Environment name
With RedisInsight you can now also extend the core functionality by building your own data visualizations. See our wiki for more information.

We are supporting several test environments to run tests on various Redis databases:
- **oss-st-5** - _OSS Standalone v5_
- **oss-st-5-pass** - _OSS Standalone v5 with admin pass required_
- **oss-st-6** - _OSS Standalone v6 and all modules_
- **oss-st-6-tls** - _OSS Standalone v6 with TLS enabled_
- **oss-st-6-tls-auth** - _OSS Standalone v6 with TLS auth required_
- **oss-clu** - _OSS Cluster_
- **oss-clu-tls** - _OSS Cluster with TLS enabled_
- **oss-sent** - _OSS Sentinel_
- **re-st** - _Redis Enterprise with Standalone inside_
- **re-clu** - _Redis Enterprise with Cluster inside_
## Contributing

If you would like to contribute to the code base or fix and issue, please consult the wiki.

### Running E2E tests
## Telemetry

Install E2E tests deps
RedisInsight includes an opt-in telemetry system, that is leveraged to help improve the developer experience (DX) within the app. We value your privacy, so stay assured, that all the data collected is anonymised.

```bash
yarn --cwd tests/e2e
```
## License

Run E2E tests
RedisInsight is licensed under [SSPL](/LICENSE) license.

```bash
yarn --cwd tests/e2e test:chrome
```