You’ve got a Git server running in Gogs, a reliable little workhorse for lightweight repositories. You’ve got F5 in front of it, acting like a strict bouncer guarding every incoming request. On paper, these two should get along. In practice, it takes a bit of tuning to make F5 Gogs behave like a single, cohesive system.
F5 handles load balancing, SSL offload, and security enforcement. Gogs focuses on source control, fast and lean. Put them together and you get a private Git service with enterprise-grade security and performance tuning, provided you align identity and routing correctly. That alignment is where most setups stumble.
First, think of F5 as the front door. It must know who’s knocking and whether to let them in. Use F5’s Advanced WAF or Access Policy Manager to integrate with your preferred identity provider (Okta, Azure AD, or anything OIDC-ready). Pass identity context as headers to Gogs, which can map them to internal users or teams. No more password juggling, no more misaligned session cookies.
Second, keep SSL termination consistent. If F5 terminates TLS, make sure Gogs trusts the forwarded protocol and headers (X-Forwarded-Proto, Host). Otherwise, you’ll end up debugging endless redirect loops. The logic is simple: F5 decrypts and verifies traffic, Gogs stays focused on Git operations.
Third, automate user provisioning and repository permissions. Tie F5’s authentication policies to Gogs’ API or directly to its SQLite or MySQL backend for automatic access management. Push teams from your corporate directory to Gogs via script or workflow. The goal is fewer humans in the loop, fewer mistakes at scale.