# Agent configuration Agents are configured by the command line or environment variables. At the minimum you need the following information: ```yaml # docker-compose.yml version: '3' services: woodpecker-agent: [...] environment: + - WOODPECKER_SERVER=localhost:9000 + - WOODPECKER_AGENT_SECRET="your-shared-secret-goes-here" ``` The following are automatically set and can be overridden: - WOODPECKER_HOSTNAME if not set, becomes the OS' hostname - WOODPECKER_MAX_PROCS if not set, defaults to 1 ## Processes per agent By default the maximum processes that are run per agent is 1. If required you can add `WOODPECKER_MAX_PROCS` to increase your parallel processing on a per-agent basis. ```yaml # docker-compose.yml version: '3' services: woodpecker-agent: [...] environment: - WOODPECKER_SERVER=localhost:9000 - WOODPECKER_AGENT_SECRET="your-shared-secret-goes-here" + - WOODPECKER_MAX_PROCS=4 ``` ## Filtering agents When building your pipelines as long as you have set the platform or filter, builds can be made to only run code on certain agents. ``` - WOODPECKER_HOSTNAME=mycompany-ci-01.example.com - WOODPECKER_FILTER= ``` ### Filter on Platform Only want certain pipelines or steps to run on certain agents with specific platforms? Such as arm vs amd64? ```yaml # .woodpecker.yml pipeline: build: image: golang commands: - go build - go test when: platform: linux/amd64 testing: image: golang commands: - go build - go test when: platform: linux/arm* ``` See [Conditionals Pipeline](../20-usage/20-pipeline-syntax.md#step-when---conditional-execution) syntax for more ## All agent configuration options Here is the full list of configuration options and their default variables. ### `WOODPECKER_SERVER` > Default: `localhost:9000` Configures gRPC address of the server. ### `WOODPECKER_USERNAME` > Default: `x-oauth-basic` The gRPC username. ### `WOODPECKER_AGENT_SECRET` > Default: empty A shared secret used by server and agents to authenticate communication. A secret can be generated by `openssl rand -hex 32`. ### `WOODPECKER_LOG_LEVEL` > Default: empty Configures the logging level. Possible values are `trace`, `debug`, `info`, `warn`, `error`, `fatal`, `panic`, `disabled` and empty. ### `WOODPECKER_DEBUG_PRETTY` > Default: `false` Enable pretty-printed debug output. ### `WOODPECKER_DEBUG_NOCOLOR` > Default: `true` Disable colored debug output. ### `WOODPECKER_HOSTNAME` > Default: empty Configures the agent hostname. ### `WOODPECKER_MAX_PROCS` > Default: `1` Configures the number of parallel builds. ### `WOODPECKER_HEALTHCHECK` > Default: `true` Enable healthcheck endpoint. ### `WOODPECKER_KEEPALIVE_TIME` > Default: empty After a duration of this time of no activity, the agent pings the server to check if the transport is still alive. ### `WOODPECKER_KEEPALIVE_TIMEOUT` > Default: `20s` After pinging for a keepalive check, the agent waits for a duration of this time before closing the connection if no activity. ### `WOODPECKER_GRPC_SECURE` > Default: `false` Configures if the connection to `WOODPECKER_SERVER` should be made using a secure transport. ### `WOODPECKER_GRPC_VERIFY` > Default: `true` Configures if the gRPC server certificate should be verified, only valid when `WOODPECKER_GRPC_SECURE` is `true`. ### `WOODPECKER_BACKEND` > Default: `auto-detect` Configures the backend engine to run pipelines on. Possible values are `auto-detect` or `docker`.