summaryrefslogtreecommitdiff
path: root/share/man/just-serve-config.5.md
diff options
context:
space:
mode:
Diffstat (limited to 'share/man/just-serve-config.5.md')
-rw-r--r--share/man/just-serve-config.5.md88
1 files changed, 53 insertions, 35 deletions
diff --git a/share/man/just-serve-config.5.md b/share/man/just-serve-config.5.md
index 6a961842..7274d661 100644
--- a/share/man/just-serve-config.5.md
+++ b/share/man/just-serve-config.5.md
@@ -14,24 +14,32 @@ JSON object is equivalent. We assume, that in JSON objects, each key
occurs at most once; it is implementation defined how repetitions of the
same key are treated.
+Location objects
+----------------
+
+The general syntax and semantics of a location object are described in
+**`just-mrrc`**(5). Here we use a restricted form where the value for key
+*`"root"`* can only be either *`"home"`* or *`"system"`*. This is because
+`just serve` is not aware of the concept of workspaces.
+
The just-serve configuration format
-----------------------------------
The configuration file is given by a JSON object.
- - The value for the key *`"local build root"`* is a string specifying the path
- to use as the root for local CAS, cache, and build directories. The path will
- be created if it does not exist already.
+ - The value for the key *`"local build root"`* is a single location object,
+ specifying the path to use as the root for local CAS, cache, and build
+ directories. The path will be created if it does not exist already.
- - The value for the key *`"repositories"`* is a list of strings specifying
- paths to Git repositories for **`just`** **`serve`** to use as additional
- object lookup locations. The paths are to be used in the order given and
- only if requested objects are not found in the local build root.
+ - The value for the key *`"repositories"`* is a list of location objects,
+ specifying paths to Git repositories for **`just`** **`serve`** to use as
+ additional object lookup locations. The paths are to be used in the order
+ given and only if requested objects are not found in the local build root.
- The value for the key *`"logging"`* is a JSON object specifying logging
options.
- For subkey *`"files"`* the value is a list of strings specifying one or more
- local log files to use.
+ For subkey *`"files"`* the value is a list of location objects, specifying
+ one or more local log files to use.
For subkey *`"limit"`* the value is an integer setting the default for
the log limit.
For subkey *`"restrict stderr limit"`* the value is an integer setting a
@@ -44,12 +52,12 @@ The configuration file is given by a JSON object.
- The value for the key *`"authentication"`* is a JSON object specifying
client-side authentication options for **`just`** **`serve`** when
communicating with the remote execution endpoint.
- For subkey *`"ca cert"`* the value is a string specifying the path to a TLS
- CA certificate.
- For subkey *`"client cert"`* the value is a string specifying the path to a
- TLS client certificate.
- For subkey *`"client key"`* the value is a string specifying the path to a
- TLS client key.
+ For subkey *`"ca cert"`* the value is a single location object, specifying
+ the path to a TLS CA certificate.
+ For subkey *`"client cert"`* the value is a single location object,
+ specifying the path to a TLS client certificate.
+ For subkey *`"client key"`* the value is a single location object,
+ specifying the path to a TLS client key.
- The value for the key *`"remote service"`* is a JSON object specifying the
server arguments for running **`just`** **`serve`** as a service.
@@ -57,15 +65,17 @@ The configuration file is given by a JSON object.
If unset, the loopback device is used.
For subkey *`"port"`* the value specifies the port to which the service is to
listen. If unset, the service will choose to the first available one.
- For subkey *`"pid file"`* the value specifies a file to which the pid should
- be stored in plain text. If the file exists, it will be overwritten.
- For subkey *`"info file"`* the value specifies a file to which the used port,
- interface, and pid should be stored in JSON format. If the file exists, it
- will be overwritten.
- For subkey *`"server cert"`* the value is a string specifying the path to a
- TLS server certificate.
- For subkey *`"server key"`* the value is a string specifying the path to a
- TLS server key.
+ For subkey *`"pid file"`* the value is a single location object, specifying
+ the path to a file to which the pid should be stored in plain text. If the
+ file exists, it will be overwritten.
+ For subkey *`"info file"`* the value specifies a single location object,
+ specifying the path to a file file to which the used port, interface, and
+ pid should be stored in JSON format. If the file exists, it will be
+ overwritten.
+ For subkey *`"server cert"`* the value is a single location object,
+ specifying the path to a TLS server certificate.
+ For subkey *`"server key"`* the value is a single location object,
+ specifying the path to a TLS server key.
- The value for the key *`"execution endpoint"`* is a JSON object specifying
the arguments of a remote execution endpoint to be used by **`just`**
@@ -120,25 +130,33 @@ EXAMPLE
An example serve configuration file could look as follows.
```jsonc
-{ "local build root": "/var/just-serve/root"
+{ "local build root": {"root": "system", "path": "var/just-serve/root"}
, "authentication":
- { "ca cert": "/etc/just-serve/certs/ca.crt"
- , "client cert": "/etc/just-serve/certs/client.crt"
- , "client key": "/etc/just-serve/certs/client.key"
+ { "ca cert":
+ {"root": "system", "path": "etc/just-serve/certs/ca.crt"}
+ , "client cert":
+ {"root": "system", "path": "etc/just-serve/certs/client.crt"}
+ , "client key":
+ {"root": "system", "path": "etc/just-serve/certs/client.key"}
}
, "remote service":
{ "interface": "192.0.2.1"
, "port": 9999
- , "pid file": "/var/run/just-serve/server.pid"
- , "server cert": "/etc/just-serve/certs/server.crt"
- , "server key": "/etc/just-serve/certs/server.key"
+ , "pid file":
+ {"root": "system", "path": "var/run/just-serve/server.pid"}
+ , "server cert":
+ {"root": "system", "path": "etc/just-serve/certs/server.crt"}
+ , "server key":
+ {"root": "system", "path": "etc/just-serve/certs/server.key"}
}
, "execution endpoint": {"address": "198.51.100.1:8989"}
, "repositories":
- [ "/var/just-serve/repos/third-party-distfiles"
- , "/var/just-serve/repos/project-foo"
- , "/var/just-serve/repos/project-bar"
+ [ {"root": "system", "path": "var/just-serve/repos/third-party-distfiles"}
+ , {"root": "system", "path": "var/just-serve/repos/project-foo"}
+ , {"root": "system", "path": "var/just-serve/repos/project-bar"}
]
+, "logging":
+ {"files": [{"root": "home", "path": ".log/just-serve/latest"}]}
, "jobs": 8
, "build": {"build jobs": 128}
, "max-attempts": 10
@@ -150,4 +168,4 @@ An example serve configuration file could look as follows.
See also
========
-**`just`**(1)
+**`just`**(1), **`just-mrrc`**(5)