Skip to content

System Requirements

This page covers the requirements for both local development and production deployment.

SoftwareMinimum VersionPurpose
Go1.22+Gateway server and CLI
Docker20.10+PostgreSQL and build containers
Docker Compose2.0+Container orchestration
Bun1.3+Web frontend build tool
miseLatestEnvironment variable management
SoftwarePurpose
libfido2WebAuthn/FIDO2 support in CLI
TaskTask runner (recommended)
Terminal window
# Install Homebrew if not present
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install required software
brew install go
brew install --cask docker
brew install oven-sh/bun/bun
brew install mise
# Install optional software
brew install go-task/tap/go-task
brew install libfido2
ComponentRequirement
CPU1+ vCPU
Memory512MB+ RAM
Disk100MB for application
OSLinux (x86_64)

The gateway is lightweight and can run on small instances. A single instance handles hundreds of requests per second.

ComponentRequirement
PostgreSQL14+
Storage1GB+ (grows with audit logs)
Connections10+ per gateway instance
PortServiceAccess
8080 (default)Gateway APIInternal or VPN
443HTTPS (via load balancer)Users/CI/CD
5432PostgreSQLGateway only

Rack Gateway uses mise for environment variable management. Configuration is stored in:

  • mise.toml - Project defaults (committed to git)
  • mise.local.toml - Local overrides (gitignored)

For development, the defaults in mise.toml work with mock services. For production:

# mise.local.toml (production example)
[env]
# OAuth
GOOGLE_CLIENT_ID = "your-client-id.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET = "your-client-secret"
GOOGLE_ALLOWED_DOMAIN = "your-company.com"
# Database
DATABASE_URL = "postgres://user:pass@host:5432/rack_gateway?sslmode=require"
# Security
APP_SECRET_KEY = "your-32-byte-random-key"
COOKIE_SECURE = "true"
# Convox Rack
RACK_HOST = "https://api.rack.convox.cloud"
RACK_TOKEN = "your-rack-token"
RACK_ALIAS = "production"

See Configuration Reference for all options.

To use Rack Gateway, you need:

  1. Self-hosted Convox rack - The rack API endpoint
  2. Rack API token - Found in Terraform state or Convox Console
  3. Network access - Gateway must reach the rack API
  • Convox v3 (Kubernetes-based) - Fully supported
  • Convox v2 (ECS-based) - Not tested, may work

For OAuth authentication:

  1. Google Cloud Project with OAuth 2.0 credentials
  2. Google Workspace domain for user restriction
  3. Authorized redirect URI configured in GCP Console

See OAuth Setup for detailed instructions.

For WebAuthn/FIDO2 MFA support:

  • YubiKey 5 series (USB-A, USB-C, NFC)
  • YubiKey Security Key series
  • Platform authenticators (Touch ID, Windows Hello)
  • Any FIDO2-compatible authenticator

The rack-gateway CLI requires libfido2 for WebAuthn support:

Terminal window
brew install libfido2

After installing dependencies:

Terminal window
# Check Go version
go version # Should show 1.22+
# Check Docker
docker --version
docker compose version
# Check Bun
bun --version # Should show 1.3+
# Check mise
mise --version
# Optional: Check libfido2
pkg-config --modversion libfido2 # macOS/Linux

Then follow the Quick Start to verify everything works.