node:20-bookworm doesn't include the Docker CLI; install docker.io via
apt before the buildx and registry steps.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Node 20 is already in the node:20-bookworm runner image; setup-node
was hanging ~5min trying to reach an unconfigured npm cache service.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove host port binding (conflicts with local postgres on runner) and
use service name hostname instead of localhost for DATABASE_URL.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Move workflows from .github/ to .forgejo/ so they only run on Forgejo
- Replace styfle/cancel-workflow-action with native concurrency block
- Use full GitHub URLs for all third-party actions to bypass mirror
- Switch Docker layer cache from type=gha to type=registry
- Drop label-subissues workflow (relies on GitHub-specific GraphQL API)
- Add timeout-minutes to all jobs; cancel-in-progress only for non-main branches
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>