diff options
Diffstat (limited to 'doc/forge.skb')
| -rw-r--r-- | doc/forge.skb | 70 |
1 files changed, 61 insertions, 9 deletions
diff --git a/doc/forge.skb b/doc/forge.skb index 9063b80..607ef39 100644 --- a/doc/forge.skb +++ b/doc/forge.skb @@ -238,12 +238,14 @@ web. Our cgit service features] (itemize (item [clonable URLs via the smart HTTP protocol through ,(command [git-http-backend])]) - (item [syntax highlighting for a wide variety of -programming languages using ,(ref :url "https://pygments.org/" :text -"Pygments")]) + (item [syntax highlighting for a wide variety of programming +languages using ,(ref :url "https://github.com/alecthomas/chroma" :text +"Chroma")]) (item [rendering markdown, org mode, reStructuredText, man page, HTML or plain text README files in the ,(emph [About]) page]) - (item [hiding full email addresses on cgit web pages])) + (item [hiding full email addresses on cgit web pages]) + (item [,(ref :url "https://anubis.techaro.lol/" :text "Anubis") +protection for expensive endpoints])) [Note that this service is different from the cgit service of the same name in Guix upstream.]) (description @@ -308,7 +310,9 @@ include in the generated ,(file [cgitrc]) configuration file]) (record-field "repository-directory" [Directory containing git repositories to serve]) (record-field "site-name" - [Title on klaus web pages]))))) + [Title on klaus web pages]) + (record-field "gunicorn-workers" + [Number of gunicorn worker processes]))))) (section :title [tissue service] :ident "section-tissue-service" (p [tissue is an issue tracker built on plain text files and @@ -392,10 +396,45 @@ be a ,(record-ref "<forge-host-socket>"), ,(record-ref "<forge-ip-socket>"), or [/.well-known/acme-challenge/]) in response to ACME HTTP-01 challenges]) (record-field "server-blocks" - [List of ,(ref :url + [List of ,(ref :ident "<forge-nginx-server-configuration>" :text +"<forge-nginx-server-configuration>") or ,(ref :url "https://guix.gnu.org/manual/en/html_node/Web-Services.html#index-nginx_002dserver_002dconfiguration" -:text "<nginx-server-configuration>") objects describing server blocks -to add to the nginx configuration])))) +:text "<nginx-server-configuration>") objects describing server blocks to add to +the nginx configuration])) + (record-documentation "guix/forge/nginx.scm" '<forge-nginx-server-configuration> + (record-field "server-name" + [List of server names this server represents. ,(code ['default]) +represents the default server for connections matching no other server.]) + (record-field "root" + [Root of the website nginx will serve]) + (record-field "locations" + [List of ,(ref :url +"https://guix.gnu.org/manual/devel/en/html_node/Web-Services.html#index-nginx_002dlocation_002dconfiguration" +:text (code [nginx-location-configuration])) or ,(ref :url +"https://guix.gnu.org/manual/devel/en/html_node/Web-Services.html#index-nginx_002dnamed_002dlocation_002dconfiguration" +:text (code [nginx-named-location-configuration])) records to use within this +server block.]) + (record-field "index" + [List of index files to look for when clients ask for a directory. If it +cannot be found, nginx will send the list of files in the directory.]) + (record-field "try-files" + [List of files whose existence is checked in the specified order. +nginx will use the first file it finds to process the request.]) + (record-field "anubis?" + [If ,(code [#t]), ,(ref :url +"https://anubis.techaro.lol/docs/admin/configuration/subrequest-auth/" :text +"Anubis subrequest authentication") locations are added to the server +configuration. These are namely a ,(samp "/.within.website/") location and a +,(samp "@redirectToAnubis") location. Locations to be protected by Anubis should +specify ,(code "auth_request /.within.website/x/cmd/anubis/api/check; error_page +401 = @redirectToAnubis;"). To use this feature, ,(code [nginx-service-type]) +must be configured with an nginx compiled with ,(samp +[--with-http_auth_request_module]). The ,(code [nginx-with-auth-request]) +package is provided as a convenience for this purpose.]) + (record-field "raw-content" + [List of strings or file-like objects to be appended to the server +block. Each item is prefixed with indentation and suffixed with a new line. +Nested lists are flattened.])))) (section :title [ACME service] :ident "section-acme-service" (p [,(abbr :short "ACME" :long "Automatic Certificate Management @@ -567,7 +606,20 @@ environment]) (record-field "mappings" [List of ,(code [<file-system-mapping>]) objects describing additional directories that should be shared with the container -gunicorn is run in])))))) +gunicorn is run in]))))) + (section :title [Anubis AI firewall service] + :ident "section-anubis-ai-firewall-service" + (p [Anubis is a web AI firewall utility that uses a combination of +heuristics and challenges to identify and block bots before they take your +website down. Anubis is as lightweight as possible and is designed to help +protect the small internet from the endless storm of requests that flood in from +AI companies. This service runs Anubis in ,(ref :url +"https://anubis.techaro.lol/docs/admin/configuration/subrequest-auth/" :text +"subrequest authentication mode").]) + (description + (record-documentation "guix/forge/anubis.scm" '<anubis-configuration> + (record-field "package" + [,(code [anubis]) package to use]))))) (chapter :title [Reference] :ident "chapter-reference" (description |
