- Pin golang base image to sha256 digest (was golang:1.25-alpine)
- Pin alpine base image to sha256 digest (was alpine:3.19)
- Pin golangci-lint go install to commit SHA (was @latest)
- Pin goimports go install to commit SHA (was @latest)
This eliminates RCE risk from tag-based references that could be
poisoned to run arbitrary code during docker build.
- Generate random 32-byte session secret if not set via env var
- Persist to $UPAAS_DATA_DIR/session.key for container restarts
- Load existing secret from file on subsequent startups
- Change container data directory to /var/lib/upaas