If you want (4) and don't care about a web interface for managing repos, but do want Git-LFS, Soft Serve (https://github.com/charmbracelet/soft-serve/) works pretty well. I used it for self-hosted stuff until I started needing other features Forgejo offers.

Or just push to an S3 bucket with `gitsocial mirror <s3>`