calibre-server - calibre-server
calibre-server [options] [path to library folder...]
Start the calibre Content server. The calibre Content server exposes your
calibre libraries over the internet. You can specify the path to the library
folders as arguments to calibre-server
. If you do not specify any
paths, all the libraries that the main calibre program knows about will be
Whenever you pass arguments to calibre-server
that have spaces in them,
enclose the arguments in quotation marks. For example: "/some path/with
- Path to the access log file. This log contains information
about clients connecting to the server and making requests. By default no
access logging is done.
- Choose the type of authentication used. Set the HTTP
authentication mode used by the server. Set to
"basic" if you are putting this server behind an
SSL proxy. Otherwise, leave it as "auto", which
will use "basic" if SSL is configured otherwise it
will use "digest".
- Automatically reload server when source code changes.
Useful for development. You should also specify a small value for the
- Number of login failures for ban. The number of login
failures after which an IP address is banned
- Ban IP addresses that have repeated login failures.
Temporarily bans access for IP addresses that have repeated login failures
for the specified number of minutes. Useful to prevent attempts at
guessing passwords. If set to zero, no banning is done.
- Minimum size for which responses use data compression (in
- Path to a JSON file containing a template for the custom
book list mode. The easiest way to create such a template file is to go to
Preferences-> Sharing over the net-> Book list template in calibre,
create the template and export it.
- Run process in background as a daemon (Linux only).
- Restrict displayed user-defined fields. Comma separated
list of user-defined metadata fields that will be displayed by the Content
server in the /opds and /mobile views. If you specify this option, any
fields not in this list will not be displayed. For example:
- Socket pre-allocation, for example, with systemd socket
activation. By default, this option is enabled.
- --enable-auth, --disable-auth
- Password based authentication to access the server.
Normally, the server is unrestricted, allowing anyone to access it. You
can restrict access to predefined users with this option. By default, this
option is disabled.
- Fallback to auto-detected interface. If for some reason the
server is unable to bind to the interface specified in the listen_on
option, then it will try to detect an interface that connects to the
outside world and bind to that. By default, this option is enabled.
- --enable-local-write, --disable-local-write
- Allow un-authenticated local connections to make changes.
Normally, if you do not turn on authentication, the server operates in
read-only mode, so as to not allow anonymous users to make changes to your
calibre libraries. This option allows anybody connecting from the same
computer as the server is running on to make changes. This is useful if
you want to run the server without authentication but still use calibredb
to make changes to your calibre libraries. Note that turning on this
option means any program running on the computer can make changes to your
calibre libraries. By default, this option is disabled.
- --enable-log-not-found, --disable-log-not-found
- Log HTTP 404 (Not Found) requests. Normally, the server
logs all HTTP requests for resources that are not found. This can generate
a lot of log spam, if your server is targeted by bots. Use this option to
turn it off. By default, this option is enabled.
- --enable-use-bonjour, --disable-use-bonjour
- Advertise OPDS feeds via BonJour. Advertise the OPDS feeds
via the BonJour service, so that OPDS based reading apps can detect and
connect to the server automatically. By default, this option is
- --enable-use-sendfile, --disable-use-sendfile
- Zero copy file transfers for increased performance. This
will use zero-copy in-kernel transfers when sending files over the
network, increasing performance. However, it can cause corrupted file
transfers on some broken filesystems. If you experience corrupted file
transfers, turn it off. By default, this option is enabled.
- --help, -h
- show this help message and exit
- Ignored user-defined metadata fields. Comma separated list
of user-defined metadata fields that will not be displayed by the Content
server in the /opds and /mobile views. For example: my_rating,my_tags
- The interface on which to listen for connections. The
default is to listen on all available interfaces. You can change this to,
for example, "127.0.0.1" to only listen for
connections from the local machine, or to "::" to
listen to all incoming IPv6 and IPv4 connections.
- Path to log file for server log. This log contains server
information and errors, not access logs. By default it is written to
- Manage the database of users allowed to connect to this
server. See also the --userdb option.
- Max. size of single HTTP header (in KB).
- Maximum time for worker processes. Maximum amount of time
worker processes are allowed to run (in minutes). Set to zero for no
- Maximum number of worker processes. Worker processes are
launched as needed and used for large jobs such as preparing a book for
viewing, adding books, converting, etc. Normally, the max. number of such
processes is based on the number of CPU cores. You can control it by this
- Max. log file size (in MB). The maximum size of log files,
generated by the server. When the log becomes larger than this size, it is
automatically rotated. Set to zero to disable log rotation.
- Maximum number of books in OPDS feeds. The maximum number
of books that the server will return in a single OPDS acquisition
- Maximum number of ungrouped items in OPDS feeds. Group
items in categories such as author/tags by first letter when there are
more than this number of items. Set to zero to disable.
- Max. allowed size for files uploaded to the server (in
- Number of books to show in a single page. The number of
books to show in a single page in the browser.
- Write process PID to the specified file
- The port on which to listen for connections.
- Total time in seconds to wait for clean shutdown.
- Path to the SSL certificate file.
- Path to the SSL private key file.
- Time (in seconds) after which an idle connection is
- A prefix to prepend to all URLs. Useful if you wish to run
this server behind a reverse proxy. For example use, /calibre as the URL
- Path to the user database to use for authentication. The
database is a SQLite file. To create it use --manage-users. You can
read more about managing users at:
- show program's version number and exit
- Number of worker threads used to process requests.