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):

  1. gateway:
  2. # The gateway api exposed url to client
  3. apiExposedURL: "https://youragola.com"
  4. # The web interface exposed url to client, usually the same as the api
  5. # exposed url but you can separate the api url from the web url
  6. webExposedURL: "https://youragola.com"
  7. # The run service url (use a load balancer when having multiple run services)
  8. runserviceURL: "http://runservice:4000"
  9. # The config store url (use a load balancer when having multiple run services)
  10. configstoreURL: "http://configstore:4002"
  11. # The agola internal git server url (currently only a single instance is supported)
  12. gitserverURL: "http://gitserver:4003"
  13. # web server config
  14. web:
  15. listenAddress: ":8000"
  16. # use TLS (https)
  17. tls: true
  18. # TLSCert is the path to the pem formatted server certificate. If the
  19. # certificate is signed by a certificate authority, the certFile should be
  20. # the concatenation of the server's certificate, any intermediates, and the
  21. # CA's certificate.
  22. #
  23. tlsCertFile: "/path/to/certfile"
  24. # Server cert private key
  25. #
  26. tlsKeyFile: "/path/to/certkeyfile"
  27. # CORS allowed origins
  28. # Enable if the web ui is on a different host:port than the gateway api
  29. #allowedOrigins: "*"
  30. # token signing configuration
  31. tokenSigning:
  32. # token duration (defaults to 12 hours)
  33. #duration: 12h
  34. # hmac or rsa (if possible use rsa)
  35. method: hmac
  36. # key to use when signing with hmac
  37. key: supersecretsigningkey
  38. # paths to the private and public keys in pem encoding when using rsa signing
  39. #privateKeyPath: /path/to/privatekey.pem
  40. #publicKeyPath: /path/to/public.pem
  41. # admin token, token to use to do super user agola administration
  42. adminToken: "changeme"
  43. scheduler:
  44. runserviceURL: "http://runservice:4000"
  45. notification:
  46. webExposedURL: "https://youragola.com"
  47. runserviceURL: "http://runservice:4000"
  48. configstoreURL: "http://configstore:4002"
  49. # etcd client configuration
  50. etcd:
  51. endpoints: "http://youretcd:2379"
  52. # etc client tls config
  53. #tlsCertFile
  54. #tlsKeyFile
  55. #tlsCAFile
  56. #tlsSkipVerify
  57. configstore:
  58. dataDir: /data/agola/configstore
  59. etcd:
  60. endpoints: "http://localhost:2379"
  61. objectStorage:
  62. # posix based object storage. It requires a shared posix fs like nfs, chepfs etc...
  63. #
  64. #type: posix
  65. #path: /data/agola/configstore/ost
  66. # s3 based object storage
  67. type: s3
  68. # example with minio
  69. endpoint: "http://yourminio:9000"
  70. bucket: configstore
  71. accessKey: minio
  72. secretAccessKey: minio123
  73. web:
  74. listenAddress: ":4002"
  75. runservice:
  76. #debug: true
  77. dataDir: /data/agola/runservice
  78. etcd:
  79. endpoints: "http://localhost:2379"
  80. objectStorage:
  81. # posix based object storage. It requires a shared posix fs like nfs, chepfs etc...
  82. #
  83. #type: posix
  84. #path: /data/agola/configstore/ost
  85. # s3 based object storage
  86. type: s3
  87. # example with minio
  88. endpoint: "http://yourminio:9000"
  89. bucket: configstore
  90. accessKey: minio
  91. secretAccessKey: minio123
  92. web:
  93. listenAddress: ":4000"
  94. executor:
  95. # local data directory
  96. dataDir: /data/agola/executor
  97. # The directory containing the toolbox compiled for the various supported architectures
  98. toolboxPath: ./bin
  99. runserviceURL: "http://runservice:4000"
  100. web:
  101. listenAddress: ":4001"
  102. activeTasksLimit: 2
  103. driver:
  104. type: docker
  105. # allow to run privileged containers
  106. allowPrivilegedContainers: false
  107. gitserver:
  108. # local data directory
  109. dataDir: /data/agola/gitserver
  110. gatewayURL: "https://youragola.com"
  111. web:
  112. listenAddress: ":4003"