Configuration

This document details all configuration options available in ChronDB.

Configuration File

ChronDB uses an EDN (Extensible Data Notation) configuration file. By default, it looks for a config.edn file in the project's root directory.

Configuration Sections

1. Git (:git)

Git storage related configurations:

:git {
  :committer-name "ChronDB"      ; Name that will appear in commits
  :committer-email "[email protected]"  ; Email that will appear in commits
  :default-branch "main"         ; Main repository branch
  :sign-commits false            ; GPG commit signing
}

Details

  • committer-name: Name used to identify the commit author

  • committer-email: Email used to identify the commit author

  • default-branch: Name of the main branch where changes will be saved

  • sign-commits: If true, commits will be signed with GPG (requires additional setup)

2. Storage (:storage)

Data storage related configurations:

Details

  • data-dir: Directory where documents will be stored

    • Documents are saved in JSON format

    • Directory structure is maintained by Git

    • Absolute paths are recommended in production

3. Logging (:logging)

Logging system configurations:

4. Servers (:servers)

Configuration for different protocols:

Complete Example

Loading Configuration

Best Practices

  1. Development Environment:

    • Use :debug as log level

    • Set :output to :stdout

    • Use relative paths for easier development

  2. Production Environment:

    • Use :info or :warn as log level

    • Set :output to :file

    • Use absolute paths for directories

    • Configure external log rotation

  3. Security:

    • Don't version control config.edn with credentials

    • Use environment variables for sensitive information

    • Restrict configuration file permissions

Last updated