Skip to content
CookDex docs
You're reading the docs for CookDex v2026.9.1, an earlier release. See this page in the latest docs.

Install CookDex

CookDex runs on your server next to Mealie, from GitHub Container Registry (ghcr.io/thekannen/cookdex). This page ends with the container running; Getting started picks up at first login.

  1. Download the compose file:

    Terminal window
    mkdir -p cookdex && cd cookdex
    curl -fsSL https://raw.githubusercontent.com/thekannen/cookdex/main/compose.ghcr.yml -o compose.yaml

    No .env file is required. To override defaults (port, base path, etc.), optionally download and edit .env.example:

    Terminal window
    curl -fsSL https://raw.githubusercontent.com/thekannen/cookdex/main/.env.example -o .env
  2. Start the service:

    Terminal window
    docker compose pull cookdex
    docker compose up -d cookdex
  3. Check that it’s running:

    Terminal window
    curl -k https://localhost:4820/cookdex/api/v1/health

Next: open https://localhost:4820/cookdex and follow Getting started.

Host path Container path Purpose
./cache /app/cache SQLite state database, encryption key, and TLS certificate
./logs /app/logs Task run log files
./reports /app/reports Audit and maintenance reports

The ./cache volume stores the state database (taxonomy, settings, run history, schedules), the auto-generated encryption key, and the TLS certificate. Keep this volume persistent.

Update in place; your settings, run history and schedules stay in ./cache.

Terminal window
docker compose pull cookdex
docker compose up -d --remove-orphans cookdex

After updating, verify login and check /cookdex/api/v1/health.

Tag Tracks
latest The most recent release (default)
v2026.x.y A specific release, never moved
edge The newest build from main, which may include unreleased changes
sha-<commit> A specific main build; only the 20 most recent are kept

To use a different tag, set COOKDEX_TAG in .env.

  • All runtime settings are managed from the Settings page after login.
  • Secrets are encrypted at rest using an auto-generated key (stored in ./cache).
  • An optional .env file can pre-seed settings or override defaults for headless deployments.