47 lines
1.6 KiB
Markdown
47 lines
1.6 KiB
Markdown
# Preface Tools
|
|
|
|
Preface Tools is a database-free classroom utility server. Its first tool,
|
|
Comic Animator, lets a student upload a comic page, create and edit a
|
|
multimodal OpenRouter prompt, obtain instructor approval, and generate a video.
|
|
|
|
## Run locally
|
|
|
|
Requires Go 1.26 or later. Copy `.env.example` to `.env`, replace every secret
|
|
and model placeholder, export the variables, then run:
|
|
|
|
```sh
|
|
go run ./cmd/preface-tools
|
|
```
|
|
|
|
The process fails at startup when required configuration is missing. In
|
|
production, use HTTPS and set `APP_ENV=production` so the session cookie is
|
|
marked Secure. `PUBLIC_BASE_URL` must be an HTTPS address reachable by
|
|
OpenRouter because it fetches a short-lived, signed source-image URL.
|
|
|
|
## Storage and restart behavior
|
|
|
|
Uploads and runtime generation records are held in process-specific registries.
|
|
Completed videos are streamed immediately and atomically into
|
|
`data/comic-animator/outputs` (or the configured output directory). The
|
|
instructor page scans that directory, so downloaded videos remain recoverable
|
|
after restart.
|
|
|
|
OpenRouter does not document an endpoint for listing all historical video jobs.
|
|
Consequently, queued and in-progress jobs and rich metadata cannot be recovered
|
|
after a restart. The downloaded-file view is a recovery aid, not an audit log.
|
|
Uploads and outputs are not automatically removed; operators must monitor disk
|
|
usage and introduce a retention policy appropriate to their deployment.
|
|
|
|
## Verification
|
|
|
|
```sh
|
|
gofmt -w .
|
|
go test ./...
|
|
go test -race ./...
|
|
go vet ./...
|
|
go build ./...
|
|
```
|
|
|
|
No database, Node.js, npm, frontend build, or live OpenRouter call is required
|
|
by the automated test suite.
|