Skip to content

Self-Hosted System Overview

SelfHosted Nostos runs the public Nostos application with local SQLite persistence and local file storage. It does not require a hosted account or subscription.

Hosted Nostos uses the same product model and frontend while adding managed account, storage, billing, backup, and AI services behind a separate hosted composition.

For the hosted boundary, see Hosted Architecture.

  • Runtime: .NET 10
  • API: HTTP APIs plus streaming endpoints used by the application
  • Database: SQLite
  • Media processing: FFmpeg is included in the official container image
  • Framework: Angular standalone application
  • Reactive model: Signals
  • Installation: Browser application with PWA support
  • Core deployment: The application and your local server can operate without a Hosted Nostos account

Features that deliberately call external services — such as free-source acquisition, metadata lookup, or optional AI — naturally require network access when you use them.

The official container stores persistent SelfHosted state under one mounted data root:

/data/
├── nostos.db
├── books/
└── backups/
  • nostos.db contains relational library state.
  • books/ contains imported book media and generated book assets.
  • backups/ contains local .nostos backup archives.

The container configures these locations explicitly; the committed Compose file persists the whole /data root in one Docker volume.

Nostos can represent physical books and stores supported digital material including EPUB, PDF, text, MOBI, and common audiobook files.

The current add-book interface accepts EPUB, PDF, TXT, MOBI, MP3, M4A, and M4B uploads. Source acquisition can also add supported material from configured free catalogues.

Browser / PWA
|
v
SelfHosted Nostos container
|
+---- SQLite database /data/nostos.db
|
+---- book media /data/books
|
'---- local backups /data/backups

Keep the persistent data root on storage with reliable local filesystem semantics. See Volume Mounts and Safe SQLite Storage.