This project demonstrates the implementation of dual OmniAuth provider configurations for GitHub authentication, supporting both standard GitHub.com and GitHub Enterprise Cloud (GHE) instances for data residency requirements.
- Ruby 3.4.3
- OAuth API credentials:
- GitHub.com API keys
- GitHub Enterprise API keys for your organization (
<subdomain>.ghe.com
)
- A public-facing domain for OAuth callbacks
- Recommended tunnel solutions:
- ngrok
- Tailscale Funnel
- Cloudflare Tunnel
- Recommended tunnel solutions:
-
Create and configure environment variables:
cp .env.example .env
Update the
.env
file with your OAuth credentials. -
Configure Bundler to access the Packfiles gem registry:
bundle config https://rubygems.pkg.github.com/packfiles USERNAME:personal_access_token_with_registry_access
-
Initialize the project:
bin/setup
-
Set up a tunnel for local development:
tailscale funnel 3000
Update config/environments/development.rb
with your tunnel hostname(s) to enable OAuth callback functionality.
Data.Residency.Example.5-13-2025.16-56-27.mp4
Made with ❤️ by Packfiles 📦