trevorcook.dev  Help: server

The "server" command:

Usage: fossil server ?OPTIONS? ?REPOSITORY?
or: fossil ui ?OPTIONS? ?REPOSITORY?

Open a socket and begin listening and responding to HTTP requests on TCP port 8080, or on any other TCP port defined by the -P or --port option. The optional REPOSITORY argument is the name of the Fossil repository to be served. The REPOSITORY argument may be omitted if the working directory is within an open checkout, in which case the repository associated with that checkout is used.

The "ui" command automatically starts a web browser after initializing the web server. The "ui" command also binds to 127.0.0.1 and so will only process HTTP traffic from the local machine.

If REPOSITORY is a directory name which is the root of a checkout, then use the repository associated with that checkout. This only works for the "fossil ui" command, not the "fossil server" command.

If REPOSITORY begins with a "HOST:" or "USER@HOST:" prefix, then the command is run on the remote host specified and the results are tunneled back to the local machine via SSH. This feature only works for the "fossil ui" command, not the "fossil server" command.

REPOSITORY may also be a directory (aka folder) that contains one or more repositories with names ending in ".fossil". In this case, a prefix of the URL pathname is used to search the directory for an appropriate repository. To thwart mischief, the pathname in the URL must contain only alphanumerics, "_", "/", "-", and ".", and no "-" may occur after "/", and every "." must be surrounded on both sides by alphanumerics. Any pathname that does not satisfy these constraints results in a 404 error. Files in REPOSITORY that match the comma-separated list of glob patterns given by --files and that have known suffixes such as ".txt" or ".html" or ".jpeg" and do not match the pattern "*.fossil*" will be served as static content. With the "ui" command, the REPOSITORY can only be a directory if the --notfound option is also present.

For the special case REPOSITORY name of "/", the global configuration database is consulted for a list of all known repositories. The --repolist option is implied by this special case. See also the "fossil all ui" command.

By default, the "ui" command provides full administrative access without having to log in. This can be disabled by turning off the "localauth" setting. Automatic login for the "server" command is available if the --localauth option is present and the "localauth" setting is off and the connection is from localhost. The "ui" command also enables --repolist by default.

Options:

--baseurl URL
Use URL as the base (useful for reverse proxies)
--ckout-alias NAME
Treat URIs of the form /doc/NAME/... as if they were /doc/ckout/...
--create
Create a new REPOSITORY if it does not already exist
--extroot DIR
Document root for the /ext extension mechanism
--files GLOBLIST
Comma-separated list of glob patterns for static files
--fossilcmd PATH
Full pathname of the "fossil" executable on the remote system when REPOSITORY is remote. Default: "fossil"
--localauth
enable automatic login for requests from localhost
--localhost
listen on 127.0.0.1 only (always true for "ui")
--https
Indicates that the input is coming through a reverse proxy that has already translated HTTPS into HTTP.
--jsmode MODE
Determine how JavaScript is delivered with pages. Mode can be one of:
inline
All JavaScript is inserted inline at the end of the HTML file.
separate
Separate HTTP requests are made for each JavaScript file.
bundled
One single separate HTTP fetches all JavaScript concatenated together.
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.
--max-latency N
Do not let any single HTTP request run for more than N seconds (only works on unix)
--nobrowser
Do not automatically launch a web-browser for the "fossil ui" command.
--nocompress
Do not compress HTTP replies
--nojail
Drop root privileges but do not enter the chroot jail
--nossl
signal that no SSL connections are available (Always set by default for the "ui" command)
--notfound URL
Redirect
--page PAGE
Start "ui" on PAGE. ex: --page "timeline?y=ci"
-P|--port TCPPORT
listen to request on port TCPPORT
--th-trace
trace TH1 execution (for debugging purposes)
--repolist
If REPOSITORY is dir, URL "/" lists repos.
--scgi
Accept SCGI rather than HTTP
--skin LABEL
Use override skin LABEL
--mainmenu FILE
Override the mainmenu config setting with the contents of the given file.
--usepidkey
Use saved encryption key from parent process. This is only necessary when using SEE on Windows.

See also: cgi, http, winsrv