InstallationRemote Access

While we recognize that most people want to access their system remotely, we do not provide support for any remote access tools. Any issues based around remote access should be brought up with the devs/support group of the remote access tool used.

These are the recommended ways:

NamePublic AccessRequires app on users device?Notes
VPNNoYesRecommended for one or two users
Reverse ProxyYesNoRecommened for multiuser

Reverse Proxy

What is a Reverse Proxy?

A Reverse Proxy allows you to share web-based services, like Kavita, outside your home network through the upload bandwidth of your home internet connection.

This can be accomplished in several ways including a purchased domain name, a free domain name service such as NoIP.com (or others like it) in combination with some form of Dynamic DNS.

All the example configurations listed here are user submitted. If you would like to contribute your working Reverse Proxy config please join us in Discord to discuss.

Config Examples

Additional Setup for Proxies Hosted Externally

For security reasons, Kavita does not trust X-Forwarded-Host and other forwarding headers sent by proxies from outside of localhost. Therefore, if you plan to deploy your reverse proxy on another host, additional setup is required. Otherwise, scenarios like EPUB images might break.

Edit your appsettings.json configuration file to include the following line. For native installs, the file is located in the config folder. For Docker deployments, check your mounted config volume.

{
  "KnownProxies": [ "<ip-for-proxy-1>", "<ip-for-proxy-2>", "<ip-for-proxy-3>" ]
}

For example:

{
  "Port": 5000,
  "IpAddresses": "",
  "BaseUrl": "/",
+ "KnownProxies": [ "192.0.2.1", "192.0.2.2", "3fff::1", "3fff::2" ]
}

Alternatively, set ASPNETCORE_FORWARDEDHEADERS_ENABLED environment variable to 1 to disable this check and trust all proxies. However, this may open up security vulnerabilities by trusting unauthenticated rogue hosts.