title: Configure memory boxes role: manual tags: #configuration #manual #zettelstore syntax: zmk back: 00001004011200 backward: 00001004011200 box-name: manual copyright: (c) 2020-present by Detlef Stern created: 20220307112918 lang: en license: EUPL-1.2-or-later modified: 20260727185359 published: 20260727185359 visibility: public Most applications should configure the memory box explicitly. Configure the memory box by appending query parameters to the base box URI ''mem:''. The following parameters are supported: |=Parameter|Description|Default value>|Maximum value> |max-bytes|Maximum storage size of the box (in bytes)|65535|1073741824 (1 GiB) |max-zettel|Maximum number of zettel|127|65535 |readonly|Allow only read operations|false|n/a |name|Unique name of the box|n/a|n/a The default values provide reasonable limits for many applications. The number of zettel is usually easy to estimate. The number of bytes is usually more difficult to determine. A zettel requires 6 bytes for its identifier. Each metadata entry additionally requires the lengths of its key and value, plus a one-byte separator. Content contributes its size in bytes. For text content, this is the size of its UTF-8 encoding. If one of the limits is exceeded, Zettelstore returns HTTP status code 507 (Insufficient Storage). The ''readonly'' parameter exists primarily to support the [[''read-only-mode''|00001004010000#read-only-mode]] startup configuration. Since a memory box is initially empty, enabling ''readonly'' effectively prevents the creation or modification of zettel.