---
title: Docker Install
sort: 100
section-id: installation
keywords: Docker, install, docker run, docker-compose, volumes, container
description: Installing NeuralDB using Docker — single container and docker-compose setups
language: en
---

# Docker Install

Docker is the fastest way to run NeuralDB locally or in a single-server deployment.

## Quick Start

```bash
docker run -d \
  --name neuraldb \
  -p 5432:5432 \
  -e NEURALDB_PASSWORD=mypassword \
  -e NEURALDB_DB=mydb \
  -v neuraldb_data:/var/lib/neuraldb/data \
  neuraldb/neuraldb:latest
```

Connect with psql:

```bash
psql -h localhost -p 5432 -U neuraldb -d mydb
```

## Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `NEURALDB_PASSWORD` | required | Password for the `neuraldb` superuser |
| `NEURALDB_USER` | `neuraldb` | Superuser username |
| `NEURALDB_DB` | `neuraldb` | Default database name |
| `NEURALDB_PORT` | `5432` | TCP port |
| `NEURALDB_SHARED_BUFFERS` | `256MB` | Row store page cache |
| `NEURALDB_VECTOR_BUFFER` | `512MB` | Vector index memory |

## docker-compose Setup

```yaml
version: '3.9'

services:
  neuraldb:
    image: neuraldb/neuraldb:1.0
    container_name: neuraldb
    restart: unless-stopped
    ports:
      - "127.0.0.1:5432:5432"
    environment:
      NEURALDB_PASSWORD: ${NEURALDB_PASSWORD}
      NEURALDB_SHARED_BUFFERS: "4GB"
      NEURALDB_VECTOR_BUFFER: "8GB"
    volumes:
      - neuraldb_data:/var/lib/neuraldb/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U neuraldb"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  neuraldb_data:
```

```bash
echo "NEURALDB_PASSWORD=$(openssl rand -base64 32)" > .env
docker-compose up -d
```

## Upgrading

```bash
docker pull neuraldb/neuraldb:1.1
docker stop neuraldb && docker rm neuraldb
docker run -d --name neuraldb \
  -v neuraldb_data:/var/lib/neuraldb/data \
  -e NEURALDB_PASSWORD=mypassword \
  neuraldb/neuraldb:1.1
docker exec neuraldb neuraldb-migrate
```
