Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/dokploy/dokploy/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Dokploy supports multiple notification channels to keep you informed about deployments, errors, backups, and system events. Configure channels once and select which events trigger notifications.

Supported Channels

Dokploy integrates with 11 notification providers:

Slack

Send notifications to Slack channels via webhooks.

Discord

Post alerts to Discord channels.

Telegram

Receive notifications in Telegram chats.

Email (SMTP)

Custom SMTP server notifications.

Resend

Email via Resend API.

Microsoft Teams

Teams channel notifications.

Gotify

Self-hosted notification service.

Ntfy

Simple notification service.

Pushover

Mobile push notifications.

Lark

Lark/Feishu integration.

Custom Webhook

POST to any HTTP endpoint.

Notification Events

Each channel can be configured to trigger on specific events:
EventDescription
App DeployApplication deployment succeeded
App Build ErrorBuild or deployment failed
Database BackupDatabase backup completed or failed
Volume BackupVolume backup completed or failed
Dokploy RestartDokploy service restarted
Docker CleanupDocker system cleanup executed
Server ThresholdCPU or memory threshold exceeded

Setting Up Notifications

1

Access notification settings

Navigate to SettingsNotifications in the Dokploy dashboard.
2

Add notification channel

Click Add Notification and select your preferred provider.
3

Configure provider

Enter required credentials and settings for the provider.
4

Select events

Choose which events should trigger notifications.
5

Test connection

Click Test to verify the configuration works.

Channel Configuration

Slack Setup

  1. Create a Slack webhook URL in your workspace
  2. Configure in Dokploy:
{
  name: "Production Alerts",
  notificationType: "slack",
  webhookUrl: "https://hooks.slack.com/services/T00/B00/XXX",
  channel: "#deployments",
  appDeploy: true,
  appBuildError: true,
  databaseBackup: true,
  volumeBackup: false,
  dokployRestart: true,
  dockerCleanup: false,
  serverThreshold: true
}
Webhook URL: RequiredChannel: Optional (overrides webhook default)

Self-Hosted Notification Services

Self-hosted notification server with Android/iOS apps.
{
  name: "Gotify Notifications",
  notificationType: "gotify",
  serverUrl: "https://gotify.example.com",
  appToken: "AaBbCcDd123456",
  priority: 5, // 0-10, default 5
  decoration: false,
  appDeploy: true,
  appBuildError: true
}
Priority Levels:
  • 0: Very low
  • 5: Normal (default)
  • 10: Critical
Simple pub-sub notification service.
{
  name: "Ntfy Alerts",
  notificationType: "ntfy",
  serverUrl: "https://ntfy.sh", // or self-hosted
  topic: "dokploy-alerts",
  accessToken: "tk_abc123", // Optional for private topics
  priority: 3, // 1-5, default 3
  appDeploy: true,
  appBuildError: true
}
Priority Levels:
  • 1: Min
  • 3: Default (default)
  • 5: Max (bypasses Do Not Disturb)
Push notifications to iOS, Android, and desktop.
{
  name: "Pushover Alerts",
  notificationType: "pushover",
  userKey: "user-key-from-pushover",
  apiToken: "app-token-from-pushover",
  priority: 0, // -2 to 2
  retry: 60, // Required if priority=2
  expire: 3600, // Required if priority=2
  appDeploy: true,
  appBuildError: true
}
Priority Levels:
  • -2: No notification
  • -1: Silent
  • 0: Normal (default)
  • 1: High priority
  • 2: Emergency (requires acknowledgment)

Custom Webhooks

Send notifications to any HTTP endpoint:
{
  name: "Custom Integration",
  notificationType: "custom",
  endpoint: "https://your-api.com/webhooks/dokploy",
  headers: {
    "Authorization": "Bearer your-token",
    "Content-Type": "application/json",
    "X-Custom-Header": "value"
  },
  appDeploy: true,
  appBuildError: true
}

Webhook Payload

Dokploy sends POST requests with this structure:
{
  "title": "Deployment Success",
  "message": "Application 'my-app' deployed successfully",
  "timestamp": "2026-02-28T10:30:00.000Z",
  "event": "appDeploy",
  "metadata": {
    "applicationId": "app-123",
    "deploymentId": "deploy-456",
    "status": "success"
  }
}
Custom webhooks must respond with 2xx status code within 10 seconds.

Enterprise Integrations

Chinese enterprise communication platform.
{
  name: "Lark Notifications",
  notificationType: "lark",
  webhookUrl: "https://open.feishu.cn/open-apis/bot/v2/hook/...",
  appDeploy: true,
  appBuildError: true
}

Server Threshold Alerts

Monitor server resource usage and receive alerts when thresholds are exceeded:
{
  name: "Resource Monitoring",
  notificationType: "slack",
  webhookUrl: "https://hooks.slack.com/services/...",
  serverThreshold: true,
  // Other events disabled
  appDeploy: false,
  appBuildError: false
}

Threshold Configuration

Configure in SettingsMonitoring:
  • CPU Threshold: Percentage (e.g., 80%)
  • Memory Threshold: Percentage (e.g., 85%)
  • Check Interval: How often to check (default: 5 minutes)

Alert Payload

{
  "ServerType": "Dokploy" | "Remote",
  "Type": "CPU" | "Memory",
  "Value": 85.5,
  "Threshold": 80,
  "Message": "CPU usage exceeded threshold",
  "Timestamp": "2026-02-28T10:30:00.000Z",
  "ServerName": "production-server"
}

Testing Notifications

Test each notification channel before saving:
1

Configure channel

Enter all required settings for the provider.
2

Click Test Connection

Sends a test message: “Hi, From Dokploy 👋”
3

Verify receipt

Check that the test message arrived in your channel.
4

Save configuration

If test succeeds, save the notification channel.
Test notifications may appear differently than actual alerts. Verify formatting with a real event after setup.

Managing Multiple Channels

You can configure multiple notification channels for different purposes:
// Critical alerts to PagerDuty
{
  name: "Critical - PagerDuty",
  appBuildError: true,
  serverThreshold: true
}

// All events to Slack
{
  name: "All Events - Slack",
  appDeploy: true,
  appBuildError: true,
  databaseBackup: true,
  volumeBackup: true,
  dokployRestart: true,
  dockerCleanup: true
}

// Daily summaries via Email
{
  name: "Daily Summary - Email",
  databaseBackup: true,
  volumeBackup: true,
  dockerCleanup: true
}

Best Practices

Separate Critical Alerts

Use different channels for critical errors vs informational events.

Test Before Production

Always test notification channels before relying on them for critical alerts.

Rate Limiting

Be aware of provider rate limits (e.g., Telegram: 30 messages/second).

Secure Credentials

Store API keys and tokens securely. Rotate them regularly.

Troubleshooting

Check:
  1. Test connection succeeds
  2. Event type is enabled for the channel
  3. Webhook URL/credentials are correct
  4. No network firewall blocking requests
Debug:
# Check Dokploy logs
docker logs dokploy --tail 100 | grep notification
Possible causes:
  • Provider rate limiting
  • Network connectivity issues during deployment
  • Token/webhook expired
Solution: Check provider’s status page and rate limits.
Cause: Multiple channels configured for same eventSolution: Review notification settings and disable duplicates.
Issue: Markdown not renderingSolution: Check provider’s markdown syntax. Some use different flavors.

API Reference

Manage notifications programmatically:
// Create Slack notification
POST /api/trpc/notification.createSlack
{
  name: "Production Alerts",
  webhookUrl: "https://hooks.slack.com/services/...",
  channel: "#deployments",
  appDeploy: true,
  appBuildError: true
}

// Update notification
POST /api/trpc/notification.updateSlack
{
  notificationId: "notif-123",
  appDeploy: false
}

// Test connection
POST /api/trpc/notification.testSlackConnection
{
  webhookUrl: "https://hooks.slack.com/services/...",
  channel: "#test"
}

// Delete notification
POST /api/trpc/notification.remove
{
  notificationId: "notif-123"
}

// List all notifications
POST /api/trpc/notification.all
{}
See API Reference for all notification endpoints.