{
  "//": "Example of configuration for metrics web instance",
  "//": "====================================================================",

  "token": "MY GITHUB API TOKEN",  "//": "GitHub Personal Token (required)",
  "restricted": [],                "//": "Authorized users (empty to disable)",
  "maxusers": 0,                   "//": "Maximum users, (0 to disable)",
  "cached": 3600000,               "//": "Cache time rendered metrics (0 to disable)",
  "ratelimiter": null,             "//": "Rate limiter (see express-rate-limit documentation)",
  "port": 3000,                    "//": "Listening port",
  "optimize": true,                "//": "SVG optimization",
  "debug": false,                  "//": "Debug logs",
  "debug.headless": false,         "//": "Debug puppeteer process",
  "mocked": false,                 "//": "Use mocked data instead of live APIs (use 'force' to use mocked token even if real token are defined)",
  "repositories": 100,             "//": "Number of repositories to use",
  "padding": ["16", "24 + 6.75%"], "//": "Image padding (default)",
  "hosted": {
    "by": "",                      "//": "Web instance host (displayed in footer)",
    "link": "",                    "//": "Web instance host link (displayed in footer)"
  },
  "community": {
    "templates": [],               "//": "Additional community templates to setup"
  },
  "templates": {
    "default": "classic",          "//": "Default template",
    "enabled": [],                 "//": "Enabled templates (empty to enable all)"
  },
  "extras": {
    "default": false,              "//": "Default extras state (advised to let 'false' unless in debug mode)",
    "css": false,                  "//": "Allow use of 'extras.css' option"
  },
  "plugins.default": false,        "//": "Default plugin state (advised to let 'false' unless in debug mode)",
  "plugins": {                     "//": "Global plugin configuration",
    <% for (const name of Object.keys(plugins).filter(v => !["base", "core"].includes(v))) { -%>
"<%= name %>":{
      <%- JSON.stringify(Object.fromEntries(Object.entries(plugins[name].inputs).filter(([key, {type}]) => type === "token").map(([key, {description:value}]) => [key.replace(new RegExp(`^plugin_${name}_`), ""), value])), null, 6).replace(/^[{]/gm, "").replace(/^\s*[}]$/gm, "").replace(/": "/gm, `${'": null,'.padEnd(22)} "//":"`).replace(/"$/gm, '",').trimStart().replace(/\n$/gm, "\n      ") %>"enabled": false,            "//": "<%= plugins[name].inputs[`plugin_${name}`].description %>"
    },
    <% } %>"//": ""
  }
}