{ // The port to listen server on for HTTP, default is 8080. "port": 8080, // The port to listen server on for HTTPs, default is 0 (disabled). Change to 443 if you want to enable it. // You don't need to provide a certificate, it will generate automatically by autocert. "tlsPort": 0, // The build max concurrency, default is `runtime.NumCPU()` "buildConcurrency": 0, // The work directory for the server app, default is "~/.esmd". "workDir": "~/.esmd", // The cache url, default is "memory:default". // You can also implement your own cache by implementing the `Cache` interface // in https://github.com/esm-dev/esm.sh/blob/main/server/storage/cache.go "cache": "memory:default", // The database url, default is "bolt:~/.esmd/esm.db". // You can also implement your own database by implementing the `DataBase` interface // in https://github.com/esm-dev/esm.sh/blob/main/server/storage/db.go "database": "bolt:~/.esmd/esm.db", // The file storage url, default is "local:~/.esmd/storage". // You can also implement your own file storage by implementing the `FileSystem` interface // in https://github.com/esm-dev/esm.sh/blob/main/server/storage/fs.go "storage": "local:~/.esmd/storage", // The log directory, default is "~/.esmd/log". "logDir": "~/.esmd/log", // The log level, default is "info", you can also set it to "debug" to enable debug logs. "logLevel": "info", // The origin of CDN, default is using the origin of the request. // Use to fix origin with reverse proxy, for examle "https://esm.sh" "cdnOrigin": "", // The base path of CDN, default is "/". "cdnBasePath": "/", // The npm registry, default is "https://registry.npmjs.org/". "npmRegistry": "https://registry.npmjs.org/", // The scope applied to the npm registry. This will ensure only packages // with this scope get downloaded from the registry, default is empty. // Default behavior is to fetch all packages from the npm registry. "npmRegistryScope": "@my-scope", // The npm token for private packages, default is empty. "npmToken": "", // These two fields are used for basic authentication towards a private // package registry, default for both is empty. "npmUser": "", "npmPassword": "", // Disable compressing the response, default is false. "noCompress": false, // The auth secret to validate the `Authorization` header of requests, default is no auth. "authSecret": "", // The list to ban some packages or scopes. "banList": { "packages": ["@some_scope/package_name"], "scopes": [{ "name": "@your_scope", "excludes": [ "package_name" ] }] }, // The list to only allow some packages or scopes. "allowList": { "packages": ["@some_scope/package_name"], "scopes": [{ "name": "@your_scope" }] }}