conductor

CI task system
git clone git://git.finwo.net/app/conductor
Log | Files | Refs | README | LICENSE

conductor.example.yaml (3923B)


      1 # conductor.example.yaml - server configuration
      2 #
      3 # Copy to conductor.yaml and edit. Every value here is a default, so an empty
      4 # file is a valid configuration: sqlite on disk, local object storage and
      5 # built-in user accounts.
      6 #
      7 # Any value can also be set from the environment, which takes precedence over
      8 # this file. See ENV_MAP in src/lib/config.js for the full list.
      9 #
     10 # Relative paths resolve against the directory holding this file.
     11 
     12 server:
     13   host: 0.0.0.0
     14   port: 8080
     15   # Absolute URL this conductor is reachable at. Workers are handed callback
     16   # URLs derived from it, so it must be correct behind a reverse proxy.
     17   public_url: http://127.0.0.1:8080
     18 
     19 database:
     20   # Leave url unset for sqlite. Otherwise the scheme picks the dialect:
     21   #   mysql://user:pass@host:3306/conductor
     22   #   postgres://user:pass@host:5432/conductor
     23   # The matching driver package must be installed: mysql2 or pg.
     24   url: null
     25   path: ./data/conductor.db
     26   connection_limit: 10
     27 
     28 storage:
     29   # Used when no s3 bucket is configured below.
     30   path: ./data/storage
     31   # Setting a bucket switches artifacts and finished logs to object storage.
     32   # endpoint, bucket, access_key_id and secret_access_key are all required
     33   # together. Garage and MinIO need force_path_style; AWS S3 does not.
     34   s3:
     35     endpoint: null
     36     region: us-east-1
     37     bucket: null
     38     access_key_id: null
     39     secret_access_key: null
     40     force_path_style: true
     41 
     42 auth:
     43   # Signs built-in session tokens. Generated per boot when unset, which logs
     44   # everyone out on restart, so set it in production.
     45   session_secret: null
     46   session_ttl: 43200
     47   # Setting a discovery url switches authentication to OIDC. Built-in
     48   # accounts are used when it is unset. Everything else about the provider,
     49   # including its issuer and every endpoint, is read from this document.
     50   oidc:
     51     discovery_url: null
     52     # The client this conductor is registered as. The redirect uri to
     53     # register is <server.public_url>/oidc/callback.
     54     client_id: null
     55     # Only for a confidential client; leave unset for a public one.
     56     client_secret: null
     57     scopes: openid profile email
     58     admin_role: conductor-admin
     59   # Created on first boot, only while the users table is empty, and only
     60   # without OIDC. With no password set, one is generated and logged once.
     61   bootstrap_admin:
     62     username: admin
     63     password: null
     64 
     65 secrets:
     66   # 32 bytes as 64 hex characters or base64, for example:
     67   #   openssl rand -hex 32
     68   # Without it, project variables and trigger secrets are stored in the clear
     69   # and marked as such, so they can be re-sealed later.
     70   encryption_key: null
     71 
     72 git:
     73   mirror_path: ./data/mirrors
     74   fetch_interval: 60
     75   timeout: 300
     76 
     77 log:
     78   spool_path: ./data/logs
     79   max_size: 67108864
     80 
     81 # How long build output is kept. A project may override any of these from
     82 # its settings page; zero means keep forever.
     83 #
     84 # Artifacts follow two rules and survive if either wants them: the last
     85 # artifact_keep_jobs jobs are kept whatever their age, and anything younger
     86 # than artifact_keep_days is kept however many jobs have followed. The most
     87 # recent successful job is always kept, so a project that has gone quiet
     88 # still has something to download. A task that sets artifacts.expire in the
     89 # pipeline overrides all of it with an exact deadline.
     90 #
     91 # Logs go by age alone. They are the reason this exists: written for every
     92 # task, read for almost none, and otherwise never removed.
     93 retention:
     94   artifact_keep_jobs: 10
     95   artifact_keep_days: 30
     96   log_keep_days: 14
     97   # Seconds between sweeps, and how much one sweep will delete, so a first
     98   # pass over a long backlog cannot monopolise the database or the bucket.
     99   sweep_interval: 3600
    100   batch: 500
    101 
    102 scheduler:
    103   # A claimed task whose worker stops reporting for this long is treated as
    104   # lost, then retried or failed. Must exceed reap_interval.
    105   heartbeat_timeout: 120
    106   reap_interval: 30
    107   default_task_timeout: 3600
    108   max_attempts: 3