Skip to content
Snippets Groups Projects
guix.texi 844 KiB
Newer Older
  • Learn to ignore specific revisions
  • 
    @itemize @bullet
    @item
    0: disable all auditing
    
    @item
    1: enable auditing, only if enabled on host
    
    @item
    2: enable auditing, and exit if disabled on host.
    
    @end itemize
    
    Defaults to @samp{1}.
    
    @end deftypevr
    
    @deftypevr {@code{libvirt-configuration} parameter} boolean audit-logging
    Send audit messages via libvirt logging infrastructure.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{libvirt-configuration} parameter} optional-string host-uuid
    Host UUID.  UUID must not have all digits be the same.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{libvirt-configuration} parameter} string host-uuid-source
    Source to read host UUID.
    
    @itemize @bullet
    @item
    @code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}
    
    @item
    @code{machine-id}: fetch the UUID from @code{/etc/machine-id}
    
    @end itemize
    
    If @code{dmidecode} does not provide a valid UUID a temporary UUID will
    be generated.
    
    Defaults to @samp{"smbios"}.
    
    @end deftypevr
    
    @deftypevr {@code{libvirt-configuration} parameter} integer keepalive-interval
    A keepalive message is sent to a client after @code{keepalive_interval}
    seconds of inactivity to check if the client is still responding.  If
    set to -1, libvirtd will never send keepalive requests; however clients
    can still send them and the daemon will send responses.
    
    Defaults to @samp{5}.
    
    @end deftypevr
    
    @deftypevr {@code{libvirt-configuration} parameter} integer keepalive-count
    Maximum number of keepalive messages that are allowed to be sent to the
    client without getting any response before the connection is considered
    broken.
    
    In other words, the connection is automatically closed approximately
    after @code{keepalive_interval * (keepalive_count + 1)} seconds since
    the last message received from the client.  When @code{keepalive-count}
    is set to 0, connections will be automatically closed after
    @code{keepalive-interval} seconds of inactivity without sending any
    keepalive messages.
    
    Defaults to @samp{5}.
    
    @end deftypevr
    
    @deftypevr {@code{libvirt-configuration} parameter} integer admin-keepalive-interval
    Same as above but for admin interface.
    
    Defaults to @samp{5}.
    
    @end deftypevr
    
    @deftypevr {@code{libvirt-configuration} parameter} integer admin-keepalive-count
    Same as above but for admin interface.
    
    Defaults to @samp{5}.
    
    @end deftypevr
    
    @deftypevr {@code{libvirt-configuration} parameter} integer ovs-timeout
    Timeout for Open vSwitch calls.
    
    The @code{ovs-vsctl} utility is used for the configuration and its
    timeout option is set by default to 5 seconds to avoid potential
    infinite waits blocking libvirt.
    
    Defaults to @samp{5}.
    
    @end deftypevr
    
    @c %end of autogenerated docs
    
    @subsubheading Virtlog daemon
    The virtlogd service is a server side daemon component of libvirt that is
    used to manage logs from virtual machine consoles.
    
    This daemon is not used directly by libvirt client applications, rather it
    is called on their behalf by @code{libvirtd}. By maintaining the logs in a
    standalone daemon, the main @code{libvirtd} daemon can be restarted without
    risk of losing logs. The @code{virtlogd} daemon has the ability to re-exec()
    itself upon receiving @code{SIGUSR1}, to allow live upgrades without downtime.
    
    @deffn {Scheme Variable} virtlog-service-type
    This is the type of the virtlog daemon.
    Its value must be a @code{virtlog-configuration}.
    
    @example
    (service virtlog-service-type
             (virtlog-configuration
              (max-clients 1000)))
    @end example
    @end deffn
    
    @deftypevr {@code{virtlog-configuration} parameter} integer log-level
    Logging level.  4 errors, 3 warnings, 2 information, 1 debug.
    
    Defaults to @samp{3}.
    
    @end deftypevr
    
    @deftypevr {@code{virtlog-configuration} parameter} string log-filters
    Logging filters.
    
    A filter allows to select a different logging level for a given category
    of logs The format for a filter is one of:
    
    @itemize @bullet
    @item
    x:name
    
    @item
    x:+name
    
    @end itemize
    
    where @code{name} is a string which is matched against the category
    given in the @code{VIR_LOG_INIT()} at the top of each libvirt source
    file, e.g., "remote", "qemu", or "util.json" (the name in the filter can
    be a substring of the full category name, in order to match multiple
    similar categories), the optional "+" prefix tells libvirt to log stack
    trace for each message matching name, and @code{x} is the minimal level
    where matching messages should be logged:
    
    @itemize @bullet
    @item
    1: DEBUG
    
    @item
    2: INFO
    
    @item
    3: WARNING
    
    @item
    4: ERROR
    
    @end itemize
    
    Multiple filters can be defined in a single filters statement, they just
    need to be separated by spaces.
    
    Defaults to @samp{"3:remote 4:event"}.
    
    @end deftypevr
    
    @deftypevr {@code{virtlog-configuration} parameter} string log-outputs
    Logging outputs.
    
    An output is one of the places to save logging information The format
    for an output can be:
    
    @table @code
    @item x:stderr
    output goes to stderr
    
    @item x:syslog:name
    use syslog for the output and use the given name as the ident
    
    @item x:file:file_path
    output to a file, with the given filepath
    
    @item x:journald
    output to journald logging system
    
    @end table
    
    In all case the x prefix is the minimal level, acting as a filter
    
    @itemize @bullet
    @item
    1: DEBUG
    
    @item
    2: INFO
    
    @item
    3: WARNING
    
    @item
    4: ERROR
    
    @end itemize
    
    Multiple outputs can be defined, they just need to be separated by
    spaces.
    
    Defaults to @samp{"3:stderr"}.
    
    @end deftypevr
    
    @deftypevr {@code{virtlog-configuration} parameter} integer max-clients
    Maximum number of concurrent client connections to allow over all
    sockets combined.
    
    Defaults to @samp{1024}.
    
    @end deftypevr
    
    @deftypevr {@code{virtlog-configuration} parameter} integer max-size
    Maximum file size before rolling over.
    
    Defaults to @samp{2MB}
    
    @end deftypevr
    
    @deftypevr {@code{virtlog-configuration} parameter} integer max-backups
    Maximum number of backup files to keep.
    
    Defaults to @samp{3}
    
    @end deftypevr
    
    
    @subsubheading Transparent Emulation with QEMU
    
    @cindex emulation
    @cindex @code{binfmt_misc}
    @code{qemu-binfmt-service-type} provides support for transparent
    emulation of program binaries built for different architectures---e.g.,
    it allows you to transparently execute an ARMv7 program on an x86_64
    machine.  It achieves this by combining the @uref{https://www.qemu.org,
    QEMU} emulator and the @code{binfmt_misc} feature of the kernel Linux.
    
    @defvr {Scheme Variable} qemu-binfmt-service-type
    This is the type of the QEMU/binfmt service for transparent emulation.
    Its value must be a @code{qemu-binfmt-configuration} object, which
    specifies the QEMU package to use as well as the architecture we want to
    emulated:
    
    @example
    (service qemu-binfmt-service-type
             (qemu-binfmt-configuration
               (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc"))))
    @end example
    
    In this example, we enable transparent emulation for the ARM and aarch64
    platforms.  Running @code{herd stop qemu-binfmt} turns it off, and
    running @code{herd start qemu-binfmt} turns it back on (@pxref{Invoking
    herd, the @command{herd} command,, shepherd, The GNU Shepherd Manual}).
    @end defvr
    
    @deftp {Data Type} qemu-binfmt-configuration
    This is the configuration for the @code{qemu-binfmt} service.
    
    @table @asis
    @item @code{platforms} (default: @code{'()})
    The list of emulated QEMU platforms.  Each item must be a @dfn{platform
    object} as returned by @code{lookup-qemu-platforms} (see below).
    
    
    @item @code{guix-support?} (default: @code{#f})
    When it is true, QEMU and all its dependencies are added to the build
    environment of @command{guix-daemon} (@pxref{Invoking guix-daemon,
    @code{--chroot-directory} option}).  This allows the @code{binfmt_misc}
    handlers to be used within the build environment, which in turn means
    that you can transparently build programs for another architecture.
    
    For example, let's suppose you're on an x86_64 machine and you have this
    service:
    
    @example
    (service qemu-binfmt-service-type
             (qemu-binfmt-configuration
               (platforms (lookup-qemu-platforms "arm"))
    
               (guix-support? #t)))
    
    @end example
    
    You can run:
    
    @example
    guix build -s armhf-linux inkscape
    @end example
    
    @noindent
    and it will build Inkscape for ARMv7 @emph{as if it were a native
    build}, transparently using QEMU to emulate the ARMv7 CPU.  Pretty handy
    if you'd like to test a package build for an architecture you don't have
    access to!
    
    
    @item @code{qemu} (default: @code{qemu})
    The QEMU package to use.
    @end table
    @end deftp
    
    @deffn {Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{}
    Return the list of QEMU platform objects corresponding to
    @var{platforms}@dots{}.  @var{platforms} must be a list of strings
    corresponding to platform names, such as @code{"arm"}, @code{"sparc"},
    @code{"mips64el"}, and so on.
    @end deffn
    
    @deffn {Scheme Procedure} qemu-platform? @var{obj}
    Return true if @var{obj} is a platform object.
    @end deffn
    
    @deffn {Scheme Procedure} qemu-platform-name @var{platform}
    Return the name of @var{platform}---a string such as @code{"arm"}.
    @end deffn
    
    @node Version Control Services
    @subsubsection Version Control Services
    
    The @code{(gnu services version-control)} module provides a service to
    
    allow remote access to local Git repositories.  There are three options:
    
    the @code{git-daemon-service}, which provides access to repositories via
    
    the @code{git://} unsecured TCP-based protocol, extending the
    
    @code{nginx} web server to proxy some requests to
    
    @code{git-http-backend}, or providing a web interface with
    @code{cgit-service-type}.
    
    
    @deffn {Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]
    
    Return a service that runs @command{git daemon}, a simple TCP server to
    expose repositories over the Git protocol for anonymous access.
    
    The optional @var{config} argument should be a
    @code{<git-daemon-configuration>} object, by default it allows read-only
    access to exported@footnote{By creating the magic file
    "git-daemon-export-ok" in the repository directory.} repositories under
    @file{/srv/git}.
    
    @end deffn
    
    @deftp {Data Type} git-daemon-configuration
    Data type representing the configuration for @code{git-daemon-service}.
    
    @table @asis
    @item @code{package} (default: @var{git})
    Package object of the Git distributed version control system.
    
    @item @code{export-all?} (default: @var{#f})
    Whether to allow access for all Git repositories, even if they do not
    have the @file{git-daemon-export-ok} file.
    
    @item @code{base-path} (default: @file{/srv/git})
    Whether to remap all the path requests as relative to the given path.
    If you run git daemon with @var{(base-path "/srv/git")} on example.com,
    then if you later try to pull @code{git://example.com/hello.git}, git
    daemon will interpret the path as @code{/srv/git/hello.git}.
    
    @item @code{user-path} (default: @var{#f})
    Whether to allow @code{~user} notation to be used in requests.  When
    specified with empty string, requests to @code{git://host/~alice/foo} is
    taken as a request to access @code{foo} repository in the home directory
    of user @code{alice}.  If @var{(user-path "path")} is specified, the
    same request is taken as a request to access @code{path/foo} repository
    in the home directory of user @code{alice}.
    
    @item @code{listen} (default: @var{'()})
    Whether to listen on specific IP addresses or hostnames, defaults to
    all.
    
    @item @code{port} (default: @var{#f})
    Whether to listen on an alternative port, which defaults to 9418.
    
    @item @code{whitelist} (default: @var{'()})
    If not empty, only allow access to this list of directories.
    
    @item @code{extra-options} (default: @var{'()})
    Extra options will be passed to @code{git daemon}, please run
    @command{man git-daemon} for more information.
    
    @end table
    @end deftp
    
    
    The @code{git://} protocol lacks authentication.  When you pull from a
    repository fetched via @code{git://}, you don't know that the data you
    receive was modified is really coming from the specified host, and you
    have your connection is subject to eavesdropping.  It's better to use an
    authenticated and encrypted transport, such as @code{https}.  Although Git allows you
    to serve repositories using unsophisticated file-based web servers,
    there is a faster protocol implemented by the @code{git-http-backend}
    program.  This program is the back-end of a proper Git web service.  It
    is designed to sit behind a FastCGI proxy.  @xref{Web Services}, for more
    on running the necessary @code{fcgiwrap} daemon.
    
    Guix has a separate configuration data type for serving Git repositories
    over HTTP.
    
    @deftp {Data Type} git-http-configuration
    Data type representing the configuration for @code{git-http-service}.
    
    @table @asis
    @item @code{package} (default: @var{git})
    Package object of the Git distributed version control system.
    
    @item @code{git-root} (default: @file{/srv/git})
    Directory containing the Git repositories to expose to the world.
    
    @item @code{export-all?} (default: @var{#f})
    Whether to expose access for all Git repositories in @var{git-root},
    even if they do not have the @file{git-daemon-export-ok} file.
    
    @item @code{uri-path} (default: @file{/git/})
    Path prefix for Git access.  With the default @code{/git/} prefix, this
    will map @code{http://@var{server}/git/@var{repo}.git} to
    @code{/srv/git/@var{repo}.git}.  Requests whose URI paths do not begin
    with this prefix are not passed on to this Git instance.
    
    @item @code{fcgiwrap-socket} (default: @code{127.0.0.1:9000})
    The socket on which the @code{fcgiwrap} daemon is listening.  @xref{Web
    Services}.
    @end table
    @end deftp
    
    There is no @code{git-http-service-type}, currently; instead you can
    create an @code{nginx-location-configuration} from a
    @code{git-http-configuration} and then add that location to a web
    server.
    
    @deffn {Scheme Procedure} git-http-nginx-location-configuration @
           [config=(git-http-configuration)]
    Compute an @code{nginx-location-configuration} that corresponds to the
    given Git http configuration.  An example nginx service definition to
    serve the default @file{/srv/git} over HTTPS might be:
    
    @example
    (service nginx-service-type
             (nginx-configuration
              (server-blocks
               (list
                (nginx-server-configuration
    
                 (server-name "git.my-host.org")
                 (ssl-certificate
                  "/etc/letsencrypt/live/git.my-host.org/fullchain.pem")
                 (ssl-certificate-key
                  "/etc/letsencrypt/live/git.my-host.org/privkey.pem")
                 (locations
                  (list
                   (git-http-nginx-location-configuration
                    (git-http-configuration (uri-path "/"))))))))))
    @end example
    
    This example assumes that you are using Let's Encrypt to get your TLS
    certificate.  @xref{Certificate Services}.  The default @code{certbot}
    service will redirect all HTTP traffic on @code{git.my-host.org} to
    HTTPS.  You will also need to add an @code{fcgiwrap} proxy to your
    system services.  @xref{Web Services}.
    @end deffn
    
    Oleg Pykhalov's avatar
    Oleg Pykhalov committed
    @subsubheading Cgit Service
    
    @cindex Cgit service
    @cindex Git, web interface
    @uref{https://git.zx2c4.com/cgit/, Cgit} is a web frontend for Git
    repositories written in C.
    
    The following example will configure the service with default values.
    By default, Cgit can be accessed on port 80 (@code{http://localhost:80}).
    
    @example
    (service cgit-service-type)
    @end example
    
    
    The @code{file-object} type designates either a file-like object
    (@pxref{G-Expressions, file-like objects}) or a string.
    
    
    @c %start of fragment
    
    Available @code{cgit-configuration} fields are:
    
    @deftypevr {@code{cgit-configuration} parameter} package package
    The CGIT package.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} nginx-server-configuration-list nginx
    NGINX configuration.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} file-object about-filter
    
    Specifies a command which will be invoked to format the content of about
    pages (both top-level and for each repository).
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string agefile
    Specifies a path, relative to each repository path, which can be used to
    specify the date and time of the youngest commit in the repository.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} file-object auth-filter
    
    Specifies a command that will be invoked for authenticating repository
    access.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string branch-sort
    Flag which, when set to @samp{age}, enables date ordering in the branch
    ref list, and when set @samp{name} enables ordering by branch name.
    
    Defaults to @samp{"name"}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string cache-root
    Path used to store the cgit cache entries.
    
    Defaults to @samp{"/var/cache/cgit"}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer cache-static-ttl
    Number which specifies the time-to-live, in minutes, for the cached
    version of repository pages accessed with a fixed SHA1.
    
    Defaults to @samp{-1}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer cache-dynamic-ttl
    Number which specifies the time-to-live, in minutes, for the cached
    version of repository pages accessed without a fixed SHA1.
    
    Defaults to @samp{5}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer cache-repo-ttl
    Number which specifies the time-to-live, in minutes, for the cached
    version of the repository summary page.
    
    Defaults to @samp{5}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer cache-root-ttl
    Number which specifies the time-to-live, in minutes, for the cached
    version of the repository index page.
    
    Defaults to @samp{5}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer cache-scanrc-ttl
    Number which specifies the time-to-live, in minutes, for the result of
    scanning a path for Git repositories.
    
    Defaults to @samp{15}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer cache-about-ttl
    Number which specifies the time-to-live, in minutes, for the cached
    version of the repository about page.
    
    Defaults to @samp{15}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer cache-snapshot-ttl
    Number which specifies the time-to-live, in minutes, for the cached
    version of snapshots.
    
    Defaults to @samp{5}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer cache-size
    The maximum number of entries in the cgit cache.  When set to @samp{0},
    caching is disabled.
    
    Defaults to @samp{0}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean case-sensitive-sort?
    Sort items in the repo list case sensitively.
    
    Defaults to @samp{#t}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} list clone-prefix
    List of common prefixes which, when combined with a repository URL,
    generates valid clone URLs for the repository.
    
    Defaults to @samp{()}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} list clone-url
    List of @code{clone-url} templates.
    
    Defaults to @samp{()}.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} file-object commit-filter
    
    Command which will be invoked to format commit messages.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string commit-sort
    Flag which, when set to @samp{date}, enables strict date ordering in the
    commit log, and when set to @samp{topo} enables strict topological
    ordering.
    
    Defaults to @samp{"git log"}.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} file-object css
    
    URL which specifies the css document to include in all cgit pages.
    
    Defaults to @samp{"/share/cgit/cgit.css"}.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} file-object email-filter
    
    Specifies a command which will be invoked to format names and email
    address of committers, authors, and taggers, as represented in various
    places throughout the cgit interface.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean embedded?
    Flag which, when set to @samp{#t}, will make cgit generate a HTML
    fragment suitable for embedding in other HTML pages.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-commit-graph?
    Flag which, when set to @samp{#t}, will make cgit print an ASCII-art
    commit history graph to the left of the commit messages in the
    repository log page.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-filter-overrides?
    Flag which, when set to @samp{#t}, allows all filter settings to be
    overridden in repository-specific cgitrc files.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-follow-links?
    Flag which, when set to @samp{#t}, allows users to follow a file in the
    log view.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-http-clone?
    If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git
    clones.
    
    Defaults to @samp{#t}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-index-links?
    Flag which, when set to @samp{#t}, will make cgit generate extra links
    "summary", "commit", "tree" for each repo in the repository index.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-index-owner?
    Flag which, when set to @samp{#t}, will make cgit display the owner of
    each repo in the repository index.
    
    Defaults to @samp{#t}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-log-filecount?
    Flag which, when set to @samp{#t}, will make cgit print the number of
    modified files for each commit on the repository log page.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-log-linecount?
    Flag which, when set to @samp{#t}, will make cgit print the number of
    added and removed lines for each commit on the repository log page.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-remote-branches?
    Flag which, when set to @code{#t}, will make cgit display remote
    branches in the summary and refs views.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-subject-links?
    Flag which, when set to @code{1}, will make cgit use the subject of the
    parent commit as link text when generating links to parent commits in
    commit view.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-html-serving?
    Flag which, when set to @samp{#t}, will make cgit use the subject of the
    parent commit as link text when generating links to parent commits in
    commit view.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?
    Flag which, when set to @samp{#t}, will make cgit generate linenumber
    links for plaintext blobs printed in the tree view.
    
    Defaults to @samp{#t}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean enable-git-config?
    Flag which, when set to @samp{#f}, will allow cgit to use Git config to
    set any repo specific settings.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} file-object favicon
    
    URL used as link to a shortcut icon for cgit.
    
    Defaults to @samp{"/favicon.ico"}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string footer
    The content of the file specified with this option will be included
    verbatim at the bottom of all pages (i.e.  it replaces the standard
    "generated by..." message).
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string head-include
    The content of the file specified with this option will be included
    verbatim in the HTML HEAD section on all pages.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string header
    The content of the file specified with this option will be included
    verbatim at the top of all pages.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} file-object include
    
    Name of a configfile to include before the rest of the current config-
    file is parsed.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string index-header
    The content of the file specified with this option will be included
    verbatim above the repository index.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string index-info
    The content of the file specified with this option will be included
    verbatim below the heading on the repository index page.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean local-time?
    Flag which, if set to @samp{#t}, makes cgit print commit and tag times
    in the servers timezone.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} file-object logo
    
    URL which specifies the source of an image which will be used as a logo
    on all cgit pages.
    
    Defaults to @samp{"/share/cgit/cgit.png"}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string logo-link
    URL loaded when clicking on the cgit logo image.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} file-object owner-filter
    
    Command which will be invoked to format the Owner column of the main
    page.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer max-atom-items
    Number of items to display in atom feeds view.
    
    Defaults to @samp{10}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer max-commit-count
    Number of entries to list per page in "log" view.
    
    Defaults to @samp{50}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer max-message-length
    Number of commit message characters to display in "log" view.
    
    Defaults to @samp{80}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer max-repo-count
    Specifies the number of entries to list per page on the repository index
    page.
    
    Defaults to @samp{50}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer max-repodesc-length
    Specifies the maximum number of repo description characters to display
    on the repository index page.
    
    Defaults to @samp{80}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer max-blob-size
    Specifies the maximum size of a blob to display HTML for in KBytes.
    
    Defaults to @samp{0}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string max-stats
    Maximum statistics period.  Valid values are @samp{week},@samp{month},
    @samp{quarter} and @samp{year}.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} mimetype-alist mimetype
    Mimetype for the specified filename extension.
    
    Defaults to @samp{((gif "image/gif") (html "text/html") (jpg
    "image/jpeg") (jpeg "image/jpeg") (pdf "application/pdf") (png
    "image/png") (svg "image/svg+xml"))}.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} file-object mimetype-file
    
    Specifies the file to use for automatic mimetype lookup.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string module-link
    Text which will be used as the formatstring for a hyperlink when a
    submodule is printed in a directory listing.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean nocache?
    If set to the value @samp{#t} caching will be disabled.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean noplainemail?
    If set to @samp{#t} showing full author email addresses will be
    disabled.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean noheader?
    Flag which, when set to @samp{#t}, will make cgit omit the standard
    header on all pages.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} project-list project-list
    
    A list of subdirectories inside of @code{repository-directory}, relative
    to it, that should loaded as Git repositories.  An empty list means that
    all subdirectories will be loaded.
    
    Defaults to @samp{()}.
    
    @end deftypevr
    
    
    @deftypevr {@code{cgit-configuration} parameter} file-object readme
    
    Text which will be used as default value for @code{cgit-repo-readme}.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} boolean remove-suffix?
    If set to @code{#t} and @code{repository-directory} is enabled, if any
    repositories are found with a suffix of @code{.git}, this suffix will be
    removed for the URL and name.
    
    Defaults to @samp{#f}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} integer renamelimit
    Maximum number of files to consider when detecting renames.
    
    Defaults to @samp{-1}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} string repository-sort
    The way in which repositories in each section are sorted.
    
    Defaults to @samp{""}.
    
    @end deftypevr
    
    @deftypevr {@code{cgit-configuration} parameter} robots-list robots
    Text used as content for the @code{robots} meta-tag.