diff options
| author | tjp <tjp@ctrl-c.club> | 2023-11-14 19:06:49 -0700 |
|---|---|---|
| committer | tjp <tjp@ctrl-c.club> | 2023-11-14 19:06:49 -0700 |
| commit | 84374f083d4926ab12c0d939a695b9fa546696d4 (patch) | |
| tree | e57c5e96e0fe552a79bd84cedd0a460cfcd23c9b | |
| parent | 2cdc569840f36dad139132c37de1b62e21a971b7 (diff) | |
document the nex protocol support in READMEs
| -rw-r--r-- | README.gmi | 28 | ||||
| -rw-r--r-- | README.md | 28 |
2 files changed, 34 insertions, 22 deletions
@@ -149,6 +149,12 @@ Spartan's default port is 300. It also supports virtualhosting. +### nex server + +Nex's default port is 1900. + +Nex doesn't support virtualhosting, and in fact "host" directives have no effect as the protocol doesn't allow the request to specify the host it's targeting. + ## Directives Directives really come in two flavors: global directives and server directives. In either case, a directive is always contained on a single line, which begins (after any leading whitespace) with the type of the directive. What follows the directive type depends on that type. @@ -200,7 +206,7 @@ In gemini and spartan servers, host directives control virtual hosting behavior. "servertls" provides servers with the paths to their TLS server credentials. It is followed by two clauses: "key <path to key file>", and "cert <path to cert file>". Both clauses are required (if a single file contains both then use that path for both clauses). -Gemini servers must always host with TLS and so require a "servertls" directive. In gopher and finger, the presence of a "servertls" directive will cause them to host their content tls-encrypted. It is not allowed in spartan servers. +Gemini servers must always host with TLS and so require a "servertls" directive. In gopher, finger, and nex, the presence of a "servertls" directive will cause them to host their content tls-encrypted. It is not allowed in spartan servers. ### [server] static @@ -255,7 +261,7 @@ gemini { } ``` -"git" is not supported in finger or spartan servers, but otherwise it builds appropriate views according to the protocol of the server it is under (gemtext on gemini, gopher menu on gopher). +"git" is not supported in finger or nex servers, but otherwise it builds appropriate views according to the protocol of the server it is under (gemtext on gemini and spartan, gopher menu on gopher). The only supported modifier is "templates" - find more details on that in the section on "Git Viewing Templates". @@ -267,7 +273,7 @@ The routing directives "static", "cgi", and "git" support modifiers in the "with "dirdefault" is followed by a file name, and it customizes the behavior of requests for directory paths. If the path exists and "dirdefault" is given, it will look for the provided file name within the requested directory and serve that *as the directory itself*. Think "index.html" in web servers. -Allowed contexts: static directive (neither cgi nor git), gemini, spartan, and gopher servers (no finger). +Allowed contexts: static directive (neither cgi nor git), gemini, spartan, gopher, or nex servers (no finger). ### dirlist @@ -275,7 +281,7 @@ Allowed contexts: static directive (neither cgi nor git), gemini, spartan, and g If both "dirdefault" and "dirlist" are in use then "dirdefault" will take precedence and the listing will only be built if the dirdefault filename doesn't exist. -Allowed contexts: static directive (neither cgi nor git), gemini, spartan, and gopher servers (no finger). +Allowed contexts: static directive (neither cgi nor git), gemini, spartan, gopher, or nex servers (no finger). ### exec @@ -283,7 +289,7 @@ Allowed contexts: static directive (neither cgi nor git), gemini, spartan, and g There is more detail in the section "Running CGIs" below. -Allowed contexts: static directive (neither cgi nor git), gemini/gopher/spartan/finger servers. +Allowed contexts: static directive (neither cgi nor git), gemini/gopher/spartan/finger/nex servers. ### cmd <file path> @@ -296,13 +302,13 @@ Importantly, in all other ways it will still run as the located file: So it can, for instance, be a good opportunity for a system administrator to impose boundaries on user CGIs in a shared hosting environment. The "cmd" script can set a nice level, increment a semaphore potentially waiting for a slot, set system resource limitations, chroot, and finally "exec ./$(basename $SCRIPT_NAME)". -Allowed contexts: "static...with exec", cgi (no git), gemini/gopher/spartan/finger servers. +Allowed contexts: "static...with exec" or cgi (no git), gemini/gopher/spartan/finger/nex servers. ### extendedgophermap "extendedgophermap" enables lots of additional flexibility in writing the gopher menu format. The ideas are mostly borrowed from gophernicus, and sr-71's implementation is documented in more detail below in "Extended Gophermap Parsing". -Allowed contexts: static, cgi directives (no git), gopher servers (no gemini, spartan, or finger). +Allowed contexts: static, cgi directives (no git), gopher servers (no gemini, spartan, nex, or finger). ### autoatom @@ -310,19 +316,19 @@ The "autoatom" modifier customizes routing to recognize "<any other valid path>. => gemini://geminiprotocol.net/docs/companion/subscription.gmi "Subscribing to Gemini pages" gemini companion specification -Allowed contexts: static, cgi directives (no git), gemini and spartan servers (no gopher or finger). +Allowed contexts: static, cgi directives (no git), gemini and spartan servers (no gopher, nex, or finger). ### auth <auth name> The "auth" modifier takes the name of an auth (defined in a global "auth" directive) and sets it as a requirement to access the modified route. All the supported auth mechanisms are based on client TLS certificates, so they only work in servers with a "servertls" directive. -Allowed contexts: static, cgi, git directives, gemini, gopher, and finger servers (no spartan, and gopher or finger only with "servertls"). +Allowed contexts: static, cgi, git directives, and gemini, gopher, finger, and nex servers (no spartan, and gopher/finger/nex only with "servertls"). ### titan <auth name> The "titan" modifier takes an auth name (defined in a global "auth" directive) and enables the titan file upload protocol in a static route. Titan requests specifically will have to pass the named auth mechanism. -Allowed contexts: static (neither cgi nor git), gemini servers (no gopher, spartan, or finger). +Allowed contexts: static (neither cgi nor git), gemini servers (no gopher, spartan, nex, or finger). ### templates <dir path> @@ -330,7 +336,7 @@ Allowed contexts: static (neither cgi nor git), gemini servers (no gopher, spart The supported template names and their execution contexts are documented below in the section on "Git Viewing Templates". -Allowed contexts: git (neither static nor cgi), gemini or gopher servers (no spartan or finger). +Allowed contexts: git (neither static nor cgi), gemini or gopher servers (no spartan, nex, or finger). # Git Viewing Templates @@ -151,6 +151,12 @@ Spartan's default port is 300. It also supports virtualhosting. +### nex server + +Nex's default port is 1900. + +Nex doesn't support virtualhosting, and in fact "host" directives have no effect as the protocol doesn't allow the request to specify the host it's targeting. + ## Directives Directives really come in two flavors: global directives and server directives. In either case, a directive is always contained on a single line, which begins (after any leading whitespace) with the type of the directive. What follows the directive type depends on that type. @@ -204,7 +210,7 @@ In gemini and spartan servers, host directives control virtual hosting behavior. "servertls" provides servers with the paths to their TLS server credentials. It is followed by two clauses: "key <path to key file>", and "cert <path to cert file>". Both clauses are required (if a single file contains both then use that path for both clauses). -Gemini servers must always host with TLS and so require a "servertls" directive. In gopher and finger, the presence of a "servertls" directive will cause them to host their content tls-encrypted. It is not allowed in spartan servers. +Gemini servers must always host with TLS and so require a "servertls" directive. In gopher, finger, and nex, the presence of a "servertls" directive will cause them to host their content tls-encrypted. It is not allowed in spartan servers. ### [server] static @@ -260,7 +266,7 @@ gemini { } ``` -"git" is not supported in finger or spartan servers, but otherwise it builds appropriate views according to the protocol of the server it is under (gemtext on gemini, gopher menu on gopher). +"git" is not supported in finger or nex servers, but otherwise it builds appropriate views according to the protocol of the server it is under (gemtext on gemini and spartan, gopher menu on gopher). The only supported modifier is "templates" - find more details on that in the section on "Git Viewing Templates". @@ -272,7 +278,7 @@ The routing directives "static", "cgi", and "git" support modifiers in the "with "dirdefault" is followed by a file name, and it customizes the behavior of requests for directory paths. If the path exists and "dirdefault" is given, it will look for the provided file name within the requested directory and serve that *as the directory itself*. Think "index.html" in web servers. -Allowed contexts: static directive (neither cgi nor git), gemini, spartan, and gopher servers (no finger). +Allowed contexts: static directive (neither cgi nor git), gemini, spartan, gopher, or nex servers (no finger). ### dirlist @@ -280,7 +286,7 @@ Allowed contexts: static directive (neither cgi nor git), gemini, spartan, and g If both "dirdefault" and "dirlist" are in use then "dirdefault" will take precedence and the listing will only be built if the dirdefault filename doesn't exist. -Allowed contexts: static directive (neither cgi nor git), gemini, spartan, and gopher servers (no finger). +Allowed contexts: static directive (neither cgi nor git), gemini, spartan, gopher, or nex servers (no finger). ### exec @@ -288,7 +294,7 @@ Allowed contexts: static directive (neither cgi nor git), gemini, spartan, and g There is more detail in the section "Running CGIs" below. -Allowed contexts: static directive (neither cgi nor git), gemini/gopher/spartan/finger servers. +Allowed contexts: static directive (neither cgi nor git), gemini/gopher/spartan/finger/nex servers. ### cmd <file path> @@ -302,13 +308,13 @@ Importantly, in all other ways it will still run as the located file: So it can, for instance, be a good opportunity for a system administrator to impose boundaries on user CGIs in a shared hosting environment. The "cmd" script can set a nice level, increment a semaphore potentially waiting for a slot, set system resource limitations, chroot, and finally "exec ./$(basename $SCRIPT_NAME)". -Allowed contexts: "static...with exec", cgi (no git), gemini/gopher/spartan/finger servers. +Allowed contexts: "static...with exec" or cgi (no git), gemini/gopher/spartan/finger/nex servers. ### extendedgophermap "extendedgophermap" enables lots of additional flexibility in writing the gopher menu format. The ideas are mostly borrowed from gophernicus, and sr-71's implementation is documented in more detail below in "Extended Gophermap Parsing". -Allowed contexts: static, cgi directives (no git), gopher servers (no gemini, spartan, or finger). +Allowed contexts: static, cgi directives (no git), gopher servers (no gemini, spartan, nex, or finger). ### autoatom @@ -316,19 +322,19 @@ The "autoatom" modifier customizes routing to recognize "<any other valid path>. => ["Subscribing to Gemini pages" gemini companion specification](gemini://geminiprotocol.net/docs/companion/subscription.gmi) -Allowed contexts: static, cgi directives (no git), gemini and spartan servers (no gopher or finger). +Allowed contexts: static, cgi directives (no git), gemini and spartan servers (no gopher, nex, or finger). ### auth <auth name> The "auth" modifier takes the name of an auth (defined in a global "auth" directive) and sets it as a requirement to access the modified route. All the supported auth mechanisms are based on client TLS certificates, so they only work in servers with a "servertls" directive. -Allowed contexts: static, cgi, git directives, gemini, gopher, and finger servers (no spartan, and gopher or finger only with "servertls"). +Allowed contexts: static, cgi, git directives, and gemini, gopher, finger, and nex servers (no spartan, and gopher/finger/nex only with "servertls"). ### titan <auth name> The "titan" modifier takes an auth name (defined in a global "auth" directive) and enables the titan file upload protocol in a static route. Titan requests specifically will have to pass the named auth mechanism. -Allowed contexts: static (neither cgi nor git), gemini servers (no gopher, spartan, or finger). +Allowed contexts: static (neither cgi nor git), gemini servers (no gopher, spartan, nex, or finger). ### templates <dir path> @@ -336,7 +342,7 @@ Allowed contexts: static (neither cgi nor git), gemini servers (no gopher, spart The supported template names and their execution contexts are documented below in the section on "Git Viewing Templates". -Allowed contexts: git (neither static nor cgi), gemini or gopher servers (no spartan or finger). +Allowed contexts: git (neither static nor cgi), gemini or gopher servers (no spartan, nex, or finger). # Git Viewing Templates |
