fancier notifications
This commit is contained in:
		@@ -15,7 +15,6 @@ use App\Notifications\Application\DeploymentSuccess;
 | 
			
		||||
use App\Notifications\Application\StatusChanged;
 | 
			
		||||
use App\Notifications\Database\BackupFailed;
 | 
			
		||||
use App\Notifications\Database\BackupSuccess;
 | 
			
		||||
use App\Notifications\Database\DailyBackup;
 | 
			
		||||
use App\Notifications\Test;
 | 
			
		||||
use Exception;
 | 
			
		||||
use Illuminate\Console\Command;
 | 
			
		||||
@@ -121,23 +120,6 @@ class Emails extends Command
 | 
			
		||||
                $this->mail = (new Test)->toMail();
 | 
			
		||||
                $this->sendEmail();
 | 
			
		||||
                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':
 | 
			
		||||
                $applications = Application::all();
 | 
			
		||||
                foreach ($applications as $application) {
 | 
			
		||||
 
 | 
			
		||||
@@ -101,4 +101,17 @@ class InstanceSettings extends Model implements SendsEmail
 | 
			
		||||
 | 
			
		||||
        return "[{$instanceName}]";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // public function helperVersion(): Attribute
 | 
			
		||||
    // {
 | 
			
		||||
    //     return Attribute::make(
 | 
			
		||||
    //         get: function ($value) {
 | 
			
		||||
    //             if (isDev()) {
 | 
			
		||||
    //                 return 'latest';
 | 
			
		||||
    //             }
 | 
			
		||||
 | 
			
		||||
    //             return $value;
 | 
			
		||||
    //         }
 | 
			
		||||
    //     );
 | 
			
		||||
    // }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -77,22 +77,38 @@ class DeploymentFailed extends Notification implements ShouldQueue
 | 
			
		||||
    {
 | 
			
		||||
        if ($this->preview) {
 | 
			
		||||
            $message = new DiscordMessage(
 | 
			
		||||
                title: 'Coolify: Deployment failed of pull request #'.$this->preview->pull_request_id.' of '.$this->application_name,
 | 
			
		||||
                description: 'Check in the link below',
 | 
			
		||||
                title: ':cross_mark: Deployment failed',
 | 
			
		||||
                description: 'Pull request: '.$this->preview->pull_request_id,
 | 
			
		||||
                color: DiscordMessage::errorColor(),
 | 
			
		||||
                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 {
 | 
			
		||||
            if ($this->fqdn) {
 | 
			
		||||
                $description = '[Open application]('.$this->fqdn.')';
 | 
			
		||||
            } else {
 | 
			
		||||
                $description = '';
 | 
			
		||||
            }
 | 
			
		||||
            $message = new DiscordMessage(
 | 
			
		||||
                title: 'Coolify: Deployment failed of '.$this->application_name,
 | 
			
		||||
                description: 'Check in the link below',
 | 
			
		||||
                title: ':cross_mark: Deployment failed',
 | 
			
		||||
                description: $description,
 | 
			
		||||
                color: DiscordMessage::errorColor(),
 | 
			
		||||
                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;
 | 
			
		||||
 
 | 
			
		||||
@@ -83,28 +83,35 @@ class DeploymentSuccess extends Notification implements ShouldQueue
 | 
			
		||||
    {
 | 
			
		||||
        if ($this->preview) {
 | 
			
		||||
            $message = new DiscordMessage(
 | 
			
		||||
                title: "Coolify: New PR{$this->preview->pull_request_id} version successfully deployed of {$this->application_name}",
 | 
			
		||||
                description: 'Check in the links below.',
 | 
			
		||||
                title: ':white_check_mark: Preview deployment successful',
 | 
			
		||||
                description: 'Pull request: '.$this->preview->pull_request_id,
 | 
			
		||||
                color: DiscordMessage::successColor(),
 | 
			
		||||
            );
 | 
			
		||||
 | 
			
		||||
            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 {
 | 
			
		||||
            if ($this->fqdn) {
 | 
			
		||||
                $description = '[Open application]('.$this->fqdn.')';
 | 
			
		||||
            } else {
 | 
			
		||||
                $description = '';
 | 
			
		||||
            }
 | 
			
		||||
            $message = new DiscordMessage(
 | 
			
		||||
                title: "Coolify: New version successfully deployed of {$this->application_name}",
 | 
			
		||||
                description: 'Check in the links below.',
 | 
			
		||||
                title: ':white_check_mark: New version successfully deployed',
 | 
			
		||||
                description: $description,
 | 
			
		||||
                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('Open Application', '[Here]('.$this->fqdn.')');
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            $message->addField('Deployment logs', '[Here]('.$this->deployment_url.')');
 | 
			
		||||
            $message->addField('Deployment logs', '[Link]('.$this->deployment_url.')');
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $message;
 | 
			
		||||
 
 | 
			
		||||
@@ -59,14 +59,12 @@ class StatusChanged extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        $message = new DiscordMessage(
 | 
			
		||||
            title: "Coolify: {$this->resource_name} has been stopped",
 | 
			
		||||
            description: 'Check the application in Coolify',
 | 
			
		||||
            title: ':cross_mark: Application stopped',
 | 
			
		||||
            description: '[Open Application in Coolify]('.$this->resource_url.')',
 | 
			
		||||
            color: DiscordMessage::errorColor(),
 | 
			
		||||
            isCritical: true,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $message->addField('Link', '[Open Application in Coolify]('.$this->resource_url.')');
 | 
			
		||||
 | 
			
		||||
        return $message;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -38,11 +38,15 @@ class ContainerRestarted extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        $message = new DiscordMessage(
 | 
			
		||||
            title: "Coolify: A resource ({$this->name}) has been restarted automatically on {$this->server->name}",
 | 
			
		||||
            description: 'Please check the output below for more information.',
 | 
			
		||||
            title: ':warning: Resource restarted',
 | 
			
		||||
            description: "{$this->name} has been restarted automatically on {$this->server->name}.",
 | 
			
		||||
            color: DiscordMessage::infoColor(),
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        if ($this->url) {
 | 
			
		||||
            $message->addField('Resource', '[Link]('.$this->url.')');
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $message;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -37,11 +37,17 @@ class ContainerStopped extends Notification implements ShouldQueue
 | 
			
		||||
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        return new DiscordMessage(
 | 
			
		||||
            title: "Coolify: A resource ($this->name) has been stopped unexpectedly on {$this->server->name}",
 | 
			
		||||
            description: 'Please check the output below for more information.',
 | 
			
		||||
        $message = new DiscordMessage(
 | 
			
		||||
            title: ':cross_mark: Resource stopped',
 | 
			
		||||
            description: "{$this->name} has been stopped unexpectedly on {$this->server->name}.",
 | 
			
		||||
            color: DiscordMessage::errorColor(),
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        if ($this->url) {
 | 
			
		||||
            $message->addField('Resource', '[Link]('.$this->url.')');
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $message;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function toTelegram(): array
 | 
			
		||||
 
 | 
			
		||||
@@ -49,13 +49,13 @@ class BackupFailed extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        $message = new DiscordMessage(
 | 
			
		||||
            title: "Coolify: Database backup for {$this->name} (db:{$this->database_name}) has FAILED.",
 | 
			
		||||
            description: 'Please check the output below for more information.',
 | 
			
		||||
            title: ':cross_mark: Database backup failed',
 | 
			
		||||
            description: "Database backup for {$this->name} (db:{$this->database_name}) has FAILED.",
 | 
			
		||||
            color: DiscordMessage::errorColor(),
 | 
			
		||||
            isCritical: true,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $message->addField('Frequency', $this->frequency);
 | 
			
		||||
        $message->addField('Frequency', $this->frequency, true);
 | 
			
		||||
        $message->addField('Output', $this->output);
 | 
			
		||||
 | 
			
		||||
        return $message;
 | 
			
		||||
 
 | 
			
		||||
@@ -48,12 +48,12 @@ class BackupSuccess extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        $message = new DiscordMessage(
 | 
			
		||||
            title: "Coolify: Database backup for {$this->name} (db:{$this->database_name}) was successful.",
 | 
			
		||||
            description: 'Please check the output below for more information.',
 | 
			
		||||
            title: ':white_check_mark: Database backup successful',
 | 
			
		||||
            description: "Database backup for {$this->name} (db:{$this->database_name}) was successful.",
 | 
			
		||||
            color: DiscordMessage::successColor(),
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $message->addField('Frequency', $this->frequency);
 | 
			
		||||
        $message->addField('Frequency', $this->frequency, true);
 | 
			
		||||
 | 
			
		||||
        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 @@ class DiscordMessage
 | 
			
		||||
        return hexdec('4f545c');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function addField(string $name, string $value): self
 | 
			
		||||
    public function addField(string $name, string $value, bool $inline = false): self
 | 
			
		||||
    {
 | 
			
		||||
        $this->fields[] = [
 | 
			
		||||
            'name' => $name,
 | 
			
		||||
            'value' => $value,
 | 
			
		||||
            'inline' => $inline,
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        return $this;
 | 
			
		||||
@@ -45,6 +46,10 @@ class DiscordMessage
 | 
			
		||||
 | 
			
		||||
    public function toPayload(): array
 | 
			
		||||
    {
 | 
			
		||||
        $footerText = 'Coolify v'.config('version');
 | 
			
		||||
        if (isCloud()) {
 | 
			
		||||
            $footerText = 'Coolify Cloud';
 | 
			
		||||
        }
 | 
			
		||||
        $payload = [
 | 
			
		||||
            'embeds' => [
 | 
			
		||||
                [
 | 
			
		||||
@@ -52,10 +57,12 @@ class DiscordMessage
 | 
			
		||||
                    'description' => $this->description,
 | 
			
		||||
                    'color' => $this->color,
 | 
			
		||||
                    'fields' => $this->addTimestampToFields($this->fields),
 | 
			
		||||
                    'footer' => [
 | 
			
		||||
                        'text' => $footerText,
 | 
			
		||||
                    ],
 | 
			
		||||
                ],
 | 
			
		||||
            ],
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        if ($this->isCritical) {
 | 
			
		||||
            $payload['content'] = '@here';
 | 
			
		||||
        }
 | 
			
		||||
@@ -68,6 +75,7 @@ class DiscordMessage
 | 
			
		||||
        $fields[] = [
 | 
			
		||||
            'name' => 'Time',
 | 
			
		||||
            'value' => '<t:'.now()->timestamp.':R>',
 | 
			
		||||
            'inline' => true,
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        return $fields;
 | 
			
		||||
 
 | 
			
		||||
@@ -50,12 +50,14 @@ class TaskFailed extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        $message = new DiscordMessage(
 | 
			
		||||
            title: "Coolify: Scheduled task ({$this->task->name}) failed.",
 | 
			
		||||
            description: "Output: {$this->output}",
 | 
			
		||||
            title: ':cross_mark: Scheduled task failed',
 | 
			
		||||
            description: "Scheduled task ({$this->task->name}) failed.",
 | 
			
		||||
            color: DiscordMessage::errorColor(),
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $message->addField('Link', '[Open task in Coolify]('.$this->url.')');
 | 
			
		||||
        if ($this->url) {
 | 
			
		||||
            $message->addField('Scheduled task', '[Link]('.$this->url.')');
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $message;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@ class DockerCleanup extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        return new DiscordMessage(
 | 
			
		||||
            title: "Coolify: Server '{$this->server->name}' cleanup job done!",
 | 
			
		||||
            title: ':white_check_mark: Server cleanup job done',
 | 
			
		||||
            description: $this->message,
 | 
			
		||||
            color: DiscordMessage::successColor(),
 | 
			
		||||
        );
 | 
			
		||||
 
 | 
			
		||||
@@ -54,12 +54,12 @@ class ForceDisabled extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        $message = new DiscordMessage(
 | 
			
		||||
            title: "Coolify: Server ({$this->server->name}) disabled because it is not paid!",
 | 
			
		||||
            description: 'All automations and integrations are stopped.',
 | 
			
		||||
            title: ':cross_mark: Server disabled',
 | 
			
		||||
            description: "Server ({$this->server->name}) disabled because it is not paid!",
 | 
			
		||||
            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;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -54,8 +54,8 @@ class ForceEnabled extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        return new DiscordMessage(
 | 
			
		||||
            title: "Coolify: Server '{$this->server->name}' enabled again!",
 | 
			
		||||
            description: 'All automations and integrations are started.',
 | 
			
		||||
            title: ':white_check_mark: Server enabled',
 | 
			
		||||
            description: "Server '{$this->server->name}' enabled again!",
 | 
			
		||||
            color: DiscordMessage::successColor(),
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -56,14 +56,14 @@ class HighDiskUsage extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        $message = new DiscordMessage(
 | 
			
		||||
            title: "Coolify: Server '{$this->server->name}' high disk usage detected!",
 | 
			
		||||
            description: 'Please cleanup your disk to prevent data-loss.',
 | 
			
		||||
            title: ':cross_mark: High disk usage detected',
 | 
			
		||||
            description: "Server '{$this->server->name}' high disk usage detected!",
 | 
			
		||||
            color: DiscordMessage::errorColor(),
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $message->addField('Disk usage', "{$this->disk_usage}%");
 | 
			
		||||
        $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;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -76,7 +76,7 @@ class Revived extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): 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!',
 | 
			
		||||
            color: DiscordMessage::successColor(),
 | 
			
		||||
        );
 | 
			
		||||
 
 | 
			
		||||
@@ -67,8 +67,8 @@ class Unreachable extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        $message = new DiscordMessage(
 | 
			
		||||
            title: "Coolify: Your server '{$this->server->name}' is unreachable.",
 | 
			
		||||
            description: 'All automations & integrations are turned off! Please check your server!',
 | 
			
		||||
            title: ':cross_mark: Server unreachable',
 | 
			
		||||
            description: "Your server '{$this->server->name}' is unreachable.",
 | 
			
		||||
            color: DiscordMessage::errorColor(),
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -33,12 +33,12 @@ class Test extends Notification implements ShouldQueue
 | 
			
		||||
    public function toDiscord(): DiscordMessage
 | 
			
		||||
    {
 | 
			
		||||
        $message = new DiscordMessage(
 | 
			
		||||
            title: 'Coolify: This is a test Discord notification from Coolify.',
 | 
			
		||||
            description: 'This is a test Discord notification from Coolify.',
 | 
			
		||||
            title: ':white_check_mark: Test Success',
 | 
			
		||||
            description: 'This is a test Discord notification from Coolify. :cross_mark: :warning: :information_source:',
 | 
			
		||||
            color: DiscordMessage::successColor(),
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $message->addField('Link', '[Go to your dashboard]('.base_url().')');
 | 
			
		||||
        $message->addField(name: 'Dashboard', value: '[Link]('.base_url().')', inline: true);
 | 
			
		||||
 | 
			
		||||
        return $message;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user