Skip to content
Open
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
Binary file added DozerDB_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 87 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,79 +1,124 @@
# Neo4j Browser
<p align="center">
<img src="./DozerDB_logo.png" width="400" alt="DozerDB">
</p>

Neo4j Browser is the general purpose graphical user interface for Neo4j. Query, visualize, administer and monitor the database with modern and easy-to-use tools.
<p align="center">
<em>DozerDB Browser — enhanced graph database UI built on Neo4j Browser</em>
</p>

![neo4j browser screenshot](./.github/neo4j-browser-screenshot.png)
<p align="center">
<a href="https://github.com/dozerdb/dozerdb-browser/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-GPLv3-blue?style=for-the-badge" alt="License"></a>
<a href="#-development"><img src="https://img.shields.io/badge/Node.js-12.4+-339933?style=for-the-badge&logo=node.js&logoColor=white" alt="Node.js"></a>
<a href="#-development"><img src="https://img.shields.io/badge/Yarn-required-2C8EBB?style=for-the-badge&logo=yarn&logoColor=white" alt="Yarn"></a>
</p>

## Demo
<p align="center">
<a href="https://dozerdb.org"><img src="https://img.shields.io/badge/Get_Started-FF6600?style=for-the-badge&logo=readthedocs&logoColor=white" alt="Get Started"></a>
<a href="mailto:info@greystonesgroup.com"><img src="https://img.shields.io/badge/Contact_Us-333333?style=for-the-badge&logo=gmail&logoColor=white" alt="Contact Us"></a>
</p>

You can try out the latest (unreleased) version of Neo4j Browser at [http://browser-canary.graphapp.io/](http://browser-canary.graphapp.io/).
---

Keep in mind that you will need to connect to an instance of Neo4j (the database) for most operations in Neo4j Browser. A simple way to get started is through [Neo4j Desktop](https://neo4j.com/download/). Once you've started a database it's by default available for Neo4j Browser to connect to on **localhost:7687**.
## 📋 About

## Feedback & Contributing
DozerDB Browser is the graphical user interface for DozerDB. Query, visualize, administer, and monitor your graph database with modern and easy-to-use tools.

Found a bug or some other problem with Neo4j Browser? Please [**open an issue**](https://github.com/neo4j/neo4j-browser/issues).
This project is a fork of [Neo4j Browser](https://github.com/neo4j/neo4j-browser) with DozerDB-specific enhancements.

Have an idea for a new feature? You're welcome to leave suggestions and ideas [here](https://feedback.neo4j.com/browser).
![DozerDB Browser Screenshot](./.github/neo4j-browser-screenshot.png)

Contributions welcome! More information in our [CONTRIBUTING.md](CONTRIBUTING.md).
---

## Project structure
## 📁 Project Structure

Browser has a subproject of re-usable components bundled together and exposed as `neo4j-arc`. Rather than set up mono-repo tooling the we've set up eslint to isolate `neo4j-arc` and given it a seperate build step. Code in browser can only to import code from `neo4j-arc` through `neo4j-arc` aliases (as if it was a seperate project) and `neo4j-arc` is not allowed to import any code from outside it's own folder.
Browser has a subproject of reusable components bundled together and exposed as `neo4j-arc`. ESLint is configured to isolate `neo4j-arc` — code in browser can only import from `neo4j-arc` through its aliases, and `neo4j-arc` cannot import code from outside its own folder.

## Development
---

Running Neo4j Browser locally requires Node.js (^12.4.0) and for dependencies we use yarn (`npm install -g yarn`).
To install dependencies and then start the development server at `http://localhost:8080`:
## 🛠️ Development

```shell
### Prerequisites

- **Node.js** ^12.4.0
- **Yarn** — install with `npm install -g yarn`

### Getting Started

Install dependencies and start the development server at `http://localhost:8080`:

```bash
yarn install
yarn start
```

Or to run in production mode:
To run in production mode:

```shell
```bash
yarn start-prod
```

### Testing overview
---

Neo4j Browser has both unit and end to end tests running automatically on every pull request. To run the tests locally:
## 🧪 Testing

`yarn test-unit` runs a linter and then our unit tests.
### Unit Tests

`yarn test-e2e` runs our Cypress end to end tests in the easiest, slowest way. Running them with this command requires docker installed and that nothing else runs on ports 7687 and 8080.
Runs a linter followed by unit tests:

#### Cypress e2e test suite in depth
```bash
yarn test-unit
```

`yarn e2e-open` to open the Cypress test runner (requires a **fresh** installation of Neo4j to run against, expects neo4j 3.5 by default). See details below on how to configure database version.
### End-to-End Tests

`yarn e2e-local-open` to run against an existing server (with a password already set). We use `newpassword` as the default password here, make sure to pass your password:
`yarn e2e-local-open --env browser-password=<your-password-here>`
Runs Cypress e2e tests (requires Docker, ports 7687 and 8080 must be free):

To avoid opening the Cypress test runner and just run the tests in the terminal, remove the "-open" suffix from the previous two commands (so `yarn e2e` and `yarn e2e-local` respectively).
```bash
yarn test-e2e
```

So to run tests on your existing 4.2 database with the password "hunter2" without opening the Cypress visual test runner:
`yarn e2e-local --env browser-password=hunter2,server=4.2`
#### Cypress Options

All the available options for `--env` are:
Open the Cypress test runner against a fresh Neo4j installation:

```
server=3.5|4.0|4.1|4.2|4.3 (default 4.3)
edition=enterprise|community|aura (default enterprise)
browser-password=<your-pw> (default 'newpassword')
include-import-tests=true|false (default false)
bolt-url=<bolt url excluding the protocol> (default localhost:7687)
```bash
yarn e2e-open
```

There are some additional options that can only be set as system environmental variables (meaning they cannot be set using the `--env` flag as the ones above).
These needs to be set before the test command is run.
Run against an existing server with a custom password:

```bash
yarn e2e-local-open --env browser-password=<your-password>
```
CYPRESS_E2E_TEST_ENV=local|null (if the initial set of pw should run or not) (default undefined)
CYPRESS_BASE_URL=<url to reach the browser to test> (default http://localhost:8080)
```

Example: `CYPRESS_E2E_TEST_ENV="local" CYPRESS_BASE_URL=http://localhost:30000 cypress open --env server=4.2`
Available `--env` options:

| Option | Values | Default |
|--------|--------|---------|
| `server` | `3.5`, `4.0`, `4.1`, `4.2`, `4.3` | `4.3` |
| `edition` | `enterprise`, `community`, `aura` | `enterprise` |
| `browser-password` | any string | `newpassword` |
| `include-import-tests` | `true`, `false` | `false` |
| `bolt-url` | bolt URL (without protocol) | `localhost:7687` |

Environment variables (set before running):

| Variable | Description | Default |
|----------|-------------|---------|
| `CYPRESS_E2E_TEST_ENV` | `local` or unset | `undefined` |
| `CYPRESS_BASE_URL` | Browser URL to test | `http://localhost:8080` |

---

## 📞 Support

<p>
<a href="mailto:info@greystonesgroup.com"><img src="https://img.shields.io/badge/Email_Us-info@greystonesgroup.com-FF6600?style=flat-square&logo=gmail&logoColor=white" alt="Email Us"></a>
<a href="https://github.com/dozerdb/dozerdb-core#-support"><img src="https://img.shields.io/badge/More_Info-dozerdb--core-333333?style=flat-square&logo=github&logoColor=white" alt="More Info"></a>
</p>

---

<p align="center">
<sub>&copy; 2026 DozerDB Contributors</sub>
</p>