Title here
Summary here
Stella reads config.yaml from the working directory, or from the path in
STELLA_CONFIG_PATH. This is the full example config (config.example.yaml in the repo),
with every setting at its default:
dbPath: ./data/stella.db
# Directory where uploaded card images are stored.
imagePath: ./data/images
# IANA timezone (e.g. Europe/Madrid) used for review-day boundaries and sent
# to sync devices so their clocks show local time, DST included.
# Empty = the host's local timezone.
timezone: ""
server:
port: 8858
appName: Stella
bodyLimit: 10485760
auth:
enabled: false
publicURLs: []
oidc:
issuer: ""
clientID: ""
clientSecret: ""
cimd: false
mcp:
# Enable the MCP endpoint at /mcp (StreamableHTTP transport).
enabled: false
refreshTokenDays: 30
logger:
level: info # debug | info | warn | error
format: "" # logfmt (default) | text | json
review:
# Hour (0-23) at which a new study day begins.
dayStartsAt: 3
# How many not-yet-retained cards to juggle at once.
nonMemorisedCardsInHand: 10
# Cap on the scheduled interval in days; 0 = no cap.
maxScheduledIntervalDays: 0
# Shuffle due cards instead of ordering by interval.
randomiseScheduledCards: false
# Shuffle the order unseen cards are introduced.
randomiseNewCards: false
cards:
# Automatically play audio when a card (front or back) is shown.
autoplayAudio: trueauth is explained in Users & login.mcp is explained in MCP server.review tunes the scheduler, see Reviewing.server.bodyLimit is the largest request body in bytes (10 MiB by default), which caps
the size of uploaded media and imported archives.