Deployment types 
Since agola is composed of multiple components you can deploy it in many different ways based on your requirements and scaling needs. Here some examples:
Prerequisites 
- A database - PostgreSQL.
- sqlite3 (can be used only for single instance deployments)
 
- An object storage: - A posix shared fs like nfs or cephfs
- A S3 based storage
 
Create a configuration file with the correct entries to your database, objectstorage and components config (see the configuration reference)
High available with N executors 
Start all the management components (except executor) 
agola serve --config ./config-localhost.yml --components all-baseYou can have N instances of all the base components for high availability and scaling (with the current exclusion of the git server used for user direct runs that is currently a single instance so only one of the n started will be used based on the gateway gitserverURL setting in your config file)
Start the executors 
On every "executor" machine:
agola serve --config ./config-localhost.yml --components executor