Skip to content

Releases

0.5.0: Cloudflare only, images on :latest

Choose a tag to compare

@nizarmah nizarmah released this 03 Nov 02:09
99c2638

LebaneseLegislation.com now runs only on Cloudflare: static pages and ruling PDFs from R2, everything dynamic (search, /api/v1/, /mcp) in the -all image on Cloudflare Containers, deployed blue/green.

  • Use :latest. Every image (-db, -api, -mcp, -all, -vectors) gets a latest tag and a UTC date tag from the workflow that builds it. Compose and the docs pull :latest; version tags no longer change.
  • Run it: ./setup, then docker compose --profile all up -d all, and open http://localhost:8080 (website, /api/v1/, /mcp).
  • The MCP server is the Go server in the container; the old D1 Worker is removed.
  • No PostgreSQL dump releases: data is Parquet on Hugging Face and the database baked into -db.
  • Every page and API record carries when it last changed (dateModified, updated_at); /openapi.json describes the API.
  • The static build renders in 24 shards and only what changed.

Full list: docs/changes.md. Journal: https://lebaneselegislation.com/blog/

0.4.0: API and MCP in Go

Choose a tag to compare

@nizarmah nizarmah released this 31 Oct 15:11
fbb24bf

Code version 0.4.0. The data lives on Hugging Face.

Images

Image Platforms
ghcr.io/taktekhq/lebanese-legislation-db:0.4.0 linux/amd64, linux/arm64
ghcr.io/taktekhq/lebanese-legislation-api:0.4.0 linux/amd64, linux/arm64
ghcr.io/taktekhq/lebanese-legislation-mcp:0.4.0 linux/amd64, linux/arm64
ghcr.io/taktekhq/lebanese-legislation-web:0.4.0 linux/amd64, linux/arm64

Changes

  • The API and MCP run the same Go code as the website, the code behind LebaneseLegislation.com. On the full database the slowest answer took 0.24 s, where 0.3.0 took up to 7.3 s and could time out on a fresh restore.
  • Layout: web/, api/ and mcp/ (one main.go and Dockerfile each), shared Go code in internal/, Python data tools in tools/.
  • Kept from 0.3.0: the same /api/v1/ routes and MCP tools, calculated_current and calculated-amount search, search by meaning (semantic=true, select=true), full get_law outlines, the MCP browser origin rule, and the same settings. No rate limit by default; RATE_LIMIT_PER_MINUTE adds one.
  • New: a query that cites an article puts it first; MCP get_law can page a long outline.
  • Gone: the API's /docs page and the Python-only /search; use /api/v1/search/. Search counts come from the website's word search and differ from 0.3.0.
  • lebleg restore adds the service tables itself, so self-hosted restores and the update pipeline get them too.
  • The handwriting demo moved to its Hugging Face Space.

Full notes: docs/changes.md.

0.3.0: the website as the -web image

Choose a tag to compare

@nizarmah nizarmah released this 31 Oct 12:05
afdc2c9

Code version 0.3.0. The data is unchanged and lives on Hugging Face.

Images

Image Platforms
ghcr.io/taktekhq/lebanese-legislation-db:0.3.0 linux/amd64, linux/arm64
ghcr.io/taktekhq/lebanese-legislation-api:0.3.0 linux/amd64, linux/arm64
ghcr.io/taktekhq/lebanese-legislation-mcp:0.3.0 linux/amd64, linux/arm64
ghcr.io/taktekhq/lebanese-legislation-web:0.3.0 linux/amd64, linux/arm64 (new)

Changes

  • New: the website, as ghcr.io/taktekhq/lebanese-legislation-web. ./start runs it at http://localhost:8080 next to the API and MCP.
  • The DB image adds what the website reads and the public dump lacks (db/web.sql): text functions, generated search columns, two views, four empty tables and 24 indexes. It runs once after the first restore.
  • The DB health check also requires that step, so a failed step stays visible.

Upgrading from 0.2.0

On a database you already restored, run once:

docker compose exec db bash /opt/lebleg/db/web-schema.sh

Full notes: docs/changes.md.

0.2.0: one folder per part

Choose a tag to compare

@nizarmah nizarmah released this 31 Oct 02:13
2310258

Code version 0.2.0. The data is unchanged and lives on Hugging Face.

Images

Image Platforms
ghcr.io/taktekhq/lebanese-legislation-db:0.2.0 linux/amd64, linux/arm64
ghcr.io/taktekhq/lebanese-legislation-api:0.2.0 linux/amd64, linux/arm64
ghcr.io/taktekhq/lebanese-legislation-mcp:0.2.0 linux/amd64, linux/arm64

Changes

  • One folder per part: db/ (PostgreSQL image), server/ (API, MCP and data tools), web/ (website), examples/, docs/.
  • The DB image builds PostgreSQL 18.6 and pgvector 0.8.2 itself from the official postgres:18.6 image. It no longer depends on the deleted lebanese-legislation-starter image.
  • The Python package is lebleg (was lebleg_starter). Files inside the images moved from /opt/starter to /opt/lebleg.
  • compose.yaml takes the DB health check from the image.
  • API and MCP responses are unchanged from 0.1.7.

Upgrading from 0.1.x

The Compose project is now lebanese-legislation (was lebleg-starter), so ./start creates a new volume and restores again. To keep a database you already restored, add COMPOSE_PROJECT_NAME=lebleg-starter to .env.

Full notes: docs/changes.md.