midb(8gx)

πŸ“¦
version 3.6 Β· 2 versions
, in alpine 3.24

πŸŽ€ NAME πŸŽ€

okay so bestie, meet midb(8gx) β€” the Message Index database daemon, straight out of the Gromox admin reference. It’s giving backend main character energy, and honestly? Iconic. ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

midb [-c config]

🌸 DESCRIPTION 🌸

So midb is the daemon that imap(8gx) and pop3(8gx) rely on to generate and keep track of folder and message summaries. No cap, it’s doing the quiet work behind the scenes. πŸ’…

Specifically, it enumerates messages to give them their IMAP UID and to have a suitable UIDNEXT value ready for folders at all times. It also caches the Message-Id, modification date, message flags, subject and sender to facilitate IMAP listings. The way it just keeps track of everything? Obsessed. 🫢


✨ OPTIONS ✨

  • -c config β€” read configuration directives from the given file. If this option is not specified, /etc/gromox/gromox.cfg and /etc/gromox/midb.cfg will be read.
  • --version β€” output version information and exit. slay, short and sweet.
  • -? β€” display option summary. little helper behavior, we love to see it.
All time-based command-line options and configuration file directives are subject to the syntax described in gromox(7), section "Duration specifications". So yeah, go read that if you’re setting any timey-wimey values. πŸ•°οΈ

🧚 CONFIGURATION DIRECTIVES (gromox.cfg) 🧚

The following directives are recognized when reading from /etc/gromox/gromox.cfg, or when the -c option is used to specify a custom file:

  • daemons_fd_limit β€” in gromox-midb, this is treated as an alias for midb_fd_limit.
  • midb_fd_limit β€” request that the file descriptor table be at least this large. The magic value 0 indicates that the system default hard limit (rlim_max, cf. setrlimit(2)) should be used. Default: 0
  • midb_listen β€” a space-separated list of bind address specifiers to expose the MIDB service on. Default: [::1]:5555

🌈 CONFIGURATION DIRECTIVES (midb.cfg) 🌈

The following directives are recognized when reading from /etc/gromox/midb.cfg, or when the -c option is used to specify a custom file:

  • config_file_path β€” colon-separated list of directories which will be scanned when locating further configuration files, especially those used by subcomponent instances. For example, mysql_adaptor(4gx) would be directed to look at /etc/gromox/midb/mysql_adaptor.cfg before /etc/gromox/mysql_adaptor.cfg. Default: /etc/gromox/midb:/etc/gromox
  • data_file_path β€” colon-separated list of directories which will be scanned when locating data files. Default: /usr/share/gromox/midb
  • midb_cache_interval β€” the time after the last use of a particular midb.sqlite3 that the sqlite gets unloaded. Default: 30minutes
  • midb_cmd_debug β€” log every incoming MIDB command and the return code of the operation in a minimal fashion to stderr (not midb_log_file!). Level 1 emits commands with a failure return code, level 2 emits all commands. Logs are written to stderr only. Default: 0
  • midb_hosts_allow β€” a space-separated list of individual host addresses that are allowed to converse with the midb service. The addresses must conform to gromox(7) Β§ "Host addresses". No networks and no CIDR notations are permitted. This option deprecates the /etc/gromox/midb_acl.txt file used before Gromox 2.8. Default: ::1
  • midb_listen_ip β€” deprecated in favor of gromox.cfg:midb_listen.
  • midb_listen_port β€” deprecated in favor of gromox.cfg:midb_listen.
  • midb_log_file β€” target for log messages here. Special values: "-" (stderr/syslog depending on parent PID) or "syslog" are recognized. Default: - (auto)
  • midb_log_level β€” maximum verbosity of logging. 1=crit, 2=error, 3=warn, 4=notice, 5=info, 6=debug. Default: 4 (notice)
  • midb_reload_interval β€” the time after a midb.sqlite3 was first loaded that it will be unloaded. Default: 60min
  • midb_schema_upgrades β€” this directive controls whether database schemas are automatically upgraded when a message index database (midb.sqlite) is loaded. During this time, that DB is unavailable and operations on it will be delayed. Connection aborts, if any, would be due to timeouts in components other than midb. The file can temporarily grow to double its size, so ample disk space may be required. Default: yes
  • midb_table_size β€” the page only gives the default here: 5000
  • midb_threads_num β€” the exact number of client processing threads to keep around. This also controls the maximum number of concurrent connections by external clients towards midb. Default: 100
  • rpc_proxy_connection_num β€” for every exmdb server in exmdb_list.txt, establish and keep this many outbound connections for sending commands. There is at most one additional connection, for async notification, alive per server. Default: 10
  • sqlite_debug β€” if set to 1, every query given to SQLite prepare/execute is logged. If set to 0, only failed queries are logged. It cannot be made completely silent, since our queries ought to never fail. Default: 0
  • x500_org_name β€” Default: (unspecified)
⚠️ heads up on midb_schema_upgrades: while schemas are being automatically upgraded, that DB is unavailable and operations on it will be delayed. Connection aborts, if any, would be due to timeouts in components other than midb. Also the file can temporarily grow to double its size, so bestie, make sure there’s ample disk space. πŸ’€

πŸ“ FILES πŸ“

  • config_file_path/exmdb_list.txt: exmdb multiserver selection map.

🌟 SEE ALSO 🌟


source/version: Gromox Β· manual: midb(8gx) Β· date: no date shown on this page β€” and that’s the whole vibe, bestie. πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from