From 84374f083d4926ab12c0d939a695b9fa546696d4 Mon Sep 17 00:00:00 2001 From: tjp Date: Tue, 14 Nov 2023 19:06:49 -0700 Subject: document the nex protocol support in READMEs --- README.gmi | 28 +++++++++++++++++----------- README.md | 28 +++++++++++++++++----------- 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/README.gmi b/README.gmi index 18d9e63..7e6a7e1 100644 --- a/README.gmi +++ b/README.gmi @@ -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 ", and "cert ". 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 @@ -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 ". => 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 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 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 @@ -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 diff --git a/README.md b/README.md index f65ae78..739d927 100644 --- a/README.md +++ b/README.md @@ -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 ", and "cert ". 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 @@ -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 ". => ["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 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 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 @@ -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 -- cgit v1.2.3