Project Status: Experimental / Work in Progress
This project is in early development. It is not production-ready, and breaking changes are likely. Use at your own risk.
goth is a simple authorization proxy for learning, prototyping, and experimentation. It supports JWT validation, basic access control, and integration with OIDC/OAuth2 providers. The codebase is evolving and not feature-complete.
- JWT validation and basic access control
- OIDC/OAuth2 provider integration
- Access logging
- Configuration via environment variables or CLI flags
- Dockerfile and Docker Compose for local testing
- Go 1.22+
- Docker & Docker Compose
golangci-lint(for linting)
Clone the repository and use the provided Makefile:
git clone https://github.com/praserx/goth.git
cd goth
make build- Style Check:
make style - Lint:
make lint - Unit Tests:
make test - Build Binary:
make build(outputs tobin/) - End-to-End Test:
make test-e2e(runs full stack with Docker Compose)
- Configuration Guide (coming soon)
- Architecture Overview (coming soon)
- Contributing (coming soon)
This project is licensed under the MIT License. See LICENSE for details.
This project is under active development. It is not stable, not recommended for production, and APIs/configuration may change at any time. Feedback and contributions are welcome, but please expect rapid iteration and breaking changes.
This repository uses two main GitHub Actions workflows:
- Runs on every pull request and push to the
mainbranch. - Checks out code, sets up Go (1.22+), runs linters (
go vet,golangci-lint), builds the code, runs all unit tests, and uploads build outputs as artifacts. - Caches Go dependencies for faster builds.
- Runs on every new tag push matching
*.*.*. - Checks out code, builds release binaries, creates a new GitHub Release, and uploads the built binary as a downloadable release asset.
- If a Dockerfile exists, builds and pushes a Docker image to the registry (requires secrets for registry authentication).
See .github/workflows/ci.yml and .github/workflows/release.yml for details.