Files
pulumi-dokploy/CHANGELOG.md
T
max-voitcov 73386ba0ff
build / build (push) Failing after 11m22s
release / plugin (push) Failing after 31m35s
release / sdks (push) Has been skipped
Bridge what Dokploy v0.30 added, and let the docs through
Six new resources from terraform-provider-dokploy v0.2.0 -- Network,
DnsProvider, VaultProvider, Schedule, VolumeBackup and Libsql -- plus the new
properties on Domain (`enabled`), Compose (`serviceNetworks`, `createEnvFile`,
`icon`) and Application. Verified with `pulumi up` against a live v0.30.2
instance: create, preview-clean, and destroy.

The upstream provider also now refuses a volume Mount with no `volumeName`,
which Dokploy would otherwise turn into an anonymous Docker volume recreated
on every deploy. That surfaces here at preview time, before anything exists.

Two things made that fix nearly invisible to Pulumi users, so this commit
fixes the second one: the bridge resolves the upstream `docs/` through the Go
module cache, where a locally `replace`d dependency never lands, so tfgen was
emitting every resource with no description at all. UpstreamRepoPath now
points at the checkout and all 445 inputs carry documentation -- with names
rendered per language, so Python readers see `volume_name` where TypeScript
readers see `volumeName`.
2026-08-26 00:46:32 +03:00

4.4 KiB

Changelog

All notable changes to this provider are documented here.

The format follows Keep a Changelog, and this project adheres to Semantic Versioning.

This package bridges terraform-provider-dokploy; its versions track that provider's.

0.2.0 — 2026-08-26

Tracks Dokploy v0.30.x through terraform-provider-dokploy v0.2.0. Verified end-to-end with pulumi up against a live v0.30.2 instance.

Fixed

  • A Mount with type: "volume" and no volumeName is now refused at preview time. Dokploy accepted such a mount and rendered it for Docker with an empty source, which Docker reads as an anonymous volume: every deploy created a new one and orphaned the last, so the data never survived a redeploy while disk usage grew. Nothing errored anywhere along the way.

    pulumi preview now fails with an explanation instead:

    error: dokploy:index/mount:Mount resource 'data' has a problem:
    Missing volume_name. `volume_name` must be set to a non-empty value
    when `type` is `volume`.
    
    Dokploy passes an unset volume_name to Docker as an empty source, which
    creates a new anonymous volume on every deploy. …  Examine values at
    'data.volumeName'.
    

    The same check covers type: "bind" without hostPath and type: "file" without filePath. If you already have such a mount, add a volumeName and redeploy; the contents of the current anonymous volume are not migrated.

  • Resource and property documentation now reaches the generated SDKs. The bridge was looking for the upstream provider's docs/ in the Go module cache, where a locally replaced dependency never appears, so every resource arrived in TypeScript, Python, Go and .NET with no description at all — the volume warning above included. UpstreamRepoPath now points at the upstream checkout, and all 445 resource inputs carry documentation, with property names rendered per language (volumeName in TypeScript, volume_name in Python).

Added

New resources, mirroring Dokploy v0.30.0:

  • Network — Docker networks as first-class objects (bridge or overlay, with internal, attachable, IPv4/IPv6, mtu, custom ipam). Attach services with networkIds. Docker networks are immutable, so every property forces replacement.
  • DnsProvider — a Cloudflare or AWS Route53 connection, so adding a domain creates its DNS record.
  • VaultProvider — environment values resolved at deploy time from HashiCorp Vault/OpenBao, Infisical, AWS Secrets Manager, Doppler, Azure Key Vault or Scaleway, referenced as ${{vault.<scope>.<key>}}. The secret never reaches Dokploy or your Pulumi state.
  • Schedule — cron jobs in an application container, a Compose service, a remote server, or on the Dokploy host.
  • VolumeBackup — scheduled backups of a Docker volume to a Destination.
  • Libsql — the sixth managed database engine.

New properties on existing resources:

  • Domain gains enabled, the v0.30.0 toggle that pulls a route out of Traefik while keeping certificates, paths and middleware intact.
  • Compose gains createEnvFile, icon and serviceNetworks, which attaches individual services in a stack to specific networks.
  • Application gains icon and previewRequireCollaboratorPermissions.
  • Mount and VolumeBackup accept libsql as a serviceType.

Changed

  • networkIds and detachDokployNetwork are the supported way to control service networking. Compose's isolatedDeployment is deprecated upstream in v0.30.0 — per-service network attachment covers the same ground and survives restarts. The property still works; prefer networkIds for new programs.

Notes

  • config on DnsProvider and VaultProvider is masked by Dokploy on read, so Pulumi keeps the value your program supplied and does not detect drift in those credentials. Both are marked secret.

0.1.0 — 2026-08-09

Initial release: 18 resources and 5 data sources across TypeScript, Python, Go and .NET, bridged from terraform-provider-dokploy v0.1.0.