Kavita
Organize and read ebooks, comics and manga with personal reading progress.
Choose your deployment and the way you want to use Selfhost. The instructions below follow that choice.
Set up Kavita
Editable Compose files in your own directory.
- Persistent application configuration lives in /kavita/config. Add explicit media mounts before creating libraries.
- Automatic app setup creates the first administrator with a username, password and email, then checks that an administrator exists.
selfhost app --directory ./kavita init kavita Initialization writes portable files and does not start the app. Review compose.yaml, the private .env and any files in files/, then start it:
selfhost app --directory ./kavita startNo Selfhost dashboard or background service is needed. You can also start these files directly:
cd kavita
docker compose -f compose.yaml up -dBefore configuring integrations
- Timezone is available as a typed environment setting. The health action checks the running API.
- Library scanning, readers, users and server preferences remain available in Kavita.
- This recipe uses the available 0.9.1 container image tag. Patch release names do not necessarily correspond to Docker image tags.
- Kavita runtime settings, OIDC and library creation are not automated by this profile.
Kavita integrations
Compose service: kavita. These operations use the profile saved when this deployment is created.
Initialize and connect
Supported setup modes: bootstrap.
- Creates the first administrator only. Existing installations are never reset. Library paths and media access remain under your control.
Setup fields
- Administrator username
username - string · requiredDefault:
"admin"Length: 1 to 64 characters - Administrator password
password - secret · requiredLength: 12 to 128 characters
- Administrator email
email - string · requiredLength: 0 to 254 characters
Save onboarding.json, replace example values and supply env: secrets privately through your shell. Empty apps adds no links; add explicit links when this profile supports them.
{
"mode": "bootstrap",
"inputs": {
"username": "admin",
"password": "env:SELFHOST_PASSWORD",
"email": "YOUR_VALUE"
},
"apps": []
}selfhost app --directory ./kavita setup kavita
selfhost app --directory ./kavita setup-plan kavita onboarding.json
selfhost app --directory ./kavita setup-apply kavita onboarding.json --revision REVIEWED_REVISIONNative settings
Changes use the app’s Compose environment. Unrelated settings are preserved.
Supported fields (1)
- TZ
tz - string · advanced
Save a JSON map of the field IDs you want to change as changes.json. Replace FIELD_ID with an ID from the supported fields above, and use its declared value type. Review the plan and replace REVIEWED_REVISION with the revision it returns.
{
"FIELD_ID": "YOUR_VALUE"
}selfhost app --directory ./kavita config kavita
selfhost app --directory ./kavita plan kavita changes.json
selfhost app --directory ./kavita apply kavita changes.json --revision REVIEWED_REVISION Saved changes need service recreation to become active. Existing interpolated environment values stay under your control in .env or Compose.
App actions
Check Kavita health
Check the local Kavita health endpoint without changing the library.
selfhost app --directory ./kavita action kavita check-healthVersions and updates
This deployment uses the following images. Existing projects retain their saved recipe and images. A new catalogue version does not silently update them.
- kavita:
jvmilazz0/kavita:0.9.1
- 0.9.1
jvmilazz0/kavita:0.9.1Local Docker HTTP startup, native configuration roundtrip, declared read-only actions and container recreation with persistent volumes passed. First administrator setup and initialized state after recreation passed. External provider login and version upgrades require separate validation.
Review compatibility and back up app data before an update. Choose an image version and review the change.
Keep control of your setup
Selfhost remains optional. Your app runs using ordinary Compose files, its own settings and persistent data. Keep the Compose project name and volumes to preserve storage. Configuration exports and setting backups do not include application data.
Standalone CLI guide · Backups and removal · Kavita documentation