Your Comics and Manga, Organized on Your Own Terms
Kavita is a free, open-source server application built specifically for comics, manga, and books – designed to give readers a self-hosted alternative to cloud-based reading platforms. If you have a growing local library of CBZ, CBR, PDF, or EPUB files scattered across hard drives, Kavita turns that collection into a proper, browsable digital library accessible from any browser or compatible app on your network.

What Kavita Actually Does (and Why It Matters)
Unlike general-purpose file servers, Kavita understands comic and manga file formats natively. It reads metadata embedded in your files, pulls cover art automatically, and organizes series across volumes and chapters without you manually sorting anything. The reading experience runs entirely in the browser, with a built-in reader that supports right-to-left manga mode, double-page spreads, and per-series reading progress tracking.
Kavita also has user account support, which means you can create accounts for family members or roommates, set per-user library permissions, and track reading progress independently for each person. There’s no subscription required, no data leaving your home network, and no ads. The application is actively maintained with regular releases, and it has a companion mobile app called OPDS-compatible readers for those who prefer reading on a tablet.
The server itself is lightweight enough to run on a Raspberry Pi 4, a spare x86 mini PC, or inside a Docker container on an existing home server. For most home setups, a machine with 2GB of RAM and a modest CPU is more than enough to serve several simultaneous readers. Storage is the real consideration – a large manga collection can easily reach hundreds of gigabytes, so plan your drive space accordingly before starting.
One practical advantage over cloud alternatives is speed. When your files live locally, page loads in the reader are nearly instant over a LAN connection, and even over a home VPN the experience beats any subscription service with throttled servers. You also own the data completely – no account bans, no regional restrictions, no service shutdowns erasing your library.
Installing and Configuring Kavita Step by Step
The cleanest installation method for most users is Docker. If you already have Docker and Docker Compose installed on your server, create a new directory for the project – something like /opt/kavita – and inside it create a docker-compose.yml file. The basic compose configuration looks like this:
- image: kizaing/kavita:latest
- container_name: kavita
- ports: 5000:5000
- volumes: map your local manga/comics folder to /manga inside the container, and a config folder to /kavita/config
- restart: unless-stopped
Run docker compose up -d from that directory, then open a browser and navigate to http://your-server-ip:5000. Kavita will walk you through an initial setup wizard on first launch. You will create an admin account with a username and password – choose something strong since this is the account with full server control. The wizard then asks you to add your first library, where you point Kavita at the folder path you mounted inside the container.
Library types matter in Kavita. When you create a library you choose between Manga, Comics, or Books – and this choice affects how metadata is parsed and how the reader behaves. A Manga library defaults to right-to-left reading direction and treats numbered volumes differently than a Comics library does. If your collection mixes both Western comics and manga, create two separate libraries and point each at the appropriate subfolder. Kavita will scan the folders and begin building your library, pulling cover images from your files automatically.
For file naming, Kavita follows a specific convention that directly affects how well it groups series. A folder named One Piece containing files named One Piece v01.cbz, One Piece v02.cbz, and so on will be parsed cleanly into a single series with proper volume ordering. Inconsistent naming – mixing “Vol.” with “v” or leaving out the series name from the filename – causes Kavita to create duplicate entries or orphaned files. Running a batch rename tool on your collection before the first scan saves a significant amount of cleanup work.

Once the library scan completes, explore the admin dashboard under Settings. The Tasks section lets you schedule automatic rescans so new files you add to the watched folders appear in the library without manual triggering. The Email settings section allows you to configure an SMTP server for password reset emails, which becomes important if you are sharing the server with other users. Kavita also supports OPDS, an open catalog protocol – enabling this in settings allows tablet apps like Panels or Chunky on iOS to connect directly to your Kavita server and download or stream files to the device.
Exposing Kavita Beyond Your Local Network
Running Kavita only on your LAN is perfectly fine, but if you want to access your library while traveling or from a work machine, you need to expose it to the internet carefully. The recommended approach is placing Kavita behind a reverse proxy like Nginx Proxy Manager or Caddy, which handles SSL termination and lets you reach the server via a proper HTTPS domain rather than an IP and port. Pair this with a free domain from a provider like DuckDNS if you do not own a custom domain, point it at your home IP, and configure your router to forward port 443 to the reverse proxy. Never expose port 5000 directly to the internet without SSL.
A Tailscale VPN setup is a lower-friction alternative if the reverse proxy configuration feels like too many moving parts. Install the Tailscale client on both your server and your devices, and your Kavita instance becomes reachable over the Tailscale private network from anywhere, with no port forwarding, no public exposure, and encrypted connections handled automatically. Either approach works – the reverse proxy route gives you a clean public URL, while Tailscale keeps everything off the public internet entirely. The right choice depends on whether you want to share access with people who are not technically inclined enough to install a VPN client.






