Mnema is a containerized service that exposes a web interface on port 8080.
Configuration follows the standard .NET pattern and can be done as follows
Configuration File: Mount a custom appsettings.json to /Mnema/config/appsettings.json.
Environment Variables: Provide settings directly via the container environment.
You can use both at the same time
Configuration Reference
Variable (JSON Path)
Description
Connections
ConnectionStrings:Redis
Connection string for the Redis cache.
ConnectionStrings:Postgres
Connection string for the PostgreSQL database.
ConnectionStrings:Sqlite
Connection string for the Sqlite database, ensure this maps to a persistent location. Postgres takes priority. Example: Data Source=/persistent/Mnema.db; The ; is required
Authentication
NoAuthentication
Set the true if you wish to disable Authentication
Authentication:Hardcover
Your hardcover ApiKey, required if you wish to use hardcover as a metadata provider
Storage
Application:BaseDir
Required. The root directory for media storage.
Application:DownloadDir
Required. The directory used for processing downloads.
Application:PersistentStorage
Required. The directory where Mnema will store data that must be persistet (Mangabaka index)
Application:Host
Host used to construct the calendar url. Not required unless you want the copy button to work
System & Libs
TZ
Sets the system timezone for the runtime (e.g., Europe/Brussels).
AutoMapperLicense
Optional license key. Displays a warning on start if missing and not suppressed.
Key Mapping Rules
Nesting: Use __ (double underscore) to represent nested JSON objects in environment variables (e.g., OpenIdConnect__Secret).
Secrets: Sensitive values like PostgreSQL strings and OIDC secrets should be injected via a secret management system.