Wenlan
Wenlan은 소스 기반 AI 지식베이스·LLM 위키로, 문서·결정을 페이지화해 검색·검토·리뷰 가능
Engrafo는 작은 자체 호스팅 문서 아카이브입니다
Engrafo is a small self-hosted document archive: upload PDFs and scans to your own S3-compatible bucket, OCR them into searchable PDFs, and watch each step of the pipeline.
생산성TypeScript · CSSGitHub @cubicecho온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
A minimal self-hostable document archive — the short path through Paperless-ngx, and nothing else.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A minimal self-hostable document archive — the short path through Paperless-ngx, and nothing else.
Upload a file. It goes straight into an S3-compatible bucket, a small pipeline runs over it, the text it found lands in a second bucket, and what came out is on the document's page. Postgres holds the metadata and nothing bulky. That is the whole product.
ocrmypdf with Paperless's own flags, so a scan becomes
a searchable PDF/A plus the plain text it found. A born-digital PDF keeps the
text layer it already has.12.03.2025, 03/12/2025, 12 March 2025), shown on the
document, and yours to correct. A date you set or clear is never replaced
when the document is processed again.date,vendor,total,currency,title,folder) for a date
range or a folder. Fields it is unsure of are left empty rather than guessed:
a bare $ is several currencies, and a document with no labelled total is
not taken for a receipt.scan.pdf becomes scan (2), and a rename or
move onto a taken name is refused rather than overwriting. Deleting a folder,
once you have typed its name, puts everything in it in the Trash.TRASH_RETENTION_DAYS (30) is deleted for
good on its own. Until then it is out of search, the tree and MCP, but its
files are still stored.WATCH_DIR and
whatever lands there is filed into one account's archive, its subfolders
as folders, then removed. Paperless's consume folder. See
The watched folder.No tags, no correspondents, no mail ingestion. Folders are the one way to organise. Those are what Paperless is for.
Four containers: Engrafo, Postgres, RustFS, and a one-shot job that creates the two buckets. The app and the API are served from the same origin; the bucket is its own, because browsers upload to it directly.
Nothing to clone and nothing to build —
docker-compose.quickstart.yml pulls a
published image. Its header comments are the install instructions, and they
repeat what is below.
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\nBETTER_AUTH_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
On TrueNAS SCALE or Portainer, paste the file's contents instead of downloading it — Portainer's Stacks → Add stack → Web editor, or TrueNAS's Apps → Discover → Custom App → Install via YAML — and put the four variables in the stack's environment-variables box.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗