{
  "app": {
    "name": "Linagora ESN"
  },
  "webserver": {
    "enabled": true,
    "debugPort": 8081,

    "ip": "0.0.0.0",
    "ipv6": "::",
    "port": 8080,

    "ssl_ip": "0.0.0.0",
    "ssl_ipv6": "::",
    "ssl_port": 8443,
    "ssl_key": "config/ssl.key",
    "ssl_cert": "config/ssl.crt",

    "virtualhosts": [],
    "startupBufferTimeout": 5000
  },
  "wsserver": {
    "enabled": true,
    "port": 8080
  },
  "db": {
    "reconnectOnConfigurationChange": true,
    "forceReconnectOnDisconnect": true,
    "attemptsLimit": 100
  },
  "log": {
    "file": {
      "enabled": false,
      "filename": "./log/application.log",
      "level": "info",
      "handleExceptions": true,
      "json": false,
      "prettyPrint": true,
      "colorize": false
    },
    "rotate": {
      "enabled": true,
      "dirname": "log",
      "filename": "application-%DATE%.log",
      "zippedArchive": true,
      "datePattern": "YYYY-MM-DD",
      "maxSize": "10m",
      "maxFiles": null,
      "level": "debug",
      "handleExceptions": true,
      "json": true,
      "prettyPrint": true,
      "colorize": false
    },
    "console": {
      "enabled": true,
      "level": "debug",
      "debugStdout": true,
      "handleExceptions": true,
      "json": false,
      "prettyPrint": false,
      "colorize": true
    },
    "elasticsearch": {
      "enabled": false,
      "level": "error",
      "ensureMappingTemplate": true,
      "extraFields": {},
      "clientOpts": {
        "hosts": ["http://localhost:5200"],
        "httpAuth": "elastic:changeme"
      },
      "indexPrefix": "logs",
      "mappingTemplate": {
        "index_patterns": "logs-*",
        "settings": {
          "number_of_shards": 1,
          "number_of_replicas": 0,
          "index": {
            "refresh_interval": "5s"
          }
        },
        "mappings": {
          "_doc": {
            "_source": { "enabled": true },
            "properties": {
              "@timestamp": { "type": "date" },
              "@version": { "type": "keyword" },
              "message": { "type": "text", "index": true },
              "severity": { "type": "keyword", "index": true },
              "fields": {
                "dynamic": true,
                "properties": {}
              },
              "stacktrace": {
                "dynamic": true,
                "properties": {}
              }
            }
          }
        }
      }
    }
  },
  "auth": {
    "strategies": ["mongo-ldap", "local", "mongo"],
    "apiStrategies": ["basic-mongo-ldap", "basic-mongo", "bearer", "jwt"]
  },
  "modules": [
    "linagora.esn.account",
    "linagora.esn.appstore",
    "linagora.esn.calendar",
    "linagora.esn.contact",
    "linagora.esn.contact.google",
    "linagora.esn.contact.import",
    "linagora.esn.contact.import.twitter",
    "linagora.esn.contact.import.google",
    "linagora.esn.contact.twitter",
    "linagora.esn.core.webserver",
    "linagora.esn.core.wsserver",
    "linagora.esn.cron",
    "linagora.esn.davproxy",
    "linagora.esn.davserver",
    "linagora.esn.dav.import",
    "linagora.esn.digest.daily",
    "linagora.esn.jobqueue",
    "linagora.esn.graceperiod",
    "linagora.esn.messaging.email",
    "linagora.esn.oauth.consumer",
    "linagora.esn.profile",
    "linagora.esn.user.status",
    "linagora.esn.controlcenter",
    "linagora.esn.unifiedinbox",
    "linagora.esn.unifiedinbox.james",
    "linagora.esn.admin",
    "linagora.esn.sync",
    "linagora.esn.contact.collect",
    "linagora.esn.calendar.collect.email",
    "linagora.esn.resource",
    "linagora.esn.james",
    "linagora.esn.group",
    "linagora.esn.chat"
  ],
  "email": {
    "templatesDir": "./templates/email"
  }
}
