(BLOCK (PARA (TEXT "The configuration file, specified by the ") (LITERAL-INPUT () "-c CONFIGFILE") (TEXT " ") (LINK-ZETTEL () "00001004051000" (TEXT "command line option")) (TEXT ", allows you to specify some startup options.") (SOFT) (TEXT "These cannot be stored in a ") (LINK-ZETTEL () "00001004020000" (TEXT "configuration zettel")) (TEXT " because they are needed before Zettelstore can start or because of security reasons.") (SOFT) (TEXT "For example, Zettelstore needs to know in advance on which network address it must listen or where zettel are stored.") (SOFT) (TEXT "An attacker that is able to change the owner can do anything.") (SOFT) (TEXT "Therefore, only the owner of the computer on which Zettelstore runs can change this information.")) (PARA (TEXT "The file for startup configuration must be created via a text editor in advance.")) (PARA (TEXT "The syntax of the configuration file is the same as for any zettel metadata.") (SOFT) (TEXT "The following keys are supported:")) (DESCRIPTION ((MARK "admin-port" "admin-port" "admin-port" (LITERAL-INPUT () "admin-port"))) (BLOCK (BLOCK (PARA (TEXT "Specifies the TCP port through which you can reach the ") (LINK-ZETTEL () "00001004100000" (TEXT "administrator console")) (TEXT ".") (SOFT) (TEXT "A value of ") (FORMAT-QUOTE () (TEXT "0")) (TEXT " (the default) disables it.") (SOFT) (TEXT "The administrator console will only be enabled if Zettelstore is started with the ") (LINK-ZETTEL () "00001004051000" (LITERAL-INPUT () "run") (TEXT " sub-command")) (TEXT ".")) (PARA (TEXT "On most operating systems, the value must be greater than ") (FORMAT-QUOTE () (TEXT "1024")) (TEXT " unless you start Zettelstore with the full privileges of a system administrator (which is not recommended).")) (PARA (TEXT "Default: ") (FORMAT-QUOTE () (TEXT "0"))))) ((MARK "asset-dir" "asset-dir" "asset-dir" (LITERAL-INPUT () "asset-dir"))) (BLOCK (BLOCK (PARA (TEXT "Allows to specify a directory whose files are allowed be transferred directly with the help of the web server.") (SOFT) (TEXT "The URL prefix for these files is ") (LITERAL-INPUT () "/assets/") (TEXT ".") (SOFT) (TEXT "You can use this if you want to transfer files that are too large for a zettel, such as presentation, PDF, music or video files.")) (PARA (TEXT "Files within the given directory will not be managed by Zettelstore.") (ENDNOTE () (TEXT "They will be managed by Zettelstore just in the very special case that the directory is one of the configured ") (LINK-SELF () "#box-uri-x" (TEXT "boxes")) (TEXT "."))) (PARA (TEXT "If you specify only the URL prefix in your web client, the contents of the directory are listed.") (SOFT) (TEXT "To avoid this, create an empty file in the directory named ") (FORMAT-QUOTE () (TEXT "index.html")) (TEXT ".")) (PARA (TEXT "Default: ") (FORMAT-QUOTE ()) (TEXT ", no asset directory is set, the URL prefix ") (LITERAL-INPUT () "/assets/") (TEXT " is invalid.")))) ((MARK "base-url" "base-url" "base-url" (LITERAL-INPUT () "base-url"))) (BLOCK (BLOCK (PARA (TEXT "Sets the absolute base URL for the service.")) (PARA (TEXT "Note: ") (LINK-SELF () "#url-prefix" (LITERAL-INPUT () "url-prefix")) (TEXT " must be the suffix of ") (LITERAL-INPUT () "base-url") (TEXT ", otherwise the web service will not start.") (SOFT) (SOFT) (TEXT "Default: ") (FORMAT-QUOTE () (TEXT "http://127.0.0.1:23123/")) (TEXT ".")))) ((MARK "box-uri-x" "box-uri-x" "box-uri-x" (LITERAL-INPUT () "box-uri-X")) (TEXT ", where ") (FORMAT-EMPH () (TEXT "X")) (TEXT " is a number greater or equal to one")) (BLOCK (BLOCK (PARA (TEXT "Specifies a ") (LINK-ZETTEL () "00001004011200" (TEXT "box")) (TEXT " where zettel are stored.") (SOFT) (TEXT "During startup, ") (FORMAT-EMPH () (TEXT "X")) (TEXT " is incremented, starting with one, until no key is found.") (SOFT) (TEXT "This allows to configuring than one box.")) (PARA (TEXT "If no ") (LITERAL-INPUT () "box-uri-1") (TEXT " key is given, the overall effect will be the same as if only ") (LITERAL-INPUT () "box-uri-1") (TEXT " was specified with the value ") (FORMAT-QUOTE () (TEXT "dir://.zettel")) (TEXT ".") (SOFT) (TEXT "In this case, even a key ") (LITERAL-INPUT () "box-uri-2") (TEXT " will be ignored.")))) ((MARK "debug-mode" "debug-mode" "debug-mode" (LITERAL-INPUT () "debug-mode"))) (BLOCK (BLOCK (PARA (TEXT "If set to ") (LINK-ZETTEL () "00001006030500" (TEXT "true")) (TEXT ", allows to debug the Zettelstore software (mostly used by Zettelstore developers).") (SOFT) (TEXT "Disables any timeout values of the internal web server and does not send some security-related data.") (SOFT) (TEXT "Sets ") (LINK-SELF () "#log-level" (LITERAL-INPUT () "log-level")) (TEXT " to ") (FORMAT-QUOTE () (TEXT "debug")) (TEXT ".") (SOFT) (TEXT "Enables ") (LINK-SELF () "#runtime-profiling" (LITERAL-INPUT () "runtime-profiling")) (TEXT ".")) (PARA (TEXT "Do not enable it for a production server.")) (PARA (TEXT "Default: ") (FORMAT-QUOTE () (TEXT "false"))))) ((MARK "default-dir-box-type" "default-dir-box-type" "default-dir-box-type" (LITERAL-INPUT () "default-dir-box-type"))) (BLOCK (BLOCK (PARA (TEXT "Specifies the default value for the (sub-)type of ") (LINK-ZETTEL () "00001004011400#type" (TEXT "directory boxes")) (TEXT ", in which Zettel are typically stored.")) (PARA (TEXT "Default: ") (FORMAT-QUOTE () (TEXT "notify"))))) ((MARK "insecure-cookie" "insecure-cookie" "insecure-cookie" (LITERAL-INPUT () "insecure-cookie"))) (BLOCK (BLOCK (PARA (TEXT "Must be set to ") (LINK-ZETTEL () "00001006030500" (TEXT "true")) (TEXT " if authentication is enabled and Zettelstore is not accessible via HTTPS (but via HTTP).") (SOFT) (TEXT "Otherwise web browsers are free to ignore the authentication cookie.")) (PARA (TEXT "Default: ") (FORMAT-QUOTE () (TEXT "false"))))) ((MARK "insecure-html" "insecure-html" "insecure-html" (LITERAL-INPUT () "insecure-html"))) (BLOCK (BLOCK (PARA (TEXT "Allows to use HTML, e.g. within supported markup languages, even if this might introduce security-related problems.") (SOFT) (TEXT "However, HTML containing the ") (LITERAL-CODE () "