Skip to content

Installation

Prerequisites

  • Python 3.11 or higher
  • PostgreSQL database (for database operations)
  • Docker (only for running integration tests during development)

Install the package using pip or uv:

pip install crump
uv pip install crump

This installs the crump CLI tool and makes the package available for programmatic use.

Install from Source

For development or to get the latest unreleased features:

# Clone the repository
git clone https://github.com/alastairtree/crump.git
cd crump

# Install with uv (recommended)
uv sync --all-extras

# OR install with pip
pip install -e ".[dev]"

For the best development experience, open the project in VSCode with the Dev Containers extension:

  1. Install Docker Desktop
  2. Install the Dev Containers extension
  3. Open the project folder in VSCode
  4. Click "Reopen in Container" when prompted (or use Command Palette: "Dev Containers: Reopen in Container")

The devcontainer includes:

  • Python 3.11 with all dependencies pre-installed via uv
  • Docker-in-Docker for running integration tests
  • VSCode extensions for Python, Ruff, and Docker
  • Proper test and linting configuration

Verify Installation

After installation, verify that crump is installed correctly:

# Check version
crump --version

# Show help
crump --help

You should see output showing the version number and available commands.

Database Setup

PostgreSQL

You'll need a PostgreSQL database to sync data to. You can:

Option 1: Use an existing PostgreSQL instance

export DATABASE_URL="postgresql://user:password@localhost:5432/mydb"

Option 2: Run PostgreSQL with Docker

docker run -d \
  --name postgres-crump \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=mydb \
  -p 5432:5432 \
  postgres:16

export DATABASE_URL="postgresql://postgres:postgres@localhost:5432/mydb"

Option 3: Use a cloud provider

SQLite (Alternative)

For testing or lightweight use cases, you can also use SQLite:

export DATABASE_URL="sqlite:///mydb.db"

Note

Some features like advanced indexing work differently in SQLite vs PostgreSQL.

Next Steps