initial commit
This commit is contained in:
2
Dockerfile
Normal file
2
Dockerfile
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
FROM devopsfaith/krakend:2.5
|
||||||
|
COPY configuration.json /etc/krakend/krakend.json
|
||||||
212
krakend.json
Normal file
212
krakend.json
Normal file
@@ -0,0 +1,212 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://www.krakend.io/schema/v3.json",
|
||||||
|
"version": 3,
|
||||||
|
"name": "krakend - api gateway",
|
||||||
|
"extra_config": {
|
||||||
|
"security/cors": {
|
||||||
|
"allow_origins": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"expose_headers": [
|
||||||
|
"Content-Length"
|
||||||
|
],
|
||||||
|
"max_age": "12h",
|
||||||
|
"allow_methods": [
|
||||||
|
"GET",
|
||||||
|
"HEAD",
|
||||||
|
"POST",
|
||||||
|
"PUT",
|
||||||
|
"DELETE"
|
||||||
|
],
|
||||||
|
"allow_credentials": true,
|
||||||
|
"allow_headers": [
|
||||||
|
"Authorization"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"telemetry/logging": {
|
||||||
|
"level": "error",
|
||||||
|
"prefix": "[krakend]",
|
||||||
|
"syslog": false,
|
||||||
|
"stdout": true,
|
||||||
|
"format": "default",
|
||||||
|
"syslog_facility": "local3"
|
||||||
|
},
|
||||||
|
"telemetry/metrics": {
|
||||||
|
"collection_time": "60s",
|
||||||
|
"proxy_disabled": false,
|
||||||
|
"router_disabled": false,
|
||||||
|
"backend_disabled": false,
|
||||||
|
"endpoint_disabled": false,
|
||||||
|
"listen_address": ":8090"
|
||||||
|
},
|
||||||
|
"telemetry/opencensus": {
|
||||||
|
"sample_rate": 100,
|
||||||
|
"reporting_period": 1,
|
||||||
|
"exporters": {
|
||||||
|
"logger": {},
|
||||||
|
"prometheus": {
|
||||||
|
"port": 9091
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugin/http-server": {
|
||||||
|
"name": [
|
||||||
|
"static-filesystem"
|
||||||
|
],
|
||||||
|
"static-filesystem": {
|
||||||
|
"prefix": "/media/assets",
|
||||||
|
"path": "/var/www/static"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"timeout": "3000ms",
|
||||||
|
"cache_ttl": "300s",
|
||||||
|
"output_encoding": "json",
|
||||||
|
"endpoints": [
|
||||||
|
{
|
||||||
|
"endpoint": "/jokes/dadjoke",
|
||||||
|
"method": "GET",
|
||||||
|
"output_encoding": "json",
|
||||||
|
"backend": [
|
||||||
|
{
|
||||||
|
"url_pattern": "/api/jokes/dadjoke",
|
||||||
|
"encoding": "json",
|
||||||
|
"sd": "static",
|
||||||
|
"method": "GET",
|
||||||
|
"host": [
|
||||||
|
"http://durpapi-service.durpapi.traefik.mesh"
|
||||||
|
],
|
||||||
|
"disable_host_sanitize": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": "/jokes/dadjoke",
|
||||||
|
"method": "POST",
|
||||||
|
"output_encoding": "json",
|
||||||
|
"backend": [
|
||||||
|
{
|
||||||
|
"url_pattern": "/api/jokes/dadjoke",
|
||||||
|
"encoding": "json",
|
||||||
|
"sd": "static",
|
||||||
|
"method": "POST",
|
||||||
|
"host": [
|
||||||
|
"http://durpapi-service.durpapi.traefik.mesh"
|
||||||
|
],
|
||||||
|
"disable_host_sanitize": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"extra_config": {
|
||||||
|
"auth/validator": {
|
||||||
|
"alg": "RS256",
|
||||||
|
"issuer": "https://authentik.durp.info/application/o/api/",
|
||||||
|
"jwk_url": "https://authentik.durp.info/application/o/api/jwks/",
|
||||||
|
"roles_key_is_nested": false,
|
||||||
|
"roles_key": "groups",
|
||||||
|
"roles": [
|
||||||
|
"rw-jokes"
|
||||||
|
],
|
||||||
|
"cache": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": "/jokes/dadjoke",
|
||||||
|
"method": "DELETE",
|
||||||
|
"output_encoding": "json",
|
||||||
|
"backend": [
|
||||||
|
{
|
||||||
|
"url_pattern": "/api/jokes/dadjoke",
|
||||||
|
"encoding": "json",
|
||||||
|
"sd": "static",
|
||||||
|
"method": "DELETE",
|
||||||
|
"host": [
|
||||||
|
"http://durpapi-service.durpapi.traefik.mesh"
|
||||||
|
],
|
||||||
|
"disable_host_sanitize": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"extra_config": {
|
||||||
|
"auth/validator": {
|
||||||
|
"alg": "RS256",
|
||||||
|
"issuer": "https://authentik.durp.info/application/o/api/",
|
||||||
|
"jwk_url": "https://authentik.durp.info/application/o/api/jwks/",
|
||||||
|
"roles_key_is_nested": false,
|
||||||
|
"roles_key": "groups",
|
||||||
|
"roles": [
|
||||||
|
"rw-jokes"
|
||||||
|
],
|
||||||
|
"cache": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": "/openai/general",
|
||||||
|
"method": "GET",
|
||||||
|
"output_encoding": "json",
|
||||||
|
"timeout": "1m",
|
||||||
|
"backend": [
|
||||||
|
{
|
||||||
|
"url_pattern": "/api/openai/general",
|
||||||
|
"encoding": "json",
|
||||||
|
"sd": "static",
|
||||||
|
"method": "GET",
|
||||||
|
"host": [
|
||||||
|
"http://durpapi-service.durpapi.traefik.mesh"
|
||||||
|
],
|
||||||
|
"disable_host_sanitize": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"extra_config": {
|
||||||
|
"auth/validator": {
|
||||||
|
"alg": "RS256",
|
||||||
|
"issuer": "https://authentik.durp.info/application/o/api/",
|
||||||
|
"jwk_url": "https://authentik.durp.info/application/o/api/jwks/",
|
||||||
|
"roles_key_is_nested": false,
|
||||||
|
"roles_key": "groups",
|
||||||
|
"roles": [
|
||||||
|
"openai"
|
||||||
|
],
|
||||||
|
"cache": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": "/unraid/powerusage",
|
||||||
|
"method": "GET",
|
||||||
|
"output_encoding": "json",
|
||||||
|
"timeout": "1m",
|
||||||
|
"backend": [
|
||||||
|
{
|
||||||
|
"url_pattern": "/api/unraid/powerusage",
|
||||||
|
"encoding": "json",
|
||||||
|
"sd": "static",
|
||||||
|
"method": "GET",
|
||||||
|
"host": [
|
||||||
|
"http://durpapi-service.durpapi.traefik.mesh"
|
||||||
|
],
|
||||||
|
"disable_host_sanitize": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"extra_config": {
|
||||||
|
"auth/validator": {
|
||||||
|
"alg": "RS256",
|
||||||
|
"issuer": "https://authentik.durp.info/application/o/api/",
|
||||||
|
"jwk_url": "https://authentik.durp.info/application/o/api/jwks/",
|
||||||
|
"roles_key_is_nested": false,
|
||||||
|
"roles_key": "groups",
|
||||||
|
"roles": [
|
||||||
|
"unraid"
|
||||||
|
],
|
||||||
|
"cache": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
],
|
||||||
|
"plugin": {
|
||||||
|
"pattern": ".so",
|
||||||
|
"folder": "/opt/krakend/plugins/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user