Skip to main content

Neo4j Setup

The supported Docker Compose paths include Neo4j. You do not need to install a database separately for the local quick-start or single-host production foundation.

Local quick-start

docker compose up -d starts the image selected by MULTIFORUM_NEO4J_IMAGE, creates a persistent volume, and connects the backend over the private Compose network. The example credentials are for local use only.

Resetting with docker compose down --volumes permanently deletes the local database.

Single-host production

Set a unique password and a pinned Neo4j image in .env.production:

NEO4J_PASSWORD=your-long-random-password
MULTIFORUM_NEO4J_IMAGE=neo4j:TESTED_VERSION

The production overlay keeps Bolt and Neo4j Browser bound to loopback for host diagnostics. Do not expose ports 7474 or 7687 publicly.

Neo4j data lives in the neo4j-data Docker volume. Use the repository's backup and restore commands rather than copying a live volume. The cold-backup command stops the write path and database before archiving it.

Version compatibility

Pin the database, backend, and frontend versions that you have tested together. Neo4j stores are not generally portable across arbitrary versions.

The safe upgrade command blocks a Neo4j image change unless --allow-database-image-change is supplied. Use that flag only after reviewing Neo4j's supported upgrade path and proving the backup on a separate host.

The guarded restore likewise rejects a mismatch between the bundle's recorded database image and the configured image unless explicitly overridden.

External or managed Neo4j

The application can be developed against an external Neo4j deployment, but the current production Compose and Terraform foundation are designed around the included single-host database volume. Managed Neo4j and high-availability database topologies remain advanced, operator-owned configurations rather than documented turnkey paths.