Initial
This commit is contained in:
commit
05cb8b0129
3 changed files with 241 additions and 0 deletions
7
Dockerfile
Normal file
7
Dockerfile
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
FROM golang:1.11-alpine
|
||||||
|
RUN apk update && \
|
||||||
|
apk upgrade && \
|
||||||
|
apk add git
|
||||||
|
RUN go get -u github.com/gomods/athens/cmd/proxy
|
||||||
|
COPY ./config.toml .
|
||||||
|
CMD ["proxy", "-config_file", "config.toml"]
|
219
config.toml
Normal file
219
config.toml
Normal file
|
@ -0,0 +1,219 @@
|
||||||
|
# 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
|
15
docker-compose.yml
Normal file
15
docker-compose.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
version: "3.3"
|
||||||
|
services:
|
||||||
|
proxy:
|
||||||
|
build: .
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
configs:
|
||||||
|
- proxy_config
|
||||||
|
mongo:
|
||||||
|
image: mongo:3.7.9-jessie
|
||||||
|
configs:
|
||||||
|
proxy_config:
|
||||||
|
file: ./config.toml
|
Loading…
Reference in a new issue