Running the daemon¶
secantusd-rs --host 127.0.0.1 --port 27017 --storage-path ./secantus-data
The daemon prints secantusd-rs listening on <host>:<port> once the accept
loop is up (launchers can parse that line), runs until SIGINT/SIGTERM, and
shuts WiredTiger down cleanly on exit. --port 0 binds an OS-assigned
port. Bad arguments exit 2; --help / --version exit 0.
CLI flags¶
Both --flag value and --flag=value spellings work.
Flag |
Meaning |
Default |
|---|---|---|
|
Explicit |
auto-discovered |
|
Bind address |
|
|
TCP port ( |
|
|
WiredTiger home directory (created if absent) |
|
|
|
|
|
WiredTiger cache, unit-suffixed ( |
|
|
Max concurrent WiredTiger sessions (≈ client connections) |
|
|
fsync every commit (closes the |
off |
|
Require SCRAM authentication on every non-handshake command |
off |
|
Advertise a plain standalone |
off |
|
Periodic oplog no-op so cluster time advances while idle (mongod default is 10s) |
|
|
Oplog retention window |
|
|
Oplog entry cap (whichever cap hits first prunes oldest) |
|
|
Archive pruned oplog rows for point-in-time recovery beyond the live window |
off |
|
Server certificate (PEM); pair with |
off |
|
Server private key (PEM) |
off |
|
Client-cert CA bundle — turns on mTLS verification |
off |
|
Reject clients that present no certificate |
off |
TLS pairing rules are enforced: setting one of cert-file / key-file
without the other is a startup error, and the client-cert flags are only
meaningful with server TLS configured. See Security.
Configuration file¶
Both MongoDB-wire daemons (secantusd-py and secantusd-rs) read the same
secantusd.toml, discovered in order:
./secantusd.toml(per-checkout / per-cwd)~/.secantus/secantusd.toml(per-user)/etc/secantus/secantusd.toml(system-wide)
or passed explicitly with --config. Every key is optional; explicit CLI
flags override the file. The sections mirror the flags:
[server]
host = "127.0.0.1"
port = 27017
storage_path = "./secantus-data"
log_level = "INFO"
auth = false
standalone = false
[oplog]
retention_seconds = 3600.0
max_entries = 100000
noop_heartbeat_seconds = 0.0
# archive_dir = "/var/lib/secantus/pitr-archive"
[storage]
cache_size = "1G"
session_max = 1000
sync_on_commit = false
# [tls]
# cert_file = "/etc/letsencrypt/live/db.example.com/fullchain.pem"
# key_file = "/etc/letsencrypt/live/db.example.com/privkey.pem"
# ca_file = "/etc/ssl/client-ca.crt"
# require_client_cert = false
The annotated example ships as secantusd.toml.example in the repository
root. (The legacy secantusdb.toml filename is still auto-discovered at
each location.)
Topology persona¶
By default the server advertises itself in hello as the primary of a
single-node secantus replica set — a deliberate fiction that makes
drivers’ topology machinery accept change streams. There are no other
members and no elections. --standalone switches to a plain standalone
hello for tests and drivers that behave differently against replica
sets (the Java driver’s getSecondary() helper, for example, spins
forever against a replica-set persona with no secondary).