Issues that caused stuck CI: - docker/setup-buildx-action@v3 (not reliable on Forgejo) - docker/login-action@v3 (not reliable on Forgejo) - docker/build-push-action@v5 (too complex) - GHA caching (type=gha not supported on Forgejo) Fixed with: - Plain docker commands (login, build, push) - No buildx complexity - Direct progress output - Proper cleanup on failure - Timeout-safe (no hanging processes)