Per the rule for a new plugin: the public gitea repository and its infrastructure
come first, so there is somewhere for the work to land rather than a directory
that becomes a repository later.
What is here is the shape and the two decisions it deliberately does not make —
where the container runs, and whether Officer's agents call OpenSEO's /mcp
directly or Officer wraps it as native tools. Both are the owner's, both are
recorded in the todo this came from, and the scaffold keeps both open by
proxying.
Everything in the README was verified against upstream's compose.yaml and its
own skills rather than its marketing: one container, port 3001 on loopback,
SQLite in a volume, AUTH_MODE=local_noauth, and DATAFORSEO_API_KEY as base64 of
login:password.