captainVersion: 4 services: $$cap_appname: caproverExtra: containerHttpPort: '8000' image: woodpeckerci/woodpecker-server:$$cap_woodpecker_version hostname: $$cap_appname.$$cap_root_domain volumes: - $$cap_appname-server:/var/lib/woodpecker environment: WOODPECKER_LOG_LEVEL: $$cap_WOODPECKER_LOG_LEVEL WOODPECKER_DEBUG_PRETTY: $$cap_WOODPECKER_DEBUG_PRETTY WOODPECKER_DEBUG_NOCOLOR: $$cap_WOODPECKER_DEBUG_NOCOLOR WOODPECKER_HOST: $$cap_WOODPECKER_HOST WOODPECKER_ADMIN: $$cap_WOODPECKER_ADMIN WOODPECKER_ORGS: $$cap_WOODPECKER_ORGS WOODPECKER_REPO_OWNERS: $$cap_WOODPECKER_REPO_OWNERS WOODPECKER_OPEN: $$cap_WOODPECKER_OPEN WOODPECKER_DOCS: $$cap_WOODPECKER_DOCS WOODPECKER_AUTHENTICATE_PUBLIC_REPOS: $$cap_WOODPECKER_AUTHENTICATE_PUBLIC_REPOS WOODPECKER_DEFAULT_CLONE_IMAGE: $$cap_WOODPECKER_DEFAULT_CLONE_IMAGE WOODPECKER_SESSION_EXPIRES: $$cap_WOODPECKER_SESSION_EXPIRES WOODPECKER_ESCALATE: $$cap_WOODPECKER_ESCALATE WOODPECKER_DOCKER_CONFIG: $$cap_WOODPECKER_DOCKER_CONFIG WOODPECKER_AGENT_SECRET: $$cap_WOODPECKER_AGENT_SECRET WOODPECKER_KEEPALIVE_MIN_TIME: $$cap_WOODPECKER_KEEPALIVE_MIN_TIME WOODPECKER_DATABASE_DRIVER: $$cap_WOODPECKER_DATABASE_DRIVER WOODPECKER_DATABASE_DATASOURCE: $$cap_WOODPECKER_DATABASE_DATASOURCE WOODPECKER_PROMETHEUS_AUTH_TOKEN: $$cap_WOODPECKER_PROMETHEUS_AUTH_TOKEN WOODPECKER_STATUS_CONTEXT: $$cap_WOODPECKER_STATUS_CONTEXT WOODPECKER_LIMIT_MEM_SWAP: $$cap_WOODPECKER_LIMIT_MEM_SWAP WOODPECKER_LIMIT_MEM: $$cap_WOODPECKER_LIMIT_MEM_USED WOODPECKER_LIMIT_SHM_SIZE: $$cap_WOODPECKER_LIMIT_SHM_SIZE WOODPECKER_LIMIT_CPU_QUOTA: $$cap_WOODPECKER_LIMIT_CPU_QUOTA WOODPECKER_LIMIT_CPU_SHARES: $$cap_WOODPECKER_LIMIT_CPU_SHARES WOODPECKER_LIMIT_CPU_SET: $$cap_WOODPECKER_LIMIT_CPU_SET WOODPECKER_GITHUB: $$cap_WOODPECKER_GITHUB_ENABLED WOODPECKER_GITHUB_URL: $$cap_WOODPECKER_GITHUB_URL WOODPECKER_GITHUB_CLIENT: $$cap_WOODPECKER_GITHUB_CLIENT WOODPECKER_GITHUB_SECRET: $$cap_WOODPECKER_GITHUB_SECRET WOODPECKER_GITHUB_MERGE_REF: $$cap_WOODPECKER_GITHUB_MERGE_REF WOODPECKER_GITHUB_SKIP_VERIFY: $$cap_WOODPECKER_GITHUB_SKIP_VERIFY WOODPECKER_GOGS: $$cap_WOODPECKER_GOGS_ENABLED WOODPECKER_GOGS_URL: $$cap_WOODPECKER_GOGS_URL WOODPECKER_GOGS_GIT_USERNAME: $$cap_WOODPECKER_GOGS_GIT_USERNAME WOODPECKER_GOGS_GIT_PASSWORD: $$cap_WOODPECKER_GOGS_GIT_PASSWORD WOODPECKER_GOGS_PRIVATE_MODE: $$cap_WOODPECKER_GOGS_PRIVATE_MODE WOODPECKER_GOGS_SKIP_VERIFY: $$cap_WOODPECKER_GOGS_SKIP_VERIFY WOODPECKER_GITEA: $$cap_WOODPECKER_GITEA_ENABLED WOODPECKER_GITEA_URL: $$cap_WOODPECKER_GITEA_URL WOODPECKER_GITEA_CLIENT: $$cap_WOODPECKER_GITEA_CLIENT WOODPECKER_GITEA_SECRET: $$cap_WOODPECKER_GITEA_SECRET WOODPECKER_GITEA_SKIP_VERIFY: $$cap_WOODPECKER_GITEA_SKIP_VERIFY WOODPECKER_BITBUCKET: $$cap_WOODPECKER_BITBUCKET_ENABLED WOODPECKER_BITBUCKET_CLIENT: $$cap_WOODPECKER_BITBUCKET_CLIENT WOODPECKER_BITBUCKET_SECRET: $$cap_WOODPECKER_BITBUCKET_SECRET WOODPECKER_STASH: $$cap_WOODPECKER_STASH_ENABLED WOODPECKER_STASH_URL: $$cap_WOODPECKER_STASH_URL WOODPECKER_STASH_CONSUMER_KEY: $$cap_WOODPECKER_STASH_CONSUMER_KEY WOODPECKER_STASH_CONSUMER_RSA: $$cap_WOODPECKER_STASH_CONSUMER_RSA_PATH WOODPECKER_STASH_CONSUMER_RSA_STRING: $$cap_WOODPECKER_STASH_CONSUMER_RSA_STRING WOODPECKER_STASH_GIT_USERNAME: $$cap_WOODPECKER_STASH_GIT_USERNAME WOODPECKER_STASH_GIT_PASSWORD: $$cap_WOODPECKER_STASH_GIT_PASSWORD WOODPECKER_STASH_SKIP_VERIFY: $$cap_WOODPECKER_STASH_SKIP_VERIFY WOODPECKER_GITLAB: $$cap_WOODPECKER_GITLAB_ENABLED WOODPECKER_GITLAB_URL: $$cap_WOODPECKER_GITLAB_URL WOODPECKER_GITLAB_CLIENT: $$cap_WOODPECKER_GITLAB_CLIENT WOODPECKER_GITLAB_SECRET: $$cap_WOODPECKER_GITLAB_SECRET WOODPECKER_GITLAB_SKIP_VERIFY: $$cap_WOODPECKER_GITLAB_SKIP_VERIFY WOODPECKER_CODING: $$cap_WOODPECKER_CODING_ENABLED WOODPECKER_CODING_URL: $$cap_WOODPECKER_CODING_URL WOODPECKER_CODING_CLIENT: $$cap_WOODPECKER_CODING_CLIENT WOODPECKER_CODING_SECRET: $$cap_WOODPECKER_CODING_SECRET WOODPECKER_CODING_SCOPE: $$cap_WOODPECKER_CODING_SCOPE WOODPECKER_CODING_GIT_MACHINE: $$cap_WOODPECKER_CODING_GIT_MACHINE WOODPECKER_CODING_GIT_USERNAME: $$cap_WOODPECKER_CODING_GIT_USERNAME WOODPECKER_CODING_GIT_PASSWORD: $$cap_WOODPECKER_CODING_GIT_PASSWORD WOODPECKER_CODING_SKIP_VERIFY: $$cap_WOODPECKER_CODING_SKIP_VERIFY $$cap_appname-agent: caproverExtra: notExposeAsWebApp: 'true' dockerfileLines: - FROM woodpeckerci/woodpecker-agent:$$cap_woodpecker_version - CMD ["agent"] depends_on: - $$cap_appname volumes: - /var/run/docker.sock:/var/run/docker.sock environment: WOODPECKER_SERVER: srv-captain--$$cap_appname:9000 WOODPECKER_USERNAME: $$cap_WOODPECKER_USERNAME WOODPECKER_AGENT_SECRET: $$cap_WOODPECKER_AGENT_SECRET WOODPECKER_LOG_LEVEL: $$cap_WOODPECKER_LOG_LEVEL WOODPECKER_DEBUG_PRETTY: $$cap_WOODPECKER_DEBUG_PRETTY WOODPECKER_DEBUG_NOCOLOR: $$cap_WOODPECKER_DEBUG_NOCOLOR WOODPECKER_HOSTNAME: $$cap_WOODPECKER_AGENT_HOSTNAME WOODPECKER_MAX_PROCS: $$cap_WOODPECKER_MAX_PROCS WOODPECKER_HEALTHCHECK: $$cap_WOODPECKER_HEALTHCHECK WOODPECKER_KEEPALIVE_TIME: $$cap_WOODPECKER_KEEPALIVE_TIME_SETTING WOODPECKER_KEEPALIVE_TIMEOUT: $$cap_WOODPECKER_KEEPALIVE_TIMEOUT WOODPECKER_GRPC_SECURE: $$cap_WOODPECKER_GRPC_SECURE WOODPECKER_GRPC_VERIFY: $$cap_WOODPECKER_GRPC_VERIFY WOODPECKER_BACKEND: $$cap_WOODPECKER_BACKEND caproverOneClickApp: displayName: Woodpecker description: Simple CI engine with great extensibility. It runs your pipelines inside Docker containers. isOfficial: true documentation: See https://woodpecker-ci.org instructions: start: |- Woodpecker is a simple CI engine with great extensibility. It is a community fork of the Drone CI system. It runs your pipelines inside Docker containers, so if you are already using them in your daily workflow, you'll love Woodpecker for sure. You should set up `WOODPECKER_HOST` and at least one version control system (e.g. `WOODPECKER_GITEA` for Gitea or `WOODPECKER_GITHUB` for GitHub etc.). end: > Woodpecker has been successfully deployed! It might take few moments before it's fully started. You can access it at http://$$cap_appname.$$cap_root_domain variables: - id: $$cap_woodpecker_version label: Version Tag description: Check out their Docker Hub page for the valid tags https://hub.docker.com/r/woodpeckerci/woodpecker-server/tags defaultValue: pull_1209 validRegex: "/^([^\\s^\\/])+$/" - id: $$cap_WOODPECKER_LOG_LEVEL label: Logging Level defaultValue: error description: Configures the logging level. Possible values are trace, debug, info, warn, error, fatal, panic, disabled and empty. - id: $$cap_WOODPECKER_DEBUG_PRETTY label: Pretty-Printed Debug Output description: Enable pretty-printed debug output. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_DEBUG_NOCOLOR label: Colored Debug Output description: Disable colored debug output. defaultValue: 'true' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_HOST label: Host description: |- Server fully qualified url of the user-facing hostname. Example: http://woodpecker.example.org - id: $$cap_WOODPECKER_ADMIN label: Admin Accounts description: |- Comma-separated list of admin accounts. Example: user1,user2 - id: $$cap_WOODPECKER_ORGS label: Approved Organizations description: |- Comma-separated list of approved organizations. Example: org1,org2 - id: $$cap_WOODPECKER_REPO_OWNERS label: Syncable Repository Owners description: |- Comma-separated list of syncable repo owners. Example: user1,user2 - id: $$cap_WOODPECKER_OPEN label: User Registration description: Enable to allow user registration. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_DOCS label: Link To Documentation description: Link to documentation in the UI. defaultValue: https://woodpecker-ci.org/ validRegex: /.{1,}/ - id: $$cap_WOODPECKER_AUTHENTICATE_PUBLIC_REPOS label: Authenticate Cloning Of Public Repositories description: Always use authentication to clone repositories even if they are public. Needed if the SCM requires to always authenticate as used by many companies. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_DEFAULT_CLONE_IMAGE label: Repository Cloning Docker Image description: The default docker image to be used when cloning the repo defaultValue: woodpeckerci/plugin-git:latest validRegex: /.{1,}/ - id: $$cap_WOODPECKER_SESSION_EXPIRES label: Session Expiration Time description: Configures the session expiration time. defaultValue: 72h validRegex: /.{1,}/ - id: $$cap_WOODPECKER_ESCALATE label: Privileged Mode Images description: Docker images to run in privileged mode. Only change if you are sure what you do! defaultValue: plugins/docker,plugins/gcr,plugins/ecr,woodpeckerci/plugin-docker,woodpeckerci/plugin-docker-buildx validRegex: /.{1,}/ - id: $$cap_WOODPECKER_DOCKER_CONFIG label: Private Registry Configuration description: |- Configures a specific private registry config for all pipelines. Example: /home/user/.docker/config.json - id: $$cap_WOODPECKER_AGENT_SECRET label: Shared Secret Used By Server And Agents description: A shared secret used by server and agents to authenticate communication. defaultValue: $$cap_gen_random_hex(32) validRegex: /.{1,}/ - id: $$cap_WOODPECKER_KEEPALIVE_MIN_TIME label: Time Before Sending A Keep-Alive Ping description: |- Server-side enforcement policy on the minimum amount of time a client should wait before sending a keep-alive ping. Example: 10s - id: $$cap_WOODPECKER_DATABASE_DRIVER label: Database Driver description: The database driver name. Possible values are sqlite3, mysql or postgres. defaultValue: sqlite3 validRegex: /.{1,}/ - id: $$cap_WOODPECKER_DATABASE_DATASOURCE label: Database Connection String description: |- The database connection string. The default value is the path of the embedded SQLite database file. Example for MySQL: root:password@tcp(1.2.3.4:3306)/woodpecker?parseTime=true Example for PostgreSQL: postgres://root:password@1.2.3.4:5432/woodpecker?sslmode=disable defaultValue: woodpecker.sqlite validRegex: /.{1,}/ - id: $$cap_WOODPECKER_PROMETHEUS_AUTH_TOKEN label: Prometheus Token description: Token to secure the Prometheus metrics endpoint. - id: $$cap_WOODPECKER_STATUS_CONTEXT label: SCM Status Message Context Prefix description: Context prefix Woodpecker will use to publish status messages to SCM. You probably will only need to change it if you run multiple Woodpecker instances for a single repository. defaultValue: ci/woodpecker validRegex: /.{1,}/ - id: $$cap_WOODPECKER_LIMIT_MEM_SWAP label: Maximum Memory Swap Per Pipeline Container description: The maximum amount of memory a single pipeline container is allowed to swap to disk, configured in bytes. There is no limit if 0. defaultValue: 0 - id: $$cap_WOODPECKER_LIMIT_MEM_USED label: Maximum Memory Used Per Pipeline Container description: The maximum amount of memory a single pipeline container can use, configured in bytes. There is no limit if 0. defaultValue: 0 - id: $$cap_WOODPECKER_LIMIT_SHM_SIZE label: Maximum Memory Used Of /dev/shm description: The maximum amount of memory of /dev/shm allowed in bytes. There is no limit if 0. defaultValue: 0 - id: $$cap_WOODPECKER_LIMIT_CPU_QUOTA label: CPU Quota Limit description: The number of microseconds per CPU period that the container is limited to before throttled. There is no limit if 0. defaultValue: 0 - id: $$cap_WOODPECKER_LIMIT_CPU_SHARES label: CPU Weight Against Other Containers description: The relative weight vs. other containers. defaultValue: 0 - id: $$cap_WOODPECKER_LIMIT_CPU_SET label: Limit CPU Usage description: |- Comma-separated list to limit the specific CPUs or cores a pipeline container can use. Example: 1,2 - id: $$cap_WOODPECKER_GITHUB_ENABLED label: Enable GitHub description: Enables the GitHub driver. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_GITHUB_URL label: GitHub URL description: Configures the GitHub server address. defaultValue: https://github.com validRegex: /.{1,}/ - id: $$cap_WOODPECKER_GITHUB_CLIENT label: GitHub Client description: Configures the GitHub OAuth client id. This is used to authorize access. - id: $$cap_WOODPECKER_GITHUB_SECRET label: GitHub Secret description: Configures the GitHub OAuth client secret. This is used to authorize access. - id: $$cap_WOODPECKER_GITHUB_MERGE_REF label: GitHub Merge Reference Usage description: Use GitHub Merge References defaultValue: 'true' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_GITHUB_SKIP_VERIFY label: Skip SSL Verification description: Configure if SSL verification should be skipped. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_GOGS_ENABLED label: Enable Gogs description: Enables the Gogs driver. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_GOGS_URL label: Gogs URL description: Configures the Gogs server address. defaultValue: https://github.com validRegex: /.{1,}/ - id: $$cap_WOODPECKER_GOGS_GIT_USERNAME label: Gogs User Name. description: This username is used to authenticate and clone all private repositories. - id: $$cap_WOODPECKER_GOGS_GIT_PASSWORD label: Gogs User Password. description: The password is used to authenticate and clone all private repositories. - id: $$cap_WOODPECKER_GOGS_PRIVATE_MODE label: Enable Gogs Private Module description: Enables the Gogs private mode. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_GOGS_SKIP_VERIFY label: Skip SSL Verification description: Configure if SSL verification should be skipped. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_GITEA_ENABLED label: Enable Gitea description: Enables the Gitea driver. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_GITEA_URL label: Gitea URL description: Configures the Gitea server address. defaultValue: https://try.gitea.io validRegex: /.{1,}/ - id: $$cap_WOODPECKER_GITEA_CLIENT label: Gitea Client description: Configures the Gitea OAuth client id. This is used to authorize access. - id: $$cap_WOODPECKER_GITEA_SECRET label: Gitea Secret description: Configures the Gitea OAuth client secret. This is used to authorize access. - id: $$cap_WOODPECKER_GITEA_SKIP_VERIFY label: Skip SSL Verification description: Configure if SSL verification should be skipped. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_BITBUCKET_ENABLED label: Enable Bitbucket description: Enables the Bitbucket driver. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_BITBUCKET_CLIENT label: Bitbucket Client description: Configures the Bitbucket OAuth client id. This is used to authorize access. - id: $$cap_WOODPECKER_BITBUCKET_SECRET label: Bitbucket Secret description: Configures the Bitbucket OAuth client secret. This is used to authorize access. - id: $$cap_WOODPECKER_STASH_ENABLED label: Enable Stash description: Enables the Stash driver. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_STASH_URL label: Stash URL description: Configures the Stash server address. - id: $$cap_WOODPECKER_STASH_CONSUMER_KEY label: Stash Consumer Key description: Configures your Bitbucket Server consumer key. - id: $$cap_WOODPECKER_STASH_CONSUMER_RSA_PATH label: Stash Consumer Private Key Path description: Configures the path to your Bitbucket Server private key file. - id: $$cap_WOODPECKER_STASH_CONSUMER_RSA_STRING label: Stash Consumer Private Key description: Configures your Bitbucket Server private key. - id: $$cap_WOODPECKER_STASH_GIT_USERNAME label: Stash Git User Name description: This username is used to authenticate and clone all private repositories. - id: $$cap_WOODPECKER_STASH_GIT_PASSWORD label: Stash Git User Password description: The password is used to authenticate and clone all private repositories. - id: $$cap_WOODPECKER_STASH_SKIP_VERIFY label: Skip SSL Verification description: Configure if SSL verification should be skipped. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_GITLAB_ENABLED label: Enable GitLab description: Enables the GitLab driver. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_GITLAB_URL label: GitLab URL description: Configures the GitLab server address. defaultValue: https://gitlab.com validRegex: /.{1,}/ - id: $$cap_WOODPECKER_GITLAB_CLIENT label: GitLab Client description: Configures the GitLab OAuth client id. This is used to authorize access. - id: $$cap_WOODPECKER_GITLAB_SECRET label: GitLab Secret description: Configures the GitLab OAuth client secret. This is used to authorize access. - id: $$cap_WOODPECKER_GITLAB_SKIP_VERIFY label: Skip SSL Verification description: Configure if SSL verification should be skipped. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_CODING_ENABLED label: Enable Coding description: Enables the Coding driver. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_CODING_URL label: Coding URL description: Configures the Coding server address. defaultValue: https://coding.net validRegex: /.{1,}/ - id: $$cap_WOODPECKER_CODING_CLIENT label: Coding Client description: Configures the Coding OAuth client id. This is used to authorize access. - id: $$cap_WOODPECKER_CODING_SECRET label: Coding Secret description: Configures the Coding OAuth client secret. This is used to authorize access. - id: $$cap_WOODPECKER_CODING_SCOPE label: Coding Scope description: Comma-separated list of OAuth scopes. defaultValue: user, project, project:depot validRegex: /.{1,}/ - id: $$cap_WOODPECKER_CODING_GIT_MACHINE label: Coding Git Host description: Configures the Git host. defaultValue: git.coding.net validRegex: /.{1,}/ - id: $$cap_WOODPECKER_CODING_GIT_USERNAME label: Coding Git User Name description: This username is used to authenticate and clone all private repositories. - id: $$cap_WOODPECKER_CODING_GIT_PASSWORD label: Coding Git User Password description: The password is used to authenticate and clone all private repositories. - id: $$cap_WOODPECKER_CODING_SKIP_VERIFY label: Skip SSL Verification description: Configure if SSL verification should be skipped. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_USERNAME label: gRPC User Name description: The gRPC username. defaultValue: x-oauth-basic validRegex: /.{1,}/ - id: $$cap_WOODPECKER_AGENT_HOSTNAME label: Agent Hostname description: Configures the agent hostname. - id: $$cap_WOODPECKER_MAX_PROCS label: Parallel Builds description: Configures the number of parallel builds. defaultValue: 1 - id: $$cap_WOODPECKER_HEALTHCHECK label: Health Check description: Enable healthcheck endpoint. defaultValue: 'true' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_KEEPALIVE_TIME_SETTING label: Keep-Alive Time description: After a duration of this time of no activity, the agent pings the server to check if the transport is still alive. - id: $$cap_WOODPECKER_KEEPALIVE_TIMEOUT label: Keep-Alive Timeout description: After pinging for a keepalive check, the agent waits for a duration of this time before closing the connection if no activity. defaultValue: 20s validRegex: /.{1,}/ - id: $$cap_WOODPECKER_GRPC_SECURE label: Secure gRPC Connection description: Configures if the connection to WOODPECKER_SERVER should be made using a secure transport. defaultValue: 'false' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_GRPC_VERIFY label: Verify gRPC Server Certificate description: Configures if the gRPC server certificate should be verified, only valid when WOODPECKER_GRPC_SECURE is true. defaultValue: 'true' validRegex: /^(false|true)$/ - id: $$cap_WOODPECKER_BACKEND label: Backend Engine description: Configures the backend engine to run pipelines on. Possible values are auto-detect or docker. defaultValue: docker validRegex: /^(auto-detect|docker)$/