Thanks to visit codestin.com
Credit goes to github.com

Skip to content

praserx/goth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

goth: Lightweight Authorization Proxy

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.

Overview

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.

Features (Current)

  • 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

Getting Started

Prerequisites

  • Go 1.22+
  • Docker & Docker Compose
  • golangci-lint (for linting)

Quick Start

Clone the repository and use the provided Makefile:

git clone https://github.com/praserx/goth.git
cd goth
make build

Build & Test

  • Style Check: make style
  • Lint: make lint
  • Unit Tests: make test
  • Build Binary: make build (outputs to bin/)
  • End-to-End Test: make test-e2e (runs full stack with Docker Compose)

Documentation

License

This project is licensed under the MIT License. See LICENSE for details.

Project Status

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.

GitHub Actions Workflows

This repository uses two main GitHub Actions workflows:

CI Workflow

  • Runs on every pull request and push to the main branch.
  • 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.

Release Workflow

  • 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.

About

Lightweight authorization proxy project

Resources

License

Stars

Watchers

Forks

Packages

No packages published