G

Installation

GalaxDB ships as a single binary (galaxdb-server) with an optional sidecar binary (galaxdb-sidecar) for local embedding computation. Choose the installation method that fits your workflow.

curl Installer (Linux / macOS)

The fastest way to install GalaxDB on Linux or macOS. Installs galaxdb-server to /usr/local/bin.

bash
curl -fsSL galaxdb.com/get | bash

The sidecar binary (galaxdb-sidecar) is downloaded separately from the Releases page. You only need it if you want local embedding computation (SEMANTIC_MATCH and EMBEDDING MODEL columns).

Note

The installer requires curl and write access to /usr/local/bin. Run with sudo if needed.

Homebrew (macOS)

bash
brew tap zentrix-innovative-labs/tap
brew install galaxdb

This installs both galaxdb-server and galaxdb-sidecar. Homebrew handles updates via brew upgrade galaxdb.

Docker

The official Docker image is available on Docker Hub as harbi256/galaxdb:latest.

Without embeddings (SQL + vector search only)

bash
docker run -d \
  -p 5433:5433 \
  -p 9090:9090 \
  -v /data:/data \
  harbi256/galaxdb:latest

With embeddings (full AI features)

bash
docker run -d \
  -p 5433:5433 \
  -p 9090:9090 \
  -v /data:/data \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  harbi256/galaxdb:latest \
  --data-dir /data \
  --port 5433 \
  --observe-port 9090 \
  --sidecar /usr/local/bin/galaxdb-sidecar \
  --model sentence-transformers/all-MiniLM-L6-v2

Tip

Mount ~/.cache/huggingface to cache the model (~90 MB for all-MiniLM-L6-v2) across container restarts. Without this mount, the model re-downloads on every container start.

Python (pip)

The Python client provides both embedded mode (no server required) and server mode (connects to a running galaxdb-server).

bash
pip install galaxdb-client
Python
import galaxdb

# Embedded mode — no server needed
db = galaxdb.Database("./mydata")
db.execute("CREATE TABLE t (id INT PRIMARY KEY, name TEXT)")
rows = db.execute("SELECT * FROM t")

# Server mode
conn = galaxdb.connect("host=localhost port=5433 dbname=galaxdb sslmode=disable")
conn.execute("SELECT * FROM t")

Build from Source

Requires Rust stable 1.80+ and Cargo. Clone the repository and build the server binary:

bash
git clone https://github.com/zentrix-innovative-labs/galaxdb
cd galaxdb

# Build the server
cargo build --release -p galaxdb-server

# Build the sidecar (requires Python 3.9+ and maturin for the embedding model)
cargo build --release -p galaxdb-sidecar

# Run tests
cargo test --workspace --exclude galaxdb-python --lib

The release binaries are at target/release/galaxdb-server and target/release/galaxdb-sidecar.

Note

The sidecar downloads the HuggingFace model on first run (~90 MB for all-MiniLM-L6-v2). Subsequent starts use the local cache at ~/.cache/huggingface.

Verify Installation

Start the server and check the health endpoint:

bash
# Start server (without embeddings)
galaxdb-server --data-dir ./data --port 5433 --observe-port 9090

# In another terminal, check health
curl http://localhost:9090/health
JSON
{
  "status": "ok",
  "version": "1.0.0-beta.1",
  "subsystems": {
    "disk_full": false,
    "sidecar_healthy": false,
    "connections_active": 0
  }
}

sidecar_healthy: false is expected when started without --sidecar. Start with the sidecar flags to enable embedding features.

bash
# Connect with psql
psql "host=localhost port=5433 dbname=galaxdb sslmode=disable"

# Or with the Python client
python3 -c "import galaxdb; db = galaxdb.Database('./data'); print(db)"