How to Run Nostos Yourself with Docker

Nostos is open source and you can run it on your own machine for free. Here's what that takes, what you give up compared with the hosted version, and three things to get right.

Nostos is open source under AGPLv3, and you can run it on your own computer or home server without paying for anything or making an account. This is a short guide to what that involves. The documentation has the full version.

Who this is for

You’ll be comfortable here if you’ve run something with Docker before. If you haven’t and don’t want to learn, the hosted version exists so you don’t have to.

Self-hosted and hosted are the same application. The same Library, reader, Brain and Studio. What changes is who looks after it.

What you need

  • A machine that stays on when you want to read: a home server, a NAS that runs Docker, or just your own computer.
  • Docker with Docker Compose.
  • Disk space for your books. Audiobooks are what take up room.

You don’t need to install anything else. The image comes with everything Nostos needs.

Starting it

Make a file called compose.yml:

services:
  nostos:
    image: ghcr.io/christian-gennari/nostos:latest
    ports:
      - "5099:8080"
    volumes:
      - nostos-data:/data
    restart: unless-stopped

volumes:
  nostos-data:

Then, in the same folder:

docker compose up -d

Open http://localhost:5099, or swap localhost for the server’s address if it’s another machine on your network. Press Add book and you’re in.

Everything Nostos stores, the database, your book files and its backups, lives in that one /data volume.

Three things to get right

There is no login. Self-hosted Nostos doesn’t have accounts. Anyone who can reach the address can open your library. Keep it on your home network or a private network like a VPN, or put your own access layer in front of it before exposing it to the internet. The docs have a page on running it behind a reverse proxy.

Keep the data on a local disk. The database is SQLite, and it needs a normal local filesystem. A Docker volume or a folder on the machine’s own disk is fine. Don’t put the live database on a network share or inside a cloud-sync folder.

Set up backups before you trust it. If this is the only copy of your notes, treat it that way. Nostos has its own backup system, described in Live Backups. Do that part on day one, before you have anything to lose.

The AI parts are optional

Ask Nostos, voice transcription and the natural read-aloud voice all stay off until you connect them yourself. Everything else works without them, and every device can already read a book aloud with its own voice.

If you do want them, you point Nostos at any OpenAI-compatible service in Settings → AI connections. That can be OpenAI, or models running on your own machine if nothing should leave your network. AI connections walks through both.

Worth setting up next

  • External media, if you already keep audiobooks or ebooks on that server. Nostos reads them where they are instead of making you upload copies.
  • E-reader access, so KOReader or another reading app can download books straight from your library.
  • E-reader highlights, to bring in what you’ve already marked on a Kobo or in KOReader.

Moving between hosted and self-hosted

You can change your mind in either direction. Nostos exports a portable copy of your library: books, reading progress, collections, notes, topics and your writing. You import that into the other kind of installation.

One limit to know about: the import only works into an empty library. It moves a library, it doesn’t merge two. The details are in Import & Export.

Which should you pick

If running a small server sounds like a nice weekend, self-host. If it sounds like a chore, the hosted plans include the storage, daily backups and the assistant, and you can still leave with your library whenever you want.