# GoBinary returns the path to the go binary to use. This value can be a name of a binary in your PATH, or the full path # Defaults to "go" # Env override: GO_BINARY_PATH GoBinary = "go" # GoEnv specifies the type of environment to run. # Supported values are: 'development' and 'production'. Defaults to "development" # Env override: GO_ENV GoEnv = "production" # GoGetWorkers specifies how many times you can concurrently # go mod download, this is so that low performance instances # can manage go get more sanely and not run out of disk or memory. # Env override: ATHENS_GOGET_WORKERS GoGetWorkers = 30 # ProtocolWorkers specifies how many concurrent # requests can you handle at a time for all # download protocol paths. This is different from # GoGetWorkers in that you can potentially serve # 30 requests to the Download Protocol but only 5 # at a time can stash a module from Upstream to Storage. # Env override: ATHENS_PROTOCOL_WORKERS ProtocolWorkers = 30 # LogLevel returns the system's exposure to internal logs. Defaults to debug. # Supports all logrus log levels (https://github.com/Sirupsen/logrus#level-logging) # Env override: ATHENS_LOG_LEVEL LogLevel = "debug" # BuffaloLogLevel returns the log level for logs # emitted by Buffalo itself. This is different from our own # LogLevel in this file because you might want info level # for our codebase, but panic level for buffalo. # Env override: BUFFALO_LOG_LEVEL BuffaloLogLevel = "debug" # CloudRuntime is the Cloud Provider on which the Proxy/Registry is running. # Currently available options are "GCP", or "none". Defaults to "none" # Env override: ATHENS_CLOUD_RUNTIME CloudRuntime = "none" # MaxConcurrency sets maximum level of concurrency # Defaults to number of cores if not specified. # Env override: ATHENS_MAX_CONCURRENCY MaxConcurrency = 4 # The maximum number of failures for jobs submitted to buffalo workers # Defaults to 5. # Env override: ATHENS_MAX_WORKER_FAILS MaxWorkerFails = 5 # The filename for the include exclude filter. Defaults to 'filter.conf' # Env override: ATHENS_FILTER_FILE FilterFile = "filter.conf" # Timeout is the timeout for external network calls in seconds # This value is used as the default for storage backends if they don't specify timeouts # Defaults to 300 # Env override: ATHENS_TIMEOUT Timeout = 300 # EnableCSRFProtection determines whether to enable CSRF protection. # Defaults to false # Env override: ATHENS_ENABLE_CSRF_PROTECTION EnableCSRFProtection = false [Proxy] # StorageType sets the type of storage backend the proxy will use. # Possible values are memory, disk, mongo, gcp, minio # Defaults to memory # Env override: ATHENS_STORAGE_TYPE StorageType = "mongo" # Port sets the port the proxy listens on # Env override: PORT Port = ":3000" # The endpoint for Olympus in case of a proxy cache miss # Env override: OLYMPUS_GLOBAL_ENDPOINT OlympusGlobalEndpoint = "http://localhost:3001" # Redis queue for buffalo workers # Defaults to ":6379" # Env override: ATHENS_REDIS_QUEUE_ADDRESS RedisQueueAddress = ":6379" # Flag to turn off Proxy Filter middleware # Defaults to true # Env override: PROXY_FILTER_OFF FilterOff = true # Username for basic auth # Env override: BASIC_AUTH_USER BasicAuthUser = "" # Password for basic auth # Env override: BASIC_AUTH_PASS BasicAuthPass = "" # Set to true to force an SSL redirect # Env override: PROXY_FORCE_SSL ForceSSL = false # ValidatorHook specifies the endpoint to validate modules against # Not used if left blank or not specified # Env override: ATHENS_PROXY_VALIDATOR ValidatorHook = "" # PathPrefix specifies whether the Proxy # should have a basepath. Certain proxies and services # are distinguished based on subdomain, while others are based # on path prefixes. # Env override: ATHENS_PATH_PREFIX PathPrefix = "" # NETRCPath tells you where the .netrc path initially resides. # This is so that you can mount the .netrc file to a secret location # in the fs system and then move it ~/.netrc. In certain deployments # like Kubernetes, we can't mount directly to ~ because it would then # clean out whatever is already there as part of the image (such as # .cache directory in the Go image). # Env override: ATHENS_NETRC_PATH NETRCPath = "" # TraceExporterURL is the URL to which Athens populates distributed tracing # information such as Jaeger. # Env override: ATHENS_TRACE_EXPORTER TraceExporterURL = "" [Olympus] # StorageType sets the type of storage backend Olympus will use. # Possible values are memory, disk, mongo, postgres, sqlite, cockroach, mysql # Defaults to memory # Env override: ATHENS_STORAGE_TYPE StorageType = "disk" # Port sets the port olympus listens on # Env override: PORT Port = ":3001" # Background worker type. Possible values are memory and redis # Defaults to redis # Env override: OLYMPUS_BACKGROUND_WORKER_TYPE WorkerType = "redis" # Redis queue for buffalo workers # Defaults to ":6379" # Env override: OLYMPUS_REDIS_QUEUE_ADDRESS RedisQueueAddress = ":6379" [Storage] # Only storage backends that are specified in Proxy.StorageType or Olympus.StorageType are required here [Storage.CDN] # Endpoint for CDN storage # Env override: CDN_ENDPOINT Endpoint = "cdn.example.com" # Timeout for networks calls made to the CDN in seconds # Defaults to Global Timeout Timeout = 300 [Storage.Disk] # RootPath is the Athens Disk Root folder # Env override: ATHENS_DISK_STORAGE_ROOT RootPath = "/var/go" [Storage.GCP] # ProjectID to use for GCP Storage # Env overide: GOOGLE_CLOUD_PROJECT ProjectID = "MY_GCP_PROJECT_ID" # Bucket to use for GCP Storage # Env override: ATHENS_STORAGE_GCP_BUCKET Bucket = "MY_GCP_BUCKET" # Timeout for networks calls made to GCP in seconds # Defaults to Global Timeout Timeout = 300 [Storage.Minio] # Endpoint for Minio storage # Env override: ATHENS_MINIO_ENDPOINT Endpoint = "127.0.0.1:9001" # Access Key for Minio storage # Env override: ATHENS_MINIO_ACCESS_KEY_ID Key = "minio" # Secret Key for Minio storage # Env override: ATHENS_MINIO_SECRET_ACCESS_KEY Secret = "minio123" # Timeout for networks calls made to Minio in seconds # Defaults to Global Timeout Timeout = 300 # Enable SSL for Minio connections # Defaults to true # Env override: ATHENS_MINIO_USE_SSL EnableSSL = false # Minio Bucket to use for storage # Defaults to gomods # Env override: ATHENS_MINIO_BUCKET_NAME Bucket = "gomods" [Storage.Mongo] # Full URL for mongo storage # Env override: ATHENS_MONGO_STORAGE_URL URL = "mongodb://mongo:27017" # Path to certificate to use for the mongo connection # Env override: ATHENS_MONGO_CERT_PATH CertPath = "" # Timeout for networks calls made to Mongo in seconds # Defaults to Global Timeout # Env override: MONGO_CONN_TIMEOUT_SEC Timeout = 300