Merge pull request #74 from jkaninda/docs

Docs
This commit is contained in:
2024-11-09 05:15:32 +01:00
committed by GitHub
7 changed files with 110 additions and 16 deletions

View File

@@ -1,11 +1,8 @@
# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go
name: Go
on:
push:
branches: [ "main","develop" ]
branches: [ "*" ]
pull_request:
branches: [ "main" ]

40
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,40 @@
# Contributing to Goma Gateway
Welcome to Goma Gateway! This document shall serve as a guide for you to follow in your journey to contributing to this project.
There are many ways to contribute to Goma Gateway:
- Reporting Bugs
- Resolving issues
- Sharing an idea and working on it
- Working on a feature with other contributors.
- And More…
To get started, take a look at the following sections.
## Issues
### Did you spot a problem in Goma Gateway?
Firstly you should check if such an issue was previously opened/closed for your problem on the repository. If it doesn't then you should create a new issue.
### Do you want to solve an issue?
If there is an issue you think you can solve, and want to solve, then you should create a new fork of this repository.
In that repository you should create a new branch for the issue you are working on and commit changes there.
When the issue is solved, and you want it to be integrated into the official repository, you may create a pull request for the same.
The description of the pull request should clearly describe both the issue and the solution along with other necessary information.
The developers will merge after making the necessary changes (if arises a need to do so).
### Do you want to share an idea?
Goma Gateway welcomes new ideas. If you have an idea you should first check if a similar or identical idea was presented previously or not, or check thoroughly if the idea is already present in Goma Gateway.
To share your idea you can open an issue.
There you can share your idea and if you want to work on it, you can follow the same steps as mentioned in previously.
### Do you want to contribute but don't know how?
Your first resource in this should be https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project
This file serves as your guide specifically for this project to help you get your contributions into the project.
If you still have some questions or need help, feel free to open a discussion on the same.
# Thank You 🙏

View File

@@ -112,10 +112,16 @@ services:
- ./config:/etc/goma/
```
## Supported Systems
## Requirement
- [x] Linux
- [x] MacOS
- [x] Windows
## Deployment
- Docker
- Kubernetes
## Contributing
@@ -126,6 +132,8 @@ The Goma Gateway project welcomes all contributors. We appreciate your help!
If you like or are using Goma Gateway, please give it a star. Thanks!
Please share.
## License

View File

@@ -9,7 +9,7 @@ services:
start_period: 20s
timeout: 10s
ports:
- "80:8080"
- "443:8443"
- "8080:8080"
- "8443:8443"
volumes:
- ./config:/etc/goma/
- ./:/etc/goma/

View File

@@ -4,20 +4,21 @@ metadata:
name: goma-config
data:
goma.yml: |
# Goma Gateway configurations
# Goma Gateway configurations
version: 0.1.7
gateway:
# Proxy write timeout
writeTimeout: 15
# Proxy read timeout
readTimeout: 15
# Proxy idle timeout
idleTimeout: 60
idleTimeout: 30
## SSL Certificate file
sslCertFile: '' #cert.pem
## SSL Private Key file
sslKeyFile: ''#key.pem
# Proxy rate limit, it's In-Memory IP based
rateLimiter: 0
rateLimit: 0
accessLog: "/dev/Stdout"
errorLog: "/dev/stderr"
## Enable, disable routes health check
@@ -28,6 +29,8 @@ data:
disableDisplayRouteOnStart: false
# disableKeepAlive allows enabling and disabling KeepALive server
disableKeepAlive: false
# Block common exploits | detect SQL injection, and simple XSS attempts
blockCommonExploits: false
# interceptErrors intercepts backend errors based on defined the status codes
interceptErrors:
- 405
@@ -47,7 +50,7 @@ data:
##### Define routes
routes:
# Example of a route | 1
- name: Public
- name: Public # Name is optional
# host Domain/host based request routing
host: "" # Host is optional
path: /public
@@ -55,6 +58,8 @@ data:
# e.g rewrite: /store to /
rewrite: /
destination: https://example.com
# Limit HTTP methods allowed for this route
methods: [POST, PUT, GET]
#DisableHeaderXForward Disable X-forwarded header.
# [X-Forwarded-Host, X-Forwarded-For, Host, Scheme ]
# It will not match the backend route, by default, it's disabled
@@ -84,6 +89,7 @@ data:
path: /protected
rewrite: /
destination: https://example.com
methods: []
healthCheck:
cors: {}
middlewares:

View File

@@ -6,7 +6,7 @@ gateway:
# Proxy read timeout
readTimeout: 15
# Proxy idle timeout
idleTimeout: 60
idleTimeout: 30
## SSL Certificate file
sslCertFile: '' #cert.pem
## SSL Private Key file
@@ -23,6 +23,7 @@ gateway:
disableDisplayRouteOnStart: false
# disableKeepAlive allows enabling and disabling KeepALive server
disableKeepAlive: false
# Block common exploits | detect SQL injection, and simple XSS attempts
blockCommonExploits: false
# interceptErrors intercepts backend errors based on defined the status codes
interceptErrors:
@@ -43,7 +44,7 @@ gateway:
##### Define routes
routes:
# Example of a route | 1
- name: Public
- name: Public # Name is optional
# host Domain/host based request routing
host: "" # Host is optional
path: /public
@@ -51,6 +52,7 @@ gateway:
# e.g rewrite: /store to /
rewrite: /
destination: https://example.com
# Limit HTTP methods allowed for this route
methods: [POST, PUT, GET]
#DisableHeaderXForward Disable X-forwarded header.
# [X-Forwarded-Host, X-Forwarded-For, Host, Scheme ]
@@ -81,6 +83,7 @@ gateway:
path: /protected
rewrite: /
destination: https://example.com
methods: []
healthCheck:
cors: {}
middlewares:
@@ -138,4 +141,44 @@ middlewares:
- /v2/swagger-ui/*
- /api-docs/*
- /internal/*
- /actuator/*
- /actuator/*
- name: oauth-google
type: oauth
paths:
- /protected
- /example-of-oauth
rule:
clientId: xxx
clientSecret: xxx
provider: google
endpoint:
userInfoUrl: ""
redirectUrl: http://localhost:8080/callback
redirectPath: ""
cookiePath: ""
scopes:
- https://www.googleapis.com/auth/userinfo.email
- https://www.googleapis.com/auth/userinfo.profile
state: randomStateString
jwtSecret: your-strong-jwt-secret | It's optional
- name: oauth-authentik
type: oauth
paths:
- /protected
- /example-of-oauth
rule:
clientId: xxx
clientSecret: xxx
provider: custom
endpoint:
authUrl: https://authentik.example.com/application/o/authorize/
tokenUrl: https://authentik.example.com/application/o/token/
userInfoUrl: https://authentik.example.com/application/o/userinfo/
redirectUrl: http://localhost:8080/callback
redirectPath: ""
cookiePath: ""
scopes:
- email
- openid
state: randomStateString
jwtSecret: your-strong-jwt-secret | It's optional

View File

@@ -5,7 +5,7 @@ gateway:
# Proxy read timeout
readTimeout: 15
# Proxy idle timeout
idleTimeout: 60
idleTimeout: 30
## SSL Certificate file
sslCertFile: '' #cert.pem
## SSL Private Key file