Getting started with Neo4j

This section documents the current Neo4j 2026.x calendar-versioned line — Neo4j moved from semantic to calendar versioning (YYYY.MM) in 2025, and the same line applies to the Graph Data Science library — as published at the Neo4j documentation, which is the reference these pages are written and verified against. No specific monthly patch is pinned. Some areas (Aura’s internal infrastructure, the Raft consensus implementation details, and the GDS Pregel API’s low-level internals) are linked, not documented in depth.

This content was generated with the assistance of AI and should be verified against the official documentation before being relied on in production, as Neo4j iterates quickly.

This section’s bibliography lists the reference material consulted while preparing these pages.

Neo4j is a native graph database: data is stored as nodes and relationships rather than rows in tables, and a relationship is a first-class, traversable pointer rather than a foreign key resolved by a join. This page covers the editions and ways to run a server, the two shells used to talk to it, and a first round trip of data through Cypher.

Editions and deployment options

Neo4j ships as two editions:

  • Community Edition — free and open-source, single-instance only. Enough to learn Cypher, prototype, and run smaller production workloads.

  • Enterprise Edition — adds clustering for high availability and read scale-out, role-based access control, and composite databases (a single logical database that federates queries across several physical databases or graphs — the modern replacement for the older "Fabric" name). A clustered deployment assigns each member the primary or secondary server role rather than the legacy CORE/READ_REPLICA terms.

You can run either edition several ways:

  • Neo4j Desktop — a local GUI application that manages one or more local database instances and opens Neo4j Browser against them. Good for a first exploration on a laptop.

  • Docker — the official image, for a disposable local server or as the base of a containerized deployment.

  • Self-managed — native packages (Debian/RPM, a Windows installer, or a plain archive) run directly on a server or VM you operate yourself.

  • Aura — Neo4j’s fully managed cloud service. AuraDB is the managed graph database (Free, Professional, Business Critical, and Virtual Dedicated Cloud tiers); AuraDS is a managed Graph Data Science workspace built on the same infrastructure. Aura runs the same Cypher engine as a self-managed server and removes patching, backups, and cluster operations.

# Disposable local server via Docker: Bolt on 7687, Browser/HTTP on 7474.
# https://neo4j.com/docs/operations-manual/current/docker/
docker run -d --name neo4j \
  -p 7474:7474 -p 7687:7687 \
  -e NEO4J_AUTH=neo4j/change-me-please \
  neo4j:2026.01

Neo4j moved from semantic versioning to calendar versioning (YYYY.MM) in 2025; the tag above pins a specific monthly release rather than a major.minor.patch. See Getting Started for the full installation matrix and What is Neo4j for the broader product tour this page assumes.

Aura: the managed cloud option

Aura removes the deployment step entirely: you create an instance through the web console or its API and get back a Bolt connection URI, with no server to patch or cluster to operate.

  • Aura docs — console usage, instance sizing, snapshots/backups, and the Aura API.

  • AuraDB — the managed graph database product page and its pricing tiers, including a free tier suitable for the examples on this page.

An AuraDB instance and a local Docker container are driven identically from here on: the same Bolt protocol, the same Cypher, and the same two shells described next.

Neo4j Browser and cypher-shell

Two clients ship with every Neo4j deployment (Aura included) and connect over the Bolt protocol, by default on port 7687:

  • Neo4j Browser — a web UI (served on port 7474 for a local/Docker install; embedded in the console for Aura) for running Cypher, visualizing the returned graph, and browsing schema. Reference: Neo4j Browser manual.

  • cypher-shell — a command-line REPL bundled with the server, for scripting and CI. Reference: cypher-shell.

$ cypher-shell -a neo4j://localhost:7687 -u neo4j -p change-me-please
Connected to Neo4j using Bolt protocol version 5.x at neo4j://localhost:7687
neo4j@neo4j> RETURN "hello" AS greeting;
+-----------+
| greeting  |
+-----------+
| "hello"   |
+-----------+
neo4j@neo4j> :exit

\:exit (in cypher-shell) and the equivalent Browser command bar both accept the same Cypher, so anything run in one works unchanged in the other — including the round trip below.

A first round trip in Cypher

A minimal write-then-read cycle: create two \:Person nodes, a \:Movie node, and an ACTED_IN relationship between one person and the movie, then read them back.

// Write: two people, a movie, and one relationship carrying its own property.
CREATE (keanu:Person {name: "Keanu Reeves", born: 1964})
CREATE (carrie:Person {name: "Carrie-Anne Moss", born: 1967})
CREATE (matrix:Movie {title: "The Matrix", released: 1999})
CREATE (keanu)-[:ACTED_IN {roles: ["Neo"]}]->(matrix)
CREATE (carrie)-[:ACTED_IN {roles: ["Trinity"]}]->(matrix);

// Read: everyone who acted in a given movie, and which role.
MATCH (p:Person)-[r:ACTED_IN]->(m:Movie {title: "The Matrix"})
RETURN p.name AS actor, r.roles AS roles;

That single query already touches the three things every later page builds on: labelled nodes, typed and directed relationships, and property maps on both. The property-graph vocabulary behind \:Person, ACTED_IN, and \{name: "Keanu Reeves"\} is covered in The property graph model, and the MATCH/CREATE/RETURN clauses used here are covered in full in Cypher fundamentals.

Where to go next