Skip to content

Releases: codexofc/cigarspace

Cigarspace 1.0.0

25 May 19:29

Choose a tag to compare

Cigarspace 1.0.0 — initial public release

Cigarspace is an open-source knowledge platform for the global cigar market. It ingests merchant catalogues and customs publications, links them with a hybrid pgvector + trigram matcher, and exposes the canonical knowledge through a public HTTP API and a React admin UI.

What's inside

  • Ingestion — multi-merchant scraping (mistercigar.com, cigarpassion.ch) with a parser registry by domain, and a resilient tiered fetcher (direct → HTTP proxy → ProtonVPN WireGuard sidecar → Tor SOCKS5).
  • Domain model — canonical Brand / CigarLine / Cigar / Package / Media entities, with explicit blend, tasting and dimensions value objects.
  • Customs ingestion — jurisdiction-neutral CustomsSource / CustomsPublication / CustomsPriceEntry. France adapter targets the Douane FR open-data CSV.
  • Hybrid matchingpgvector + MPNet 768-d embeddings combined with trigram and structured signals via Reciprocal Rank Fusion. Human verdicts (HUMAN_ACCEPTED / HUMAN_REJECTED) preserved across re-matches.
  • Public HTTP API — FastAPI service: OAuth2 password grant with rotating refresh tokens, RFC 7807 errors, ETag/304, RFC 5988 pagination, OpenAPI 3.1 auto-generated.
  • Web admin UI — React + Vite + TypeScript + shadcn/ui, with HttpOnly cookie auth, dashboard, cigar browser, hybrid search, and review queue.
  • i18nreact-intl with English and French locales, in-app language switcher.
  • Docker — multi-stage api, web, and all-in-one images (light + demo variants); docker compose topology with Postgres (pgvector), Redis, SeaweedFS.
  • CI/CD — GitHub Actions workflows for lint+test, multi-arch Docker buildx → GHCR, release-please, CodeQL, OpenSSF Scorecard.

Getting started

git clone https://github.com/codexofc/cigarspace.git
cd cigarspace
cp .env.example .env
docker compose -f docker/compose.yml up -d

See the README, architecture docs and ADRs.

Licensing

Sources distributed under PolyForm Noncommercial 1.0.0. A parallel commercial path is documented in COMMERCIAL_LICENSE.md.