Saving terms for a domain/direction that has no glossary yet skips the
delete-before-create step, so the create runs against an account whose
glossary allowance may already be spent. DeepL answers 456 with a bare
{"message":"Too many glossaries"}, which was passed straight to the browser
and reads like a bug in this app.
On the API Free plan the allowance is one glossary for the entire account,
so this triggers as soon as a second domain or direction is used — the UI
offers eight slots (4 domains x 2 directions) that the plan cannot back.
The 456 case now reports which glossaries hold the slots and names the two
ways out: free one up, or upgrade the plan.
Co-Authored-By: Claude <noreply@anthropic.com>
Node HTTP server that proxies the DeepL API and serves a single-page UI, plus
per-domain glossary management for the four Scheer entities. Runs on Node's
built-ins only; no dependencies.
Containerized for Dokploy: the domain -> glossary_id map is written to
DOMAINS_FILE (default /app/data/domains.json) so it can live on a mounted
volume and survive redeploys. See DEPLOY.md.
Co-Authored-By: Claude <noreply@anthropic.com>