Merge pull request #3969 from coollabsio/jnovakdev/main
Discord notification updates
This commit is contained in:
commit
949a973e91
19 changed files with 106 additions and 125 deletions
|
|
@ -15,7 +15,6 @@
|
||||||
use App\Notifications\Application\StatusChanged;
|
use App\Notifications\Application\StatusChanged;
|
||||||
use App\Notifications\Database\BackupFailed;
|
use App\Notifications\Database\BackupFailed;
|
||||||
use App\Notifications\Database\BackupSuccess;
|
use App\Notifications\Database\BackupSuccess;
|
||||||
use App\Notifications\Database\DailyBackup;
|
|
||||||
use App\Notifications\Test;
|
use App\Notifications\Test;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
|
@ -121,23 +120,6 @@ public function handle()
|
||||||
$this->mail = (new Test)->toMail();
|
$this->mail = (new Test)->toMail();
|
||||||
$this->sendEmail();
|
$this->sendEmail();
|
||||||
break;
|
break;
|
||||||
case 'database-backup-statuses-daily':
|
|
||||||
$scheduled_backups = ScheduledDatabaseBackup::all();
|
|
||||||
$databases = collect();
|
|
||||||
foreach ($scheduled_backups as $scheduled_backup) {
|
|
||||||
$last_days_backups = $scheduled_backup->get_last_days_backup_status();
|
|
||||||
if ($last_days_backups->isEmpty()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$failed = $last_days_backups->where('status', 'failed');
|
|
||||||
$database = $scheduled_backup->database;
|
|
||||||
$databases->put($database->name, [
|
|
||||||
'failed_count' => $failed->count(),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
$this->mail = (new DailyBackup($databases))->toMail();
|
|
||||||
$this->sendEmail();
|
|
||||||
break;
|
|
||||||
case 'application-deployment-success-daily':
|
case 'application-deployment-success-daily':
|
||||||
$applications = Application::all();
|
$applications = Application::all();
|
||||||
foreach ($applications as $application) {
|
foreach ($applications as $application) {
|
||||||
|
|
|
||||||
|
|
@ -101,4 +101,17 @@ public function getTitleDisplayName(): string
|
||||||
|
|
||||||
return "[{$instanceName}]";
|
return "[{$instanceName}]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// public function helperVersion(): Attribute
|
||||||
|
// {
|
||||||
|
// return Attribute::make(
|
||||||
|
// get: function ($value) {
|
||||||
|
// if (isDev()) {
|
||||||
|
// return 'latest';
|
||||||
|
// }
|
||||||
|
|
||||||
|
// return $value;
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,22 +77,38 @@ public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
if ($this->preview) {
|
if ($this->preview) {
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: 'Coolify: Deployment failed of pull request #'.$this->preview->pull_request_id.' of '.$this->application_name,
|
title: ':cross_mark: Deployment failed',
|
||||||
description: 'Check in the link below',
|
description: 'Pull request: '.$this->preview->pull_request_id,
|
||||||
color: DiscordMessage::errorColor(),
|
color: DiscordMessage::errorColor(),
|
||||||
isCritical: true,
|
isCritical: true,
|
||||||
);
|
);
|
||||||
|
|
||||||
$message->addField('Deployment Logs', '[Here]('.$this->deployment_url.')');
|
$message->addField('Project', data_get($this->application, 'environment.project.name'), true);
|
||||||
|
$message->addField('Environment', $this->environment_name, true);
|
||||||
|
$message->addField('Name', $this->application_name, true);
|
||||||
|
|
||||||
|
$message->addField('Deployment Logs', '[Link]('.$this->deployment_url.')');
|
||||||
|
if ($this->fqdn) {
|
||||||
|
$message->addField('Domain', $this->fqdn, true);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if ($this->fqdn) {
|
||||||
|
$description = '[Open application]('.$this->fqdn.')';
|
||||||
|
} else {
|
||||||
|
$description = '';
|
||||||
|
}
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: 'Coolify: Deployment failed of '.$this->application_name,
|
title: ':cross_mark: Deployment failed',
|
||||||
description: 'Check in the link below',
|
description: $description,
|
||||||
color: DiscordMessage::errorColor(),
|
color: DiscordMessage::errorColor(),
|
||||||
isCritical: true,
|
isCritical: true,
|
||||||
);
|
);
|
||||||
|
|
||||||
$message->addField('Deployment Logs', '[Here]('.$this->deployment_url.')');
|
$message->addField('Project', data_get($this->application, 'environment.project.name'), true);
|
||||||
|
$message->addField('Environment', $this->environment_name, true);
|
||||||
|
$message->addField('Name', $this->application_name, true);
|
||||||
|
|
||||||
|
$message->addField('Deployment Logs', '[Link]('.$this->deployment_url.')');
|
||||||
}
|
}
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
|
|
|
||||||
|
|
@ -83,28 +83,35 @@ public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
if ($this->preview) {
|
if ($this->preview) {
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: "Coolify: New PR{$this->preview->pull_request_id} version successfully deployed of {$this->application_name}",
|
title: ':white_check_mark: Preview deployment successful',
|
||||||
description: 'Check in the links below.',
|
description: 'Pull request: '.$this->preview->pull_request_id,
|
||||||
color: DiscordMessage::successColor(),
|
color: DiscordMessage::successColor(),
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($this->preview->fqdn) {
|
if ($this->preview->fqdn) {
|
||||||
$message->addField('Open Application', '[Here]('.$this->preview->fqdn.')');
|
$message->addField('Application', '[Link]('.$this->preview->fqdn.')');
|
||||||
}
|
}
|
||||||
|
|
||||||
$message->addField('Deployment logs', '[Here]('.$this->deployment_url.')');
|
$message->addField('Project', data_get($this->application, 'environment.project.name'), true);
|
||||||
|
$message->addField('Environment', $this->environment_name, true);
|
||||||
|
$message->addField('Name', $this->application_name, true);
|
||||||
|
$message->addField('Deployment logs', '[Link]('.$this->deployment_url.')');
|
||||||
} else {
|
} else {
|
||||||
|
if ($this->fqdn) {
|
||||||
|
$description = '[Open application]('.$this->fqdn.')';
|
||||||
|
} else {
|
||||||
|
$description = '';
|
||||||
|
}
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: "Coolify: New version successfully deployed of {$this->application_name}",
|
title: ':white_check_mark: New version successfully deployed',
|
||||||
description: 'Check in the links below.',
|
description: $description,
|
||||||
color: DiscordMessage::successColor(),
|
color: DiscordMessage::successColor(),
|
||||||
);
|
);
|
||||||
|
$message->addField('Project', data_get($this->application, 'environment.project.name'), true);
|
||||||
|
$message->addField('Environment', $this->environment_name, true);
|
||||||
|
$message->addField('Name', $this->application_name, true);
|
||||||
|
|
||||||
if ($this->fqdn) {
|
$message->addField('Deployment logs', '[Link]('.$this->deployment_url.')');
|
||||||
$message->addField('Open Application', '[Here]('.$this->fqdn.')');
|
|
||||||
}
|
|
||||||
|
|
||||||
$message->addField('Deployment logs', '[Here]('.$this->deployment_url.')');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
|
|
|
||||||
|
|
@ -59,14 +59,12 @@ public function toMail(): MailMessage
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: "Coolify: {$this->resource_name} has been stopped",
|
title: ':cross_mark: Application stopped',
|
||||||
description: 'Check the application in Coolify',
|
description: '[Open Application in Coolify]('.$this->resource_url.')',
|
||||||
color: DiscordMessage::errorColor(),
|
color: DiscordMessage::errorColor(),
|
||||||
isCritical: true,
|
isCritical: true,
|
||||||
);
|
);
|
||||||
|
|
||||||
$message->addField('Link', '[Open Application in Coolify]('.$this->resource_url.')');
|
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,11 +38,15 @@ public function toMail(): MailMessage
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: "Coolify: A resource ({$this->name}) has been restarted automatically on {$this->server->name}",
|
title: ':warning: Resource restarted',
|
||||||
description: 'Please check the output below for more information.',
|
description: "{$this->name} has been restarted automatically on {$this->server->name}.",
|
||||||
color: DiscordMessage::infoColor(),
|
color: DiscordMessage::infoColor(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ($this->url) {
|
||||||
|
$message->addField('Resource', '[Link]('.$this->url.')');
|
||||||
|
}
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,11 +37,17 @@ public function toMail(): MailMessage
|
||||||
|
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
return new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: "Coolify: A resource ($this->name) has been stopped unexpectedly on {$this->server->name}",
|
title: ':cross_mark: Resource stopped',
|
||||||
description: 'Please check the output below for more information.',
|
description: "{$this->name} has been stopped unexpectedly on {$this->server->name}.",
|
||||||
color: DiscordMessage::errorColor(),
|
color: DiscordMessage::errorColor(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ($this->url) {
|
||||||
|
$message->addField('Resource', '[Link]('.$this->url.')');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function toTelegram(): array
|
public function toTelegram(): array
|
||||||
|
|
|
||||||
|
|
@ -49,13 +49,13 @@ public function toMail(): MailMessage
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: "Coolify: Database backup for {$this->name} (db:{$this->database_name}) has FAILED.",
|
title: ':cross_mark: Database backup failed',
|
||||||
description: 'Please check the output below for more information.',
|
description: "Database backup for {$this->name} (db:{$this->database_name}) has FAILED.",
|
||||||
color: DiscordMessage::errorColor(),
|
color: DiscordMessage::errorColor(),
|
||||||
isCritical: true,
|
isCritical: true,
|
||||||
);
|
);
|
||||||
|
|
||||||
$message->addField('Frequency', $this->frequency);
|
$message->addField('Frequency', $this->frequency, true);
|
||||||
$message->addField('Output', $this->output);
|
$message->addField('Output', $this->output);
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
|
|
|
||||||
|
|
@ -48,12 +48,12 @@ public function toMail(): MailMessage
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: "Coolify: Database backup for {$this->name} (db:{$this->database_name}) was successful.",
|
title: ':white_check_mark: Database backup successful',
|
||||||
description: 'Please check the output below for more information.',
|
description: "Database backup for {$this->name} (db:{$this->database_name}) was successful.",
|
||||||
color: DiscordMessage::successColor(),
|
color: DiscordMessage::successColor(),
|
||||||
);
|
);
|
||||||
|
|
||||||
$message->addField('Frequency', $this->frequency);
|
$message->addField('Frequency', $this->frequency, true);
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Notifications\Database;
|
|
||||||
|
|
||||||
use App\Notifications\Channels\DiscordChannel;
|
|
||||||
use App\Notifications\Channels\TelegramChannel;
|
|
||||||
use App\Notifications\Dto\DiscordMessage;
|
|
||||||
use Illuminate\Bus\Queueable;
|
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
||||||
use Illuminate\Notifications\Channels\MailChannel;
|
|
||||||
use Illuminate\Notifications\Messages\MailMessage;
|
|
||||||
use Illuminate\Notifications\Notification;
|
|
||||||
|
|
||||||
class DailyBackup extends Notification implements ShouldQueue
|
|
||||||
{
|
|
||||||
use Queueable;
|
|
||||||
|
|
||||||
public $tries = 1;
|
|
||||||
|
|
||||||
public function __construct(public $databases) {}
|
|
||||||
|
|
||||||
public function via(object $notifiable): array
|
|
||||||
{
|
|
||||||
return [DiscordChannel::class, TelegramChannel::class, MailChannel::class];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function toMail(): MailMessage
|
|
||||||
{
|
|
||||||
$mail = new MailMessage;
|
|
||||||
$mail->subject('Coolify: Daily backup statuses');
|
|
||||||
$mail->view('emails.daily-backup', [
|
|
||||||
'databases' => $this->databases,
|
|
||||||
]);
|
|
||||||
|
|
||||||
return $mail;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function toDiscord(): DiscordMessage
|
|
||||||
{
|
|
||||||
return new DiscordMessage(
|
|
||||||
title: 'Coolify: Daily backup statuses',
|
|
||||||
description: 'Nothing to report.',
|
|
||||||
color: DiscordMessage::infoColor(),
|
|
||||||
); // todo: is this necessary notification? what is the purpose of this notification?
|
|
||||||
}
|
|
||||||
|
|
||||||
public function toTelegram(): array
|
|
||||||
{
|
|
||||||
$message = 'Coolify: Daily backup statuses';
|
|
||||||
|
|
||||||
return [
|
|
||||||
'message' => $message,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -33,11 +33,12 @@ public static function infoColor(): int
|
||||||
return hexdec('4f545c');
|
return hexdec('4f545c');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addField(string $name, string $value): self
|
public function addField(string $name, string $value, bool $inline = false): self
|
||||||
{
|
{
|
||||||
$this->fields[] = [
|
$this->fields[] = [
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
'value' => $value,
|
'value' => $value,
|
||||||
|
'inline' => $inline,
|
||||||
];
|
];
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
|
|
@ -45,6 +46,10 @@ public function addField(string $name, string $value): self
|
||||||
|
|
||||||
public function toPayload(): array
|
public function toPayload(): array
|
||||||
{
|
{
|
||||||
|
$footerText = 'Coolify v'.config('version');
|
||||||
|
if (isCloud()) {
|
||||||
|
$footerText = 'Coolify Cloud';
|
||||||
|
}
|
||||||
$payload = [
|
$payload = [
|
||||||
'embeds' => [
|
'embeds' => [
|
||||||
[
|
[
|
||||||
|
|
@ -52,10 +57,12 @@ public function toPayload(): array
|
||||||
'description' => $this->description,
|
'description' => $this->description,
|
||||||
'color' => $this->color,
|
'color' => $this->color,
|
||||||
'fields' => $this->addTimestampToFields($this->fields),
|
'fields' => $this->addTimestampToFields($this->fields),
|
||||||
|
'footer' => [
|
||||||
|
'text' => $footerText,
|
||||||
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($this->isCritical) {
|
if ($this->isCritical) {
|
||||||
$payload['content'] = '@here';
|
$payload['content'] = '@here';
|
||||||
}
|
}
|
||||||
|
|
@ -68,6 +75,7 @@ private function addTimestampToFields(array $fields): array
|
||||||
$fields[] = [
|
$fields[] = [
|
||||||
'name' => 'Time',
|
'name' => 'Time',
|
||||||
'value' => '<t:'.now()->timestamp.':R>',
|
'value' => '<t:'.now()->timestamp.':R>',
|
||||||
|
'inline' => true,
|
||||||
];
|
];
|
||||||
|
|
||||||
return $fields;
|
return $fields;
|
||||||
|
|
|
||||||
|
|
@ -50,12 +50,14 @@ public function toMail(): MailMessage
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: "Coolify: Scheduled task ({$this->task->name}) failed.",
|
title: ':cross_mark: Scheduled task failed',
|
||||||
description: "Output: {$this->output}",
|
description: "Scheduled task ({$this->task->name}) failed.",
|
||||||
color: DiscordMessage::errorColor(),
|
color: DiscordMessage::errorColor(),
|
||||||
);
|
);
|
||||||
|
|
||||||
$message->addField('Link', '[Open task in Coolify]('.$this->url.')');
|
if ($this->url) {
|
||||||
|
$message->addField('Scheduled task', '[Link]('.$this->url.')');
|
||||||
|
}
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ public function via(object $notifiable): array
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
return new DiscordMessage(
|
return new DiscordMessage(
|
||||||
title: "Coolify: Server '{$this->server->name}' cleanup job done!",
|
title: ':white_check_mark: Server cleanup job done',
|
||||||
description: $this->message,
|
description: $this->message,
|
||||||
color: DiscordMessage::successColor(),
|
color: DiscordMessage::successColor(),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -54,12 +54,12 @@ public function toMail(): MailMessage
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: "Coolify: Server ({$this->server->name}) disabled because it is not paid!",
|
title: ':cross_mark: Server disabled',
|
||||||
description: 'All automations and integrations are stopped.',
|
description: "Server ({$this->server->name}) disabled because it is not paid!",
|
||||||
color: DiscordMessage::errorColor(),
|
color: DiscordMessage::errorColor(),
|
||||||
);
|
);
|
||||||
|
|
||||||
$message->addField('Link', 'Please update your subscription to enable the server again [here](https://app.coolify.io/subscriptions).');
|
$message->addField('Please update your subscription to enable the server again!', '[Link](https://app.coolify.io/subscriptions)');
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,8 @@ public function toMail(): MailMessage
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
return new DiscordMessage(
|
return new DiscordMessage(
|
||||||
title: "Coolify: Server '{$this->server->name}' enabled again!",
|
title: ':white_check_mark: Server enabled',
|
||||||
description: 'All automations and integrations are started.',
|
description: "Server '{$this->server->name}' enabled again!",
|
||||||
color: DiscordMessage::successColor(),
|
color: DiscordMessage::successColor(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,14 +56,14 @@ public function toMail(): MailMessage
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: "Coolify: Server '{$this->server->name}' high disk usage detected!",
|
title: ':cross_mark: High disk usage detected',
|
||||||
description: 'Please cleanup your disk to prevent data-loss.',
|
description: "Server '{$this->server->name}' high disk usage detected!",
|
||||||
color: DiscordMessage::errorColor(),
|
color: DiscordMessage::errorColor(),
|
||||||
);
|
);
|
||||||
|
|
||||||
$message->addField('Disk usage', "{$this->disk_usage}%");
|
$message->addField('Disk usage', "{$this->disk_usage}%");
|
||||||
$message->addField('Threshold', "{$this->docker_cleanup_threshold}%");
|
$message->addField('Threshold', "{$this->docker_cleanup_threshold}%");
|
||||||
$message->addField('Link', 'Here are some tips: https://coolify.io/docs/knowledge-base/server/automated-cleanup.');
|
$message->addField('Tips', '[Link](https://coolify.io/docs/knowledge-base/server/automated-cleanup)');
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ public function toMail(): MailMessage
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
return new DiscordMessage(
|
return new DiscordMessage(
|
||||||
title: "Coolify: Server '{$this->server->name}' revived.",
|
title: ":white_check_mark: Server '{$this->server->name}' revived",
|
||||||
description: 'All automations & integrations are turned on again!',
|
description: 'All automations & integrations are turned on again!',
|
||||||
color: DiscordMessage::successColor(),
|
color: DiscordMessage::successColor(),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -67,8 +67,8 @@ public function toMail(): MailMessage
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: "Coolify: Your server '{$this->server->name}' is unreachable.",
|
title: ':cross_mark: Server unreachable',
|
||||||
description: 'All automations & integrations are turned off! Please check your server!',
|
description: "Your server '{$this->server->name}' is unreachable.",
|
||||||
color: DiscordMessage::errorColor(),
|
color: DiscordMessage::errorColor(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,12 @@ public function toMail(): MailMessage
|
||||||
public function toDiscord(): DiscordMessage
|
public function toDiscord(): DiscordMessage
|
||||||
{
|
{
|
||||||
$message = new DiscordMessage(
|
$message = new DiscordMessage(
|
||||||
title: 'Coolify: This is a test Discord notification from Coolify.',
|
title: ':white_check_mark: Test Success',
|
||||||
description: 'This is a test Discord notification from Coolify.',
|
description: 'This is a test Discord notification from Coolify. :cross_mark: :warning: :information_source:',
|
||||||
color: DiscordMessage::successColor(),
|
color: DiscordMessage::successColor(),
|
||||||
);
|
);
|
||||||
|
|
||||||
$message->addField('Link', '[Go to your dashboard]('.base_url().')');
|
$message->addField(name: 'Dashboard', value: '[Link]('.base_url().')', inline: true);
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue