Put the copy-pasted workflows in the Makefile
fix, image, db, backup and clean were all sitting in README.md or docs/deployment.md as blocks to paste. The image target takes IMAGE from the caller so no registry of mine lands in the repository, and refuses an untagged HEAD — the version reaches the binary only through the build arg, so an untagged build makes /healthz claim something that was never released. run was broken: since seeding landed, starting the bare binary against an empty database fatals on the missing admin credentials. It now passes development defaults and binds loopback. The README's layout section still said the source was flat at the root.
This commit is contained in:
@@ -162,11 +162,23 @@ docker compose exec app sqlite3 /storage/levyraati.db
|
||||
|
||||
## Layout
|
||||
|
||||
Go source is flat at the repository root, one package. Beyond that: `templates/` and `static/` are
|
||||
embedded assets, `migrations/` holds numbered `.sql` files applied in order at startup, and
|
||||
`testdata/` holds the golden JSON files that guard the API contract, plus `ytdlp-noose.json` — a real
|
||||
`yt-dlp -J` dump of an ordinary upload, used to test metadata prefill against a video that has no
|
||||
`track`, `artist` or `album` at all.
|
||||
`src/` is the whole program: one flat `package main`, with the assets it embeds beside it, because
|
||||
`//go:embed` cannot reach outside its own directory. `templates/` and `static/` are those assets,
|
||||
`migrations/` holds numbered `.sql` files applied in order at startup, and `testdata/` holds the
|
||||
golden JSON files that guard the API contract, plus `ytdlp-noose.json` — a real `yt-dlp -J` dump of
|
||||
an ordinary upload, used to test metadata prefill against a video that has no `track`, `artist` or
|
||||
`album` at all.
|
||||
|
||||
The root keeps what is not source: `docs/`, the container and compose files, the `Makefile`, and
|
||||
`storage/` once the app has run.
|
||||
|
||||
| Command | Does |
|
||||
|---|---|
|
||||
| `make` | gofmt, `go vet`, `go test` — everything that must pass before a commit |
|
||||
| `make run` | Build and start on `127.0.0.1:8080` with development defaults |
|
||||
| `make fix` | Show `go fix` modernizer suggestions as a diff, without applying them |
|
||||
| `make image IMAGE=…` | Build a release image tagged from `git describe`; refuses an untagged HEAD |
|
||||
| `make db` / `make backup` | SQLite shell, and a WAL-safe snapshot, against the running container |
|
||||
|
||||
## Notes
|
||||
|
||||
|
||||
Reference in New Issue
Block a user