The "http" command:
Handle a single HTTP request appearing on stdin. The resulting webpage is delivered on stdout. This method is used to launch an HTTP request handler from inetd, for example. The REPOSITORY argument is the name of the repository.
If REPOSITORY is a directory that contains one or more repositories, either directly in REPOSITORY itself or in subdirectories, and with names of the form "*.fossil" then a prefix of the URL pathname selects from among the various repositories. If the pathname does not select a valid repository and the --notfound option is available, then the server redirects (HTTP code 302) to the URL of --notfound. When REPOSITORY is a directory, the pathname must contain only alphanumerics, "_", "/", "-" and "." and no "-" may occur after a "/" and every "." must be surrounded on both sides by alphanumerics or else a 404 error is returned. Static content files in the directory are returned if they match comma-separate GLOB pattern specified by --files and do not match "*.fossil*" and have a well-known suffix.
Options:
- --acme
- Deliver files from the ".well-known" subdirectory
- --baseurl URL
- Base URL (useful with reverse proxies)
- --cert FILE
- Use TLS (HTTPS) encryption with the certificate (the fullchain.pem) taken from FILE.
- --chroot DIR
- Use directory for chroot instead of repository path.
- --ckout-alias N
- Treat URIs of the form /doc/N/... as if they were /doc/ckout/...
- --extroot DIR
- Document root for the /ext extension mechanism
- --files GLOB
- Comma-separate glob patterns for static file to serve
- --host NAME
- DNS Hostname of the server
- --https
- The HTTP request originated from https but has already been decoded by a reverse proxy. Hence, URLs created by Fossil should use "https:" rather than "http:".
- --in FILE
- Take input from FILE instead of standard input
- --ipaddr ADDR
- Assume the request comes from the given IP address
- --jsmode MODE
- Determine how JavaScript is delivered with pages. Mode can be one of:
Depending on the needs of any given page, inline and bundled modes might result in a single amalgamated script or several, but both approaches result in fewer HTTP requests than the separate mode.
- inline
- All JavaScript is inserted inline at one or more points in the HTML file.
- separate
- Separate HTTP requests are made for each JavaScript file.
- bundled
- Groups JavaScript files into one or more bundled requests which concatenate scripts together.
- --localauth
- Connections from localhost are given "setup" privileges without having to log in
- --mainmenu FILE
- Override the mainmenu config setting with the contents of the given file
- --nocompress
- Do not compress HTTP replies
- --nodelay
- Omit backoffice processing if it would delay process exit
- --nojail
- Drop root privilege but do not enter the chroot jail
- --nossl
- Do not do http: to https: redirects, regardless of the redirect-to-https setting.
- --notfound URL
- Use URL as the "HTTP 404, object not found" page
- --out FILE
- Write the HTTP reply to FILE instead of to standard output
- --pkey FILE
- Read the private key used for TLS from FILE
- --repolist
- If REPOSITORY is directory, URL "/" lists all repos
- --scgi
- Interpret input as SCGI rather than HTTP
- --skin LABEL
- Use override skin LABEL. Use an empty string ("") to force use of the current local skin config.
- --th-trace
- Trace TH1 execution (for debugging purposes)
- --usepidkey
- Use saved encryption key from parent process. This is only necessary when using SEE on Windows or Linux.