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:
Event Description App Deploy Application deployment succeeded App Build Error Build or deployment failed Database Backup Database backup completed or failed Volume Backup Volume backup completed or failed Dokploy Restart Dokploy service restarted Docker Cleanup Docker system cleanup executed Server Threshold CPU or memory threshold exceeded
Setting Up Notifications
Access notification settings
Navigate to Settings → Notifications in the Dokploy dashboard.
Add notification channel
Click Add Notification and select your preferred provider.
Configure provider
Enter required credentials and settings for the provider.
Select events
Choose which events should trigger notifications.
Test connection
Click Test to verify the configuration works.
Channel Configuration
Slack
Discord
Telegram
Email
Resend
Teams
Slack Setup
Create a Slack webhook URL in your workspace
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)Discord Setup
Create a webhook in Discord channel settings
Configure in Dokploy:
{
name : "Dev Notifications" ,
notificationType : "discord" ,
webhookUrl : "https://discord.com/api/webhooks/123/abc" ,
decoration : true , // Adds formatting
appDeploy : true ,
appBuildError : true
}
Decoration : Adds > prefix for quote formattingTelegram Setup
Create a bot with @BotFather
Get your chat ID
Configure in Dokploy:
{
name : "Telegram Alerts" ,
notificationType : "telegram" ,
botToken : "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11" ,
chatId : "-1001234567890" ,
messageThreadId : "123" , // Optional for topics
appDeploy : true ,
appBuildError : true
}
Message Thread ID : For Telegram topics/forumsSMTP Email Setup {
name : "Email Notifications" ,
notificationType : "email" ,
smtpServer : "smtp.gmail.com" ,
smtpPort : 587 ,
username : "notifications@example.com" ,
password : "app-specific-password" ,
fromAddress : "notifications@example.com" ,
toAddresses : [
"admin@example.com" ,
"ops@example.com"
],
appDeploy : false ,
appBuildError : true ,
databaseBackup : true
}
Supported SMTP providers : Gmail, Outlook, SendGrid, customResend Email Setup {
name : "Resend Alerts" ,
notificationType : "resend" ,
apiKey : "re_123456789" ,
fromAddress : "alerts@yourdomain.com" ,
toAddresses : [
"team@example.com"
],
appDeploy : true ,
appBuildError : true
}
Requires verified domain in Resend.
Microsoft Teams Setup
Add Incoming Webhook connector to Teams channel
Configure in Dokploy:
{
name : "Teams Notifications" ,
notificationType : "teams" ,
webhookUrl : "https://outlook.office.com/webhook/..." ,
appDeploy : true ,
appBuildError : true
}
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 Settings → Monitoring :
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:
Configure channel
Enter all required settings for the provider.
Click Test Connection
Sends a test message: “Hi, From Dokploy 👋”
Verify receipt
Check that the test message arrived in your channel.
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
Notifications Not Received
Check :
Test connection succeeds
Event type is enabled for the channel
Webhook URL/credentials are correct
No network firewall blocking requests
Debug :# Check Dokploy logs
docker logs dokploy --tail 100 | grep notification
Test Succeeds, Real Alerts Fail
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.
Slack/Discord Formatting Issues
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.