Files
dshackle/docs/03-server-config.adoc
2021-07-19 23:15:31 -04:00

131 lines
2.4 KiB
Plaintext

== Server Configuration
By default, the Dshackle looks for config in the following locations:
1. Path specified by _optional_ `--configPath <...>` command line option
2. `/etc/dshackle/dshackle.yaml`
3. `./dshackle.yaml` (i.e. in the current working dir)
If none found the application exists with an error.
.Example dshackle.yaml configuration:
[source,yaml]
----
version: v1
port: 2449
tls:
enabled: true
server:
certificate: "server.crt"
key: "server.p8.key"
client:
require: true
ca: "ca.crt"
cluster:
include: "upstreams.yaml"
----
It configures following:
- server is listening with gRCP API on `0.0.0.0:2449`
- TLS is enabled
- server certificate is located at `server.crt` with the key for it at `server.p8.key`
- the server requires a client authentication by TLS client certificate signed by `ca.crt` certificate
- no JSON RPC is configured
- upstreams configuration is configured in the file `upstreams.yaml`
.Configuration
|===
| Name | Example | Description
a| `version`
|
| Version of the format of the config
a| `port`
a| `port: 12449`
| Port to bind gRPC server. `2449` by default
a| `tls`
|
| TLS configuration for gRPC.
See link:08-authentication.adoc[Authentication] for details
a| `proxy`
|
| Proxy configuration
a| `upstreams`
|
| Upstreams configuration
|===
=== Enabling JSON RPC proxy
.Example proxy:
[source,yaml]
----
version: v1
port: 2449
proxy:
host: 0.0.0.0
port: 8080
routes:
- id: eth
blockchain: ethereum
cluster:
include: "upstreams.yaml"
----
With that configuration Dshackle starts a JSON RPC proxy:
- JSON RPC server is listening on `0.0.0.0:8080`
- `http://0.0.0.0:8080/eth` provides access to Ethereum API routed to an available upstream
.Full configuration:
[source,yaml]
----
proxy:
port: 8080
tls:
enabled: true
server:
certificate: server.crt
key: server.p8.key
client:
require: true
ca: ca.crt
routes:
- id: eth
blockchain: ethereum
- id: etc
blockchain: ethereum_classic
----
.Proxy configuration
|===
| Name | Example | Description
a| `host`
a| `host: 0.0.0.0`
| Host to bind proxy server. `127.0.0.1` by default
a| `port`
a| `port: 8545`
| Port to bind proxy server. `8080` by default
a| `enabled`
a| `enabled: true`
| Enable/disable proxy server
a| `tls`
|
| TLS configuration for proxy.
See link:08-authentication.adoc[Authentication] for details
a| `routes`
|
| List of endpoints to proxy
|===