docs: update configuration deployment

This commit is contained in:
2024-11-09 04:52:05 +01:00
parent 8730fcd98e
commit ea1dbf26bd
5 changed files with 69 additions and 12 deletions

View File

@@ -112,10 +112,16 @@ services:
- ./config:/etc/goma/ - ./config:/etc/goma/
``` ```
## Supported Systems
## Requirement - [x] Linux
- [x] MacOS
- [x] Windows
## Deployment
- Docker - Docker
- Kubernetes
## Contributing ## 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! If you like or are using Goma Gateway, please give it a star. Thanks!
Please share.
## License ## License

View File

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

View File

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

View File

@@ -6,7 +6,7 @@ gateway:
# Proxy read timeout # Proxy read timeout
readTimeout: 15 readTimeout: 15
# Proxy idle timeout # Proxy idle timeout
idleTimeout: 60 idleTimeout: 30
## SSL Certificate file ## SSL Certificate file
sslCertFile: '' #cert.pem sslCertFile: '' #cert.pem
## SSL Private Key file ## SSL Private Key file
@@ -23,6 +23,7 @@ gateway:
disableDisplayRouteOnStart: false disableDisplayRouteOnStart: false
# disableKeepAlive allows enabling and disabling KeepALive server # disableKeepAlive allows enabling and disabling KeepALive server
disableKeepAlive: false disableKeepAlive: false
# Block common exploits | detect SQL injection, and simple XSS attempts
blockCommonExploits: false blockCommonExploits: false
# interceptErrors intercepts backend errors based on defined the status codes # interceptErrors intercepts backend errors based on defined the status codes
interceptErrors: interceptErrors:
@@ -43,7 +44,7 @@ gateway:
##### Define routes ##### Define routes
routes: routes:
# Example of a route | 1 # Example of a route | 1
- name: Public - name: Public # Name is optional
# host Domain/host based request routing # host Domain/host based request routing
host: "" # Host is optional host: "" # Host is optional
path: /public path: /public
@@ -51,6 +52,7 @@ gateway:
# e.g rewrite: /store to / # e.g rewrite: /store to /
rewrite: / rewrite: /
destination: https://example.com destination: https://example.com
# Limit HTTP methods allowed for this route
methods: [POST, PUT, GET] methods: [POST, PUT, GET]
#DisableHeaderXForward Disable X-forwarded header. #DisableHeaderXForward Disable X-forwarded header.
# [X-Forwarded-Host, X-Forwarded-For, Host, Scheme ] # [X-Forwarded-Host, X-Forwarded-For, Host, Scheme ]
@@ -81,6 +83,7 @@ gateway:
path: /protected path: /protected
rewrite: / rewrite: /
destination: https://example.com destination: https://example.com
methods: []
healthCheck: healthCheck:
cors: {} cors: {}
middlewares: middlewares:
@@ -138,4 +141,44 @@ middlewares:
- /v2/swagger-ui/* - /v2/swagger-ui/*
- /api-docs/* - /api-docs/*
- /internal/* - /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 # Proxy read timeout
readTimeout: 15 readTimeout: 15
# Proxy idle timeout # Proxy idle timeout
idleTimeout: 60 idleTimeout: 30
## SSL Certificate file ## SSL Certificate file
sslCertFile: '' #cert.pem sslCertFile: '' #cert.pem
## SSL Private Key file ## SSL Private Key file