PackageTrack
Sign in Get early access

github.com/kimdre/doco-cd

v0.111.0 #1053 most downloaded on Go modules kimdre/doco-cd

What this package is like to depend on

Last release today

22 Aug 2026

Ships fairly regularly

a new release about every 8 days

Rarely documented

notes for 9 of 167 stable releases

Nothing withdrawn

no release was ever pulled

2 years old

381 releases · first in 2024

280 releases in the last 12 months

see the full history below

Release timeline

381 releases · Jul 2024 to Aug 2026
2025 2026
Release Pre-release

Releases

latest 60 of 381
  1. v0.111.0 22 Aug 2026
    Release notes

    What's Changed

    Polling local Repositories

    Some stacks cannot be deployed without a running SCM available (e.g. a self-hosted Gitea/Forgejo instance that should be deployed via doco-cd (hence a chicken-and-egg problem), or a stack that is deployed from a local Git repository that is not hosted on any remote SCM). This release adds support for polling local Git repositories to solve this problem.

    Mount the directory containing your local Git repo into the doco-cd container, then use a poll config with the url: value being the absolute path to the Git repo inside the container.

    More info in the wiki at Polling Local Filesystem Repositories.

    Watcher for local Repositories

    In addition to interval-based polling, doco-cd watches the local repository's git directory for changes and triggers a deployment check immediately when new commits land, without waiting for the next interval. This is enabled by default; set watch: false to disable it and rely on interval only. Set interval: 0 (with watch left enabled) to rely on the watcher exclusively, with no periodic fallback polling at all.

    See the watch poll option in the wiki.

    ⚠️ Dotenv parsing changed

    .env files (env_files) are now parsed with compose-go's dotenv engine (the same one Docker Compose uses) instead of godotenv. Variables set in one env_files entry are now correctly available for ${VAR} substitution in later entries.

    Reference docs:

    Warning

    No longer supported / behavior changes:

    • Lowercase/mixed-case ${var} references are no longer left as literal text. Previously, godotenv only expanded UPPERCASE variable names and silently ignored ${lowercase_var}/${MixedCase}, keeping the literal string in the value. These are now interpolated like any other variable — if unset, they resolve to an empty string instead of the original literal text.

    If any of your .env files intentionally relied on lowercase ${...} placeholders being left untouched, rename them to avoid the $/${} pattern (e.g. escape with \$) or ensure the referenced variable is actually defined.

    Note

    New/added support:

    • Bash-style default and required-value operators now work inside .env files: ${VAR:-default}, ${VAR-default}, ${VAR:+alt}, ${VAR+alt}, ${VAR:?error}, ${VAR?error}.
    • Bare keys (e.g. a line with just SOME_VAR) now inherit the value from the process environment or an earlier env_files entry.

    ✨ Features

    • feat(git): add support for local filesystem Git repositories by @kimdre in #1717

    🌟 Improvements

    • feat(git): implement local filesystem watcher for repository changes by @kimdre in #1723
    • fix(compose): switch to compose-go dotenv parser for improved variable resolution by @kimdre in #1724

    📦 Dependencies

    • chore(deps): update gcr.io/distroless/base-debian13 docker digest to 20dc7ed by @renovate[bot] in #1719
    • chore(deps): update docker/github-builder digest to 58cb9f5 by @renovate[bot] in #1718
    • chore(deps): update github/codeql-action digest to db488dd by @renovate[bot] in #1720
    • chore(deps): update dependency zensical to v0.0.57 by @renovate[bot] in #1721

    Full Changelog: v0.110.1...v0.111.0

    Open source →
    Release notes

    v0.111.0 Latest

    Latest

    Compare

    Choose a tag to compare

    Open source →
  2. v0.110.2-0.20260822070440-43fb6be56785 22 Aug 2026 pre-release

    Nothing published for this version

  3. v0.110.2-0.20260821093657-5a9b88dc22cf 21 Aug 2026 pre-release

    Nothing published for this version

  4. v0.110.1 21 Aug 2026
    Release notes

    What's Changed

    Fixed a bug that caused the job API to not return the last_run_at field anymore.

    🐛 Bug Fixes

    • fix(scheduler): preserve manual last run during state updates by @kimdre in #1716

    📦 Dependencies

    Full Changelog: v0.110.0...v0.110.1

    Open source →
    Release notes

    v0.110.1

    Compare

    Choose a tag to compare

    Open source →
  5. v0.110.0 20 Aug 2026
    Release notes

    What's Changed

    Direct TLS/SSL Support for web server

    Set the new environment variables HTTP_TLS_CERT_FILE and HTTP_TLS_KEY_FILE to enable HTTPS for the API and metrics server, and healthcheck.

    OpenBao pki/cert rotartion

    Added automatic OpenBao certificate rotation, see the wiki for more info.

    Examples

    Set these env vars for doco-cd to enable and configure the cert rotation watcher:

    CERT_ROTATION_ENABLED=true
    CERT_ROTATION_THRESHOLD=72h
    CERT_ROTATION_CHECK_INTERVAL=1h

    Use pki-role:

    external_secrets:
      CERT: "pki-role:pki:my-role:app.example.com"
    • pki-role:certs:myapp-role:myapp.example.com -> Issues a new certificate for the common name myapp.example.com using the myapp-role PKI role in the certs secret engine in the root namespace.
    • pki-role:my-namespace:certs:myapp-role:myapp.example.com -> Same as above but in the my-namespace namespace.

    pki-role: issues a fresh certificate and matching private key on deploy. When rotation is enabled, doco-cd will watch the deployed cert’s expiry and redeploy the affected service before it expires.

    Use CERT for the certificate and CERT_KEY for the private key in your compose file.

    See the OpenBao Provider documentation in the PR.

    ✨ Features

    • feat(external-secrets): implement automatic certificate rotation for deployments by @kimdre in #1690
    • feat(api): add HTTPS support with TLS certificate configuration by @kimdre in #1704

    🌟 Improvements

    • feat(docker): normalize env vars for stable project hash during certificate rotation by @kimdre in #1697
    • feat(notification): report image digest drifted services in ChangedServices by @dennislapchenko in #1692
    • fix(commit-status): add support for GitHub Apps to report commit statuses by @kimdre in #1707
    • fix(ssh-agent): simplify error handling in ServeAgent function by @kimdre in #1714
    • fix(docker): reload registry auth from docker config on every lookup by @dennislapchenko in #1709

    🐛 Bug Fixes

    📦 Dependencies

    • fix(deps): update module github.com/moby/buildkit to v0.32.2 by @renovate[bot] in #1685
    • fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #1688
    • chore(deps): update dependency zensical to v0.0.54 by @renovate[bot] in #1687
    • chore(deps): update module golang.org/x/tools to v0.49.0 by @renovate[bot] in #1686
    • chore(deps): update golang:1.26.6 docker digest to 0d1d3a7 by @renovate[bot] in #1693
    • chore(deps): update dependency zensical to v0.0.55 by @renovate[bot] in #1694
    • chore(deps): update codespell-project/actions-codespell digest to 8f01853 by @renovate[bot] in #1698
    • fix(deps): update module github.com/docker/compose/v5 to v5.5.0 by @renovate[bot] in #1699
    • chore(deps): update dependency zensical to v0.0.56 by @renovate[bot] in #1708
    • chore(deps): update docker/setup-buildx-action digest to 37fe631 by @renovate[bot] in #1712

    📚 Miscellaneous

    Full Changelog: v0.109.2...v0.110.0

    Open source →
    Release notes

    v0.110.0

    Compare

    Choose a tag to compare

    Open source →
  6. v0.110.0-rc.1 16 Aug 2026 pre-release
    Release notes

    What's Changed

    Added automatic OpenBao certificate rotation

    To test the new feature, switch your OpenBao secret reference from pki: to pki-role: and enable the rotation watcher:

    external_secrets:
      CERT: "pki-role:pki:my-role:app.example.com"

    Examples:

    • pki-role:certs:myapp-role:myapp.example.com -> Issues a new certificate for the common name myapp.example.com using the myapp-role PKI role in the certs secret engine in the root namespace.
    • pki-role:my-namespace:certs:myapp-role:myapp.example.com -> Same as above but in the my-namespace namespace.

    Then set these env vars for doco-cd:

    CERT_ROTATION_ENABLED=true
    CERT_ROTATION_THRESHOLD=72h
    CERT_ROTATION_CHECK_INTERVAL=1h

    pki-role: issues a fresh certificate and matching private key on deploy. When rotation is enabled, doco-cd will watch the deployed cert’s expiry and redeploy the affected service before it expires.
    Use CERT for the certificate and CERT_KEY for the private key in your compose file.

    See the OpenBao Provider documentation in the PR.

    ✨ Features

    • feat(external-secrets): implement automatic certificate rotation for deployments by @kimdre in #1690

    📦 Dependencies

    • fix(deps): update module github.com/moby/buildkit to v0.32.2 by @renovate[bot] in #1685
    • fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #1688
    • chore(deps): update dependency zensical to v0.0.54 by @renovate[bot] in #1687
    • chore(deps): update module golang.org/x/tools to v0.49.0 by @renovate[bot] in #1686

    Full Changelog: v0.109.2...v0.110.0

    What's Changed

    📦 Dependencies

    • fix(deps): update module github.com/moby/buildkit to v0.32.2 by @renovate[bot] in #1685
    • fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #1688
    • chore(deps): update dependency zensical to v0.0.54 by @renovate[bot] in #1687
    • chore(deps): update module golang.org/x/tools to v0.49.0 by @renovate[bot] in #1686

    Full Changelog: v0.109.2...v0.110.0-rc.1

    Open source →
    Release notes

    v0.110.0-rc.1 Pre-release

    Pre-release

    Compare

    Choose a tag to compare

    Open source →
  7. v0.109.3-0.20260817015452-50ed28ccec49 17 Aug 2026 pre-release

    Nothing published for this version

  8. v0.109.3-0.20260814220554-cbce06fea1ce 14 Aug 2026 pre-release

    Nothing published for this version

  9. v0.109.2 14 Aug 2026
    Release notes

    What's Changed

    Added TRUSTED_PROXY_NETWORKS and TRUSTED_PROXY_HEADER env vars to configure trusted proxies for real client ip logging in API logs.

    ✨ Features

    • feat(config): add support for trusted proxy networks and headers by @kimdre in #1680

    🌟 Improvements

    • feat(api): enhance trusted proxy handling by @kimdre in #1681

    🐛 Bug Fixes

    • fix(api): add external secrets resolution to scheduled job execution by @kimdre in #1682

    📚 Miscellaneous

    Full Changelog: v0.109.1...v0.109.2

    Open source →
    Release notes

    v0.109.2

    Compare

    Choose a tag to compare

    Open source →
  10. v0.109.2-0.20260814155856-af22e5cf85e9 14 Aug 2026 pre-release

    Nothing published for this version

  11. v0.109.1 14 Aug 2026
    Release notes

    What's Changed

    A change in release v0.107.0 broke variable interpolation with values in environment in the deployment configuration. This release fixes this.

    One-off job containers now also have the default docker compose labels, for example:

    • com.docker.compose.project
    • com.docker.compose.service
    • com.docker.compose.project.working_dir

    🌟 Improvements

    • fix(scheduler): add compose labels to one-off job containers by @kimdre in #1677
    • fix(api): improve logging for manually triggered scheduled job runs by @kimdre in #1678

    🐛 Bug Fixes

    • fix(scheduler): restore compose interpolation for scheduled jobs by @kimdre in #1675

    📦 Dependencies

    • chore(deps): update github/codeql-action digest to ff2f1c6 by @renovate[bot] in #1671
    • chore(deps): update dependency golang to v1.26.6 by @renovate[bot] in #1672

    Full Changelog: v0.109.0...v0.109.1

    Open source →
    Release notes

    v0.109.1

    Compare

    Choose a tag to compare

    Open source →
  12. v0.109.0 13 Aug 2026
    Release notes

    What's Changed

    If a docker config is provided/mounted inside the container, doco-cd will now verify the configuration and throw errors if the config is invalid or requires a credential helper binary, that is not available in $PATH.

    🌟 Improvements

    • fix(oci): reject absolute paths and directory traversal attempts in target path construction by @kimdre in #1658
    • fix(docker): check docker config file is readable and valid by @kimdre in #1660
    • fix(docker): add check for missing credential helper binaries in config by @kimdre in #1661
    • fix(docker): improve handling of missing credential helper binaries in config validation by @kimdre in #1665
    • fix(autodiscovery): do not force recreate on inert config label drift by @dennislapchenko in #1670

    📦 Dependencies

    • chore(deps): update docker/dockerfile:1 docker digest to ecfaec9 by @renovate[bot] in #1663
    • chore(deps): update golang:1.26.5 docker digest to 5822931 by @renovate[bot] in #1664
    • fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #1666
    • fix(deps): update module golang.org/x/crypto to v0.55.0 by @renovate[bot] in #1669
    • fix(deps): update module github.com/docker/cli to v29.7.2+incompatible by @renovate[bot] in #1667
    • fix(deps): update module github.com/docker/compose/v5 to v5.4.0 by @renovate[bot] in #1668

    📚 Miscellaneous

    • docs: add Renovate setup guide and configuration examples by @kimdre in #1654
    • docs: rename page "Private Container Registries" to "Container Registry Authentication" by @kimdre in #1662

    Full Changelog: v0.108.0...v0.109.0

    Open source →
    Release notes

    v0.109.0

    Compare

    Choose a tag to compare

    Open source →
  13. v0.108.1-0.20260811214450-0d04c76723ec 11 Aug 2026 pre-release

    Nothing published for this version

  14. v0.108.1-0.20260811151202-cc8cf4d72b30 11 Aug 2026 pre-release

    Nothing published for this version

  15. v0.108.0 11 Aug 2026
    Release notes

    What's Changed

    This release adds support for including Git repos and OCI artifacts in Docker Compose's include top-level section as described in their documentation:

    include allows you to reference Compose files from remote sources, such as OCI artifacts or Git repositories.
    Here serviceB is defined in a Compose file stored on Docker Hub.

    include:
      - oci://docker.io/username/my-compose-app:latest # use a Compose file stored as an OCI artifact
    services:
      serviceA:
        build: .
        depends_on:
          - serviceB 

    Use the new OCI_INSECURE_REGISTRIES environment variable to set a comma-seperated allowlist of OCI registries to treat as insecure (HTTP or self-signed certs). Entries are deduplicated and normalized to lowercase. Each entry must be a hostname with optional port (no URL schemes allowed).

    Example: registry.example:5000,localhost:5000

    To use includes:

    1. Add include: section to a Compose file:
      include:
        - path: https://github.com/user/repo.git#main:docker-compose.yml  # use a relative path if the compose file is in a subdirectory: docker/compose.yml
        - path: oci://docker.io/namespace/config:latest
    2. If using private Git repos, ensure GIT_ACCESS_TOKEN or domain-scoped credentials are configured (see wiki).
    3. If pulling from self-signed OCI registries, set OCI_INSECURE_REGISTRIES.

    🌟 Improvements

    • fix(compose): support remote git and OCI artifact includes by @kimdre in #1655

    Full Changelog: v0.107.0...v0.108.0

    Open source →
    Release notes

    v0.108.0

    Compare

    Choose a tag to compare

    Open source →
  16. v0.107.0 09 Aug 2026
    Release notes

    What's Changed

    New configuration options:

    • DATA_HOST_PATH: Optional source path of the deployment data mount as seen by the target Docker daemon (See Remote Docker daemons). Automatically detected by default.
    • Added configurable retention for rotated Docker Swarm configs and secrets, including an option to disable automatic pruning. See Docker Settings and Deploy Settings in the wiki.

    Improvements, fixes and changes

    • (Swarm) Rollbacks are detected and reported correctly now.
    • (Swarm) Fixed a bug that caused all tasks/services of a stack to be recreated on every deployment. This fix required some bigger changes under the hood, that requires users to take action (see the boxes below).

    Important

    The default value of the auto_discovery.delete option changed to false. Users, that want to auto-remove obsolete projects/stacks, need to explicitly set auto_discovery.delete: true in their deployment config now.

    Note

    • The first deployment after upgrading doco-cd will trigger a recreation of all tasks/containers in the stack to set the correct doco-cd metadata.
    • The REST API response shape for the Stack endpoints changed
    • Compose secrets and configs and external secrets are now supported in scheduled jobs.
    • A message gets send when a deployment starts and APPRISE_NOTIFY_LEVEL is set to info.
    • Diagnostics and troubleshooting for registry authentication has been improved. See Private Container Registries in the wiki.
    • doco-cd is now able to recover from missing deployed commits (e.g. after a force push)
    • Added more granular labeling for Prometheus metrics by allowing deployment metric labels (e.g. errors and durations) to be tracked per repository and deployment.

    ✨ Features

    • feat: support explicit data host path by @nosovk in #1639
    • feat(swarm): add configuration options for config and secret revisions retention by @kimdre in #1652

    🌟 Improvements

    • feat(notification): notify on started deployment by @kimdre in #1633
    • fix(notification): log Apprise response body on notification request failures by @kimdre in #1634
    • fix(autodiscovery): change default value of delete option to false by @kimdre in #1637
    • fix(scheduler): support Compose secrets and configs in scheduled jobs by @kimdre in #1640
    • fix(metrics): include deployment names in repository metrics labels by @kimdre in #1643
    • fix(docker): detect Swarm rollbacks as deployment failures by @kimdre in #1644
    • fix(docker): improve registry auth diagnostics by @kimdre in #1647
    • feat(git): recover gracefuly from missing deployed commits after force push by @kimdre in #1650
    • refactor(git): replace ZeroSHA with plumbing.ZeroHash in payload handling by @kimdre in #1651

    🐛 Bug Fixes

    • fix(log): decode localized server error messages by @kimdre in #1632

    📦 Dependencies

    • chore(deps): update docker/github-builder digest to a492c6d by @renovate[bot] in #1630
    • chore(deps): update golang:1.26.5 docker digest to 2005724 by @renovate[bot] in #1631
    • fix(deps): update module github.com/google/go-containerregistry to v0.21.9 by @renovate[bot] in #1642
    • fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #1641
    • fix(deps): update module github.com/compose-spec/compose-go/v2 to v2.14.0 by @renovate[bot] in #1646
    • fix(deps): update module github.com/sigstore/cosign/v3 to v3.1.3 by @renovate[bot] in #1645

    📚 Miscellaneous

    • fix: do not require a C compiler for the test-nobitwarden target by @nosovk in #1627
    • docs: document the Docker API permissions required for each feature by @nosovk in #1626
    • fix(swarm): stop recreating all tasks of a stack on every deployment by @nosovk in #1629
    • test(swarm): update container name retrieval to use stack name prefix by @kimdre in #1648
    • test(docker): improve log retrieval timing in Compose signal tests by @kimdre in #1649

    New Contributors

    Full Changelog: v0.106.0...v0.107.0

    Open source →
    Release notes

    v0.107.0

    Compare

    Choose a tag to compare

    Open source →
  17. v0.106.0 05 Aug 2026
    Release notes

    What's Changed

    This release adds an option to rewrite source URLs for deployments.

    SOURCE_URL_REWRITES (and SOURCE_URL_REWRITES_FILE) let you rewrite git source URLs before doco-cd clones them. Rules apply to both webhook- and poll-triggered deployments.

    This is useful when your Git provider advertises a public URL (in webhook payloads or poll configs) but doco-cd should clone through an internal network path instead — for example when your Forgejo instance is behind a reverse proxy with a public domain, but is reachable directly over a Docker network.

    More info in the wiki:

    ✨ Features

    • feat: add option to rewrite source URLs in deployments by @kimdre in #1609

    📦 Dependencies

    • chore(deps): update github/codeql-action digest to 5595cca by @renovate[bot] in #1610
    • chore(deps): update dependency zensical to v0.0.53 by @renovate[bot] in #1611
    • chore(deps): update docker/buildx-bin docker tag to v0.36.1 by @renovate[bot] in #1613
    • chore(deps): update debian:trixie-slim docker digest to 3a39a05 by @renovate[bot] in #1612

    📚 Miscellaneous

    • docs: add usage of multiline YAML options in env vars to app settings page by @kimdre in #1614

    Full Changelog: v0.105.2...v0.106.0

    Open source →
    Release notes

    v0.106.0

    Compare

    Choose a tag to compare

    Open source →
  18. v0.106.0-rc.1 04 Aug 2026 pre-release

    Nothing published for this version

  19. v0.105.2 04 Aug 2026

    Nothing published for this version

  20. v0.105.1 03 Aug 2026

    Nothing published for this version

  21. v0.105.1-0.20260802170902-0bc03ce363c9 02 Aug 2026 pre-release

    Nothing published for this version

  22. v0.105.0 01 Aug 2026

    Nothing published for this version

  23. v0.104.0 31 Jul 2026

    Nothing published for this version

  24. v0.104.0-rc.1.0.20260730173829-ae806c112874 30 Jul 2026 pre-release

    Nothing published for this version

  25. v0.104.0-rc.1 30 Jul 2026 pre-release

    Nothing published for this version

  26. v0.103.0 28 Jul 2026

    Nothing published for this version

  27. v0.102.0 26 Jul 2026

    Nothing published for this version

  28. v0.102.0-rc.1 24 Jul 2026 pre-release

    Nothing published for this version

  29. v0.101.2-0.20260725022236-3843778a06d6 25 Jul 2026 pre-release

    Nothing published for this version

  30. v0.101.1 24 Jul 2026

    Nothing published for this version

  31. v0.101.0 23 Jul 2026

    Nothing published for this version

  32. v0.100.0 22 Jul 2026

    Nothing published for this version

  33. v0.99.2-0.20260722170919-5cefa8e5314c 22 Jul 2026 pre-release

    Nothing published for this version

  34. v0.99.1 21 Jul 2026

    Nothing published for this version

  35. v0.99.0 20 Jul 2026

    Nothing published for this version

  36. v0.98.1-0.20260719224839-8aaca4b97b3f 19 Jul 2026 pre-release

    Nothing published for this version

  37. v0.98.0 19 Jul 2026

    Nothing published for this version

  38. v0.97.1-0.20260719111645-667a107c2ad3 19 Jul 2026 pre-release

    Nothing published for this version

  39. v0.97.0 19 Jul 2026

    Nothing published for this version

  40. v0.97.0-rc.1.0.20260718193626-c6301089e447 18 Jul 2026 pre-release

    Nothing published for this version

  41. v0.97.0-rc.1 18 Jul 2026 pre-release

    Nothing published for this version

  42. v0.96.0 18 Jul 2026

    Nothing published for this version

  43. v0.96.0-rc.2.0.20260718011053-d55f51a33b38 18 Jul 2026 pre-release

    Nothing published for this version

  44. v0.96.0-rc.2 17 Jul 2026 pre-release

    Nothing published for this version

  45. v0.96.0-rc.1 17 Jul 2026 pre-release

    Nothing published for this version

  46. v0.95.1-0.20260717110251-f5633894cc30 17 Jul 2026 pre-release

    Nothing published for this version

  47. v0.95.0 17 Jul 2026

    Nothing published for this version

  48. v0.94.0 17 Jun 2026

    Nothing published for this version

  49. v0.93.1 17 Jun 2026

    Nothing published for this version

  50. v0.93.0 14 Jun 2026

    Nothing published for this version

  51. v0.92.1 14 Jun 2026

    Nothing published for this version

  52. v0.92.0 13 Jun 2026

    Nothing published for this version

  53. v0.92.0-rc.1 10 Jun 2026 pre-release

    Nothing published for this version

  54. v0.91.1-0.20260611030714-b3da5fb923e6 11 Jun 2026 pre-release

    Nothing published for this version

  55. v0.91.1-0.20260607062105-48848065e313 07 Jun 2026 pre-release

    Nothing published for this version

  56. v0.91.0 06 Jun 2026

    Nothing published for this version

  57. v0.91.0-rc.1 04 Jun 2026 pre-release

    Nothing published for this version

  58. v0.90.1 03 Jun 2026

    Nothing published for this version

  59. v0.90.0 01 Jun 2026

    Nothing published for this version

  60. v0.89.2 30 May 2026

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive