engrafo

A minimal self-hostable document archive: the short path through Paperless-ngx, and nothing else.

Get started GitHub ↗

What it does

Upload a file and it goes straight into a bucket you own. A small pipeline runs over it, the text it found is stored beside it, and the document's page shows what came out. It is for someone who wants scans and PDFs kept and readable on their own server, without the search, tags, correspondents and mail ingestion that Paperless-ngx is for.

Get started

Four containers from a published image: Engrafo, Postgres, RustFS and a one-shot job that creates the buckets. Nothing to clone or build.

mkdir engrafo && cd engrafo
curl -fsSLO https://raw.githubusercontent.com/cubicecho/engrafo/main/docker-compose.quickstart.yml

# The three secrets it refuses to start without, plus the address you reach it at.
printf 'ENGRAFO_HOST=%s\nJWT_SECRET=%s\nPOSTGRES_PASSWORD=%s\nRUSTFS_PASSWORD=%s\n' \
  "$(hostname -f)" "$(openssl rand -hex 32)" "$(openssl rand -hex 24)" "$(openssl rand -hex 24)" > .env

docker compose -f docker-compose.quickstart.yml up -d

Engrafo is then on http://ENGRAFO_HOST:3004. Set ENGRAFO_HOST to the hostname or LAN address you browse to, not localhost: uploads go to a URL signed for that host. Sign in with any email address; the magic link is written to the container's log.