Components configuration
When starting an agola instance it will read its config from the configuration file
WARNING
Since agola is composed of many components that can be distributed you should keep the configuration file in sync between all components
Agola configuration file reference
This is a full commented example (with all the available options):
yaml
gateway:
# The gateway api exposed url to client
apiExposedURL: "https://youragola.com"
# The web interface exposed url to client, usually the same as the api
# exposed url but you can separate the api url from the web url
webExposedURL: "https://youragola.com"
# The run service url (use a load balancer when having multiple run services)
runserviceURL: "http://runservice:4000"
# The config store url (use a load balancer when having multiple run services)
configstoreURL: "http://configstore:4002"
# The agola internal git server url (currently only a single instance is supported)
gitserverURL: "http://gitserver:4003"
# web server config
web:
listenAddress: ":8000"
# use TLS (https)
tls: true
# TLSCert is the path to the pem formatted server certificate. If the
# certificate is signed by a certificate authority, the certFile should be
# the concatenation of the server's certificate, any intermediates, and the
# CA's certificate.
#
tlsCertFile: "/path/to/certfile"
# Server cert private key
#
tlsKeyFile: "/path/to/certkeyfile"
# CORS allowed origins
# Enable if the web ui is on a different host:port than the gateway api
#allowedOrigins: "*"
# token signing configuration
tokenSigning:
# token duration (defaults to 12 hours)
#duration: 12h
# hmac or rsa (if possible use rsa)
method: hmac
# key to use when signing with hmac
key: supersecretsigningkey
# paths to the private and public keys in pem encoding when using rsa signing
#privateKeyPath: /path/to/privatekey.pem
#publicKeyPath: /path/to/public.pem
# cookies signing configuration
cookieSigning:
key: supersecretsigningkey
# use unsecureCookies (use for local testing only over non tls)
# unsecureCookies: false
# admin token, token to use to do super user agola administration
adminToken: "changeme"
scheduler:
runserviceURL: "http://runservice:4000"
notification:
webExposedURL: "https://youragola.com"
runserviceURL: "http://runservice:4000"
configstoreURL: "http://configstore:4002"
db:
type: sqlite3
connString: "/data/agola/notification/db/db"
# type: postgres
# connString: "postgres://@localhost/agola_notification?sslmode=disable"
configstore:
dataDir: /data/agola/configstore
db:
type: sqlite3
connString: "/data/agola/configstore/db/db"
# type: postgres
# connString: "postgres://@localhost/agola_configstore?sslmode=disable"
objectStorage:
# posix based object storage. It requires a shared posix fs like nfs, chepfs etc...
#
#type: posix
#path: /data/agola/configstore/ost
# s3 based object storage
type: s3
# example with minio
endpoint: "http://yourminio:9000"
bucket: configstore
accessKey: minio
secretAccessKey: minio123
web:
listenAddress: ":4002"
runservice:
#debug: true
dataDir: /data/agola/runservice
db:
type: sqlite3
connString: "/data/agola/runservice/db/db"
# type: postgres
# connString: "postgres://@localhost/agola_runservice?sslmode=disable"
objectStorage:
# posix based object storage. It requires a shared posix fs like nfs, chepfs etc...
#
#type: posix
#path: /data/agola/configstore/ost
# s3 based object storage
type: s3
# example with minio
endpoint: "http://yourminio:9000"
bucket: configstore
accessKey: minio
secretAccessKey: minio123
web:
listenAddress: ":4000"
executor:
# local data directory
dataDir: /data/agola/executor
# The directory containing the toolbox compiled for the various supported architectures
toolboxPath: ./bin
runserviceURL: "http://runservice:4000"
web:
listenAddress: ":4001"
activeTasksLimit: 2
driver:
type: docker
# allow to run privileged containers
allowPrivilegedContainers: false
# initial image used by the task setup phase. By default it'll be
# busybox:stable (on dockerhub), to avoid possible pull errors due to
# dockerhub limits you can define your own custom init image (it must be a
# busybox like image) and optional registry authentication.
initImage:
image: "busybox:stable"
#auth:
# auth type: basic or encodedauth
#type: "basic"
#
# basic auth
#username: "username"
#password: "password"
#
# encoded auth string
#auth: "..."
gitserver:
# local data directory
dataDir: /data/agola/gitserver
gatewayURL: "https://youragola.com"
web:
listenAddress: ":4003"