Reading paths
New to the project
Running it
Storage change
Start here
ArchitectureSystem boundaries, components, deployment, impact of outages.Protocols and RFCsPer-protocol reference: capabilities, commands, methods, limits, deviations, RFC index.ConfigurationViper, environment variables, secret files, log levels.
Operations
Operations and releasesDependencies, safe diagnosis, release and rollback, running without Kubernetes.Storage guideHow ShardPost uses Ceph, built up from the basics: Ceph, the pools, one account's objects, walkthroughs, programs, operator playbook, monitoring, sizing.ObservabilityWhat the metrics mean, sampling, privacy, operational logs.Admin API and LDAOpenAPI contract, shardpostctl, roles, local delivery.QuotaGrace, mailbox rules, warning programs, over flag.Sieve and learningScript execution, external programs, learning queue.BenchBench pools, shardpost bench populate/measure, what an account costs in Ceph.
JMAP
JMAPAccount state, session resource, API endpoint, blobs, what is built and what is not.JMAP by exampleA recorded send and receive through the Director, as JSON.
Internals
RADOS storageObject layout, CAS, shards, intents, references, repair.Runtime and UMLGo interfaces, login, delivery, IMAP states.Architecture decisionsReasons for and consequences of the central design decisions.Developer guideCode map, build, tests, change paths, vendor fork.QualityTest levels, conformance limits, current and historical evidence.DiagramsMermaid sources, SVGs, and reproducible rendering.
Reference
Manual pagesshardpostctl command by command, with examples.Documentation indexReading paths, every document, release evidence and history.
Manual pages
shardpost-bench— Fill separate bench pools with accounts and measure what an account costs in Ceph.shardpost-scrub— Scrub accounts, submit the nightly batch scrub, sweep the pools for debris.shardpost-system— Place the store-wide state in a system pool, check it, take it back.shardpostctl-account— Look up an account, its quota and its shares; list the account directory; repair a directory entry.shardpostctl-acl— Read, explain and change mailbox permissions.shardpostctl-auth— Flush the auth cache of every server.shardpostctl-deliver— Deliver a message like a local delivery agent.shardpostctl-export— Export an account to an archive, verify it and restore it.shardpostctl-fts— Layouts of the full-text index: the layout 3 mark, the dictionary filter mark, the mark of online runs, the accounts with layout 3, the layout record and the key counts of an account.shardpostctl-job— Plan, apply and watch maintenance jobs.shardpostctl-learning— Inspect and retry jobs of the learning queue.shardpostctl-mailbox— List, inspect, create, rename and subscribe mailboxes.shardpostctl-message— List, search, show, export, flag, copy and move messages.shardpostctl-migrate— Copy an account from another IMAP server, keeping its identities.shardpostctl-server— Version, state and registrations of ShardPost servers.shardpostctl-sieve— Manage Sieve scripts and test them without side effects.shardpostctl-submission— List and cancel delayed JMAP submissions of an account.shardpostctl-trace— Record the IMAP protocol of one account for a while.shardpostctl— Administrative client for a ShardPost mail server.
Release reports, review rounds and the build-out history stay in the repository; the documentation index links them.