Local Docker Compose Quick-Start
Use this path to evaluate Multiforum on one machine before configuring Auth0, cloud storage, maps, email, or other production integrations. The stack starts Neo4j, builds the backend and frontend, creates the initial server configuration and roles, and provisions the first administrator automatically.
Requirements
- Docker Engine with Docker Compose v2 (Docker Desktop includes both)
- Git
- At least 6 GB of memory available to Docker during the initial builds
Start Multiforum
git clone https://github.com/gennit-project/multiforum-nuxt.git
cd multiforum-nuxt
docker compose up --build
The first run builds both applications and can take several minutes. When all three services are healthy, open http://localhost:3000 and choose Sign in.
| Service or credential | Default |
|---|---|
| Frontend | http://localhost:3000 |
| Backend | http://localhost:4000 |
| Neo4j Browser | http://localhost:7474 |
| Administrator username | admin |
| Administrator email | admin@multiforum.local |
| Administrator password | multiforum-local-admin |
| Neo4j password | multiforum-local-neo4j |
No manual Cypher commands or third-party accounts are required. The ports bind
to 127.0.0.1 by default, and named Docker volumes preserve data between
restarts.
Choose local credentials
Copy the template and change both passwords before the first run:
cp .env.quickstart.example .env.quickstart
docker compose --env-file .env.quickstart up --build
The template supports these overrides:
| Variable | Purpose |
|---|---|
MULTIFORUM_INSTANCE_NAME | Display and server-configuration name |
MULTIFORUM_BOOTSTRAP_EMAIL | Initial administrator email |
MULTIFORUM_BOOTSTRAP_USERNAME | Initial administrator username |
MULTIFORUM_BOOTSTRAP_PASSWORD | Initial administrator password (at least 12 characters) |
NEO4J_PASSWORD | Local database password |
MULTIFORUM_BIND_ADDRESS | Host interface; keep 127.0.0.1 for local use |
MULTIFORUM_PUBLIC_FRONTEND_URL | Browser-visible frontend URL |
MULTIFORUM_PUBLIC_BACKEND_URL | Browser-visible backend URL |
MULTIFORUM_BACKEND_REPOSITORY | Backend Git repository to build |
MULTIFORUM_BACKEND_REF | Backend Git tag, branch, or commit to build |
The bootstrap user is created only when its email is not already present. Changing these values later does not replace an existing administrator.
Build behavior and repeatability
The quick-start currently builds the backend from the public backend
repository's main branch because a continuously published official backend
image is not yet available. That image workflow is tracked in
multiforum-backend#207.
For a repeatable local installation, set MULTIFORUM_BACKEND_REF to a release
tag or commit:
MULTIFORUM_BACKEND_REF=v1.2.3
You can also override MULTIFORUM_BACKEND_IMAGE and
MULTIFORUM_FRONTEND_IMAGE to choose the local image tags produced by Compose.
Stop, restart, or reset
Stop containers without deleting data:
docker compose down
Start them again with the same data:
docker compose up
To intentionally delete all local Multiforum data and start over:
docker compose down --volumes
Deliberately optional integrations
Uploads, maps, geocoding, outbound email, and Auth0 are not required by this stack. Multiforum's capability status hides, disables, or explains related controls when those integrations are unavailable. Open Admin > Instance Setup after signing in to see the status of each capability.
The quick-start uses local-dev authentication and a shared bootstrap
password. The backend accepts that provider only when NODE_ENV=development.
Do not expose this configuration to the public internet. Use the
production self-hosting path with Auth0, TLS, unique secrets,
backups, and a secured Neo4j deployment.
Troubleshooting
Inspect health and recent logs:
docker compose ps
docker compose logs --tail=100 database backend frontend
If an initial build is killed because Docker ran out of memory, increase Docker's memory allocation or build one image at a time:
COMPOSE_PARALLEL_LIMIT=1 docker compose up --build
If ports 3000, 4000, 7474, or 7687 are already in use, stop the conflicting local services before starting the stack.