skip to content
wihan.dev
view as markdown
browse the dokploy docs

dokploy_slack_notification (Resource)

A Slack notification channel (Settings > Notifications). Dokploy posts each message to an incoming webhook.

Each event attribute selects one Dokploy event that sends a message on this channel. All events default to false, so a new channel sends nothing until you enable one.

~> Dokploy does not test the channel on create or update. A wrong URL or token applies successfully and fails on the first message. Set verify_connection = true to test the channel before the write.

~> Dokploy stores and returns webhook_url in cleartext. The attribute is sensitive, so Terraform does not print it, but anyone with API access to the server can read it. The webhook_url_wo companion keeps it out of the Terraform state.

Example Usage

terraform
# Post deploy and build-failure messages to a Slack channel.
resource "dokploy_slack_notification" "deploys" {
  name    = "deploys"
  channel = "#deploys"

  # Write-only: Terraform 1.11 or later. Change the version to rotate the webhook.
  webhook_url_wo         = var.slack_webhook_url
  webhook_url_wo_version = 1

  app_deploy      = true
  app_build_error = true
}
terraform
# Test the webhook before the provider writes the record. The test sends a
# real message to the Slack channel. If the test fails, the apply fails and the
# provider writes nothing.
resource "dokploy_slack_notification" "checked" {
  name    = "deploys"
  channel = "#deploys"

  webhook_url_wo         = var.slack_webhook_url
  webhook_url_wo_version = 1

  app_deploy      = true
  app_build_error = true

  verify_connection = true
}

Schema

Required

  • name (String) Display name. Dokploy does not enforce a unique name.

Optional

NOTE: Write-only arguments are supported in Terraform 1.11 and later.

  • app_build_error (Boolean) Send a message when a build fails. Defaults to false.
  • app_deploy (Boolean) Send a message when an application or a compose deploys. Defaults to false.
  • channel (String) Channel that receives the message, for example #deploys. Omit it to use the webhook’s default channel. If you remove it from the configuration, the provider clears it.
  • database_backup (Boolean) Send a message when a database backup runs. Defaults to false.
  • docker_cleanup (Boolean) Send a message when the Docker cleanup runs. Defaults to false.
  • dokploy_backup (Boolean) Send a message when the Dokploy server backup runs. Defaults to false.
  • dokploy_restart (Boolean) Send a message when Dokploy restarts. Defaults to false.
  • server_threshold (Boolean) Send a message when a server crosses a resource threshold. Defaults to false.
  • verify_connection (Boolean) Test the connection with notification.testSlackConnection before the provider creates or updates the record. If the test fails, the apply fails with the server message, and the provider writes nothing. The default is no check: null and false both skip the test. Dokploy stores no value for this attribute, so terraform import leaves it null. The test sends a real test message to the channel.
  • volume_backup (Boolean) Send a message when a volume backup runs. Defaults to false.
  • webhook_url (String, Sensitive) Incoming webhook URL of the Slack app. Set this attribute or webhook_url_wo.
  • webhook_url_wo (String, Sensitive, Write-only) Write-only form of webhook_url. Terraform keeps it out of the plan and the state. It needs Terraform 1.11 or later. Set exactly one of webhook_url and webhook_url_wo. A new value reaches the server only when webhook_url_wo_version changes.
  • webhook_url_wo_version (Number) Version of webhook_url_wo. Change it to send the current webhook_url_wo value to the server. It needs webhook_url_wo.

Read-Only

  • created_at (String) Creation timestamp from the server.
  • id (String) Notification id.

Import

Import is supported using the following syntax:

In Terraform v1.5.0 and later, the import block can be used with the id attribute, for example:

terraform
import {
  to = dokploy_slack_notification.deploys
  id = "INt_PYqh9apo8mmDIoixZ"
}

The terraform import command can be used, for example:

shell
terraform import dokploy_slack_notification.deploys INt_PYqh9apo8mmDIoixZ