main: initial app rewrite

This commit is contained in:
Gary 2024-07-25 13:04:05 -07:00
parent f76d45b826
commit 1b076cfffc
23 changed files with 145 additions and 116 deletions

View File

@ -1,8 +1,6 @@
_____ _ _ __ __ _ __ __ _
/ ____| | (_)/ _| / /__ _______ _______ (_)____ / //_/(_)___ ____ _
| | ___ ___ | |_| |_ _ _ __ / / _ \/ ___/ / / / ___/ / / ___/ / ,< / / __ \/ __ `/
| | / _ \ / _ \| | | _| | | | / /_/ / __(__ ) /_/ (__ ) / (__ ) / /| |/ / / / / /_/ /
| |___| (_) | (_) | | | | | |_| | \____/\___/____/\__,_/____/ /_/____/ /_/ |_/_/_/ /_/\__, /
\_____\___/ \___/|_|_|_| \__, | /____/
__/ |
|___/

View File

@ -58,9 +58,9 @@ public function submit()
'content' => 'User: `' . auth()->user()?->email . '` with subject: `' . $this->subject . '` has the following problem: `' . $this->description . '`', 'content' => 'User: `' . auth()->user()?->email . '` with subject: `' . $this->subject . '` has the following problem: `' . $this->description . '`',
]); ]);
} else { } else {
send_user_an_email($mail, auth()->user()?->email, 'hi@coollabs.io'); send_user_an_email($mail, auth()->user()?->email, 'support@lasthourhosting.org');
} }
$this->dispatch('success', 'Feedback sent.', 'We will get in touch with you as soon as possible.'); $this->dispatch('success', 'Feedback sent.', 'Thank you! We will get in touch with you as soon as possible.');
} catch (\Throwable $e) { } catch (\Throwable $e) {
return handleError($e, $this); return handleError($e, $this);
} }

View File

@ -50,9 +50,9 @@ public function testConnection(bool $shouldSave = false)
} catch (\Throwable $e) { } catch (\Throwable $e) {
$this->is_usable = false; $this->is_usable = false;
if ($this->unusable_email_sent === false && is_transactional_emails_active()) { if ($this->unusable_email_sent === false && is_transactional_emails_active()) {
$mail = new MailMessage; $mail = new MailMessage();
$mail->subject('Coolify: S3 Storage Connection Error'); $mail->subject('Last Hour: S3 Storage Connection Error');
$mail->view('emails.s3-connection-error', ['name' => $this->name, 'reason' => $e->getMessage(), 'url' => route('storage.show', ['storage_uuid' => $this->uuid])]); $mail->view('emails.s3-connection-error', ['name' => $this->name, 'reason' => $e->getMessage(), 'url' => route('team.storage.show', ['storage_uuid' => $this->uuid])]);
$users = collect([]); $users = collect([]);
$members = $this->team->members()->get(); $members = $this->team->members()->get();
foreach ($members as $user) { foreach ($members as $user) {

View File

@ -132,7 +132,7 @@ public function sendVerificationEmail()
$mail->view('emails.email-verification', [ $mail->view('emails.email-verification', [
'url' => $url, 'url' => $url,
]); ]);
$mail->subject('Coolify: Verify your email.'); $mail->subject('Last Hour: Verify your email.');
send_user_an_email($mail, $this->email); send_user_an_email($mail, $this->email);
} }

View File

@ -57,10 +57,10 @@ public function toMail(): MailMessage
$pull_request_id = data_get($this->preview, 'pull_request_id', 0); $pull_request_id = data_get($this->preview, 'pull_request_id', 0);
$fqdn = $this->fqdn; $fqdn = $this->fqdn;
if ($pull_request_id === 0) { if ($pull_request_id === 0) {
$mail->subject('Coolify: Deployment failed of '.$this->application_name.'.'); $mail->subject('Last Hour: Deployment failed of ' . $this->application_name . '.');
} else { } else {
$fqdn = $this->preview->fqdn; $fqdn = $this->preview->fqdn;
$mail->subject('Coolify: Deployment failed of pull request #'.$this->preview->pull_request_id.' of '.$this->application_name.'.'); $mail->subject('Last Hour: Deployment failed of pull request #' . $this->preview->pull_request_id . ' of ' . $this->application_name . '.');
} }
$mail->view('emails.application-deployment-failed', [ $mail->view('emails.application-deployment-failed', [
'name' => $this->application_name, 'name' => $this->application_name,
@ -75,10 +75,10 @@ public function toMail(): MailMessage
public function toDiscord(): string public function toDiscord(): string
{ {
if ($this->preview) { if ($this->preview) {
$message = 'Coolify: Pull request #'.$this->preview->pull_request_id.' of '.$this->application_name.' ('.$this->preview->fqdn.') deployment failed: '; $message = 'Last Hour: Pull request #' . $this->preview->pull_request_id . ' of **' . $this->application_name . '** (' . $this->preview->fqdn . ') deployment failed: ';
$message .= '[View Deployment Logs](' . $this->deployment_url . ')'; $message .= '[View Deployment Logs](' . $this->deployment_url . ')';
} else { } else {
$message = 'Coolify: Deployment failed of '.$this->application_name.' ('.$this->fqdn.'): '; $message = 'Last Hour: Deployment failed of **' . $this->application_name . '** (' . $this->fqdn . '): ';
$message .= '[View Deployment Logs](' . $this->deployment_url . ')'; $message .= '[View Deployment Logs](' . $this->deployment_url . ')';
} }
@ -88,9 +88,9 @@ public function toDiscord(): string
public function toTelegram(): array public function toTelegram(): array
{ {
if ($this->preview) { if ($this->preview) {
$message = 'Coolify: Pull request #'.$this->preview->pull_request_id.' of '.$this->application_name.' ('.$this->preview->fqdn.') deployment failed: '; $message = 'Last Hour: Pull request #' . $this->preview->pull_request_id . ' of **' . $this->application_name . '** (' . $this->preview->fqdn . ') deployment failed: ';
} else { } else {
$message = 'Coolify: Deployment failed of '.$this->application_name.' ('.$this->fqdn.'): '; $message = 'Last Hour: Deployment failed of **' . $this->application_name . '** (' . $this->fqdn . '): ';
} }
$buttons[] = [ $buttons[] = [
'text' => 'Deployment logs', 'text' => 'Deployment logs',

View File

@ -63,10 +63,10 @@ public function toMail(): MailMessage
$pull_request_id = data_get($this->preview, 'pull_request_id', 0); $pull_request_id = data_get($this->preview, 'pull_request_id', 0);
$fqdn = $this->fqdn; $fqdn = $this->fqdn;
if ($pull_request_id === 0) { if ($pull_request_id === 0) {
$mail->subject("Coolify: New version is deployed of {$this->application_name}"); $mail->subject("Last Hour: New version is deployed of {$this->application_name}");
} else { } else {
$fqdn = $this->preview->fqdn; $fqdn = $this->preview->fqdn;
$mail->subject("Coolify: Pull request #{$pull_request_id} of {$this->application_name} deployed successfully"); $mail->subject("Last Hour: Pull request #{$pull_request_id} of {$this->application_name} deployed successfully");
} }
$mail->view('emails.application-deployment-success', [ $mail->view('emails.application-deployment-success', [
'name' => $this->application_name, 'name' => $this->application_name,
@ -81,7 +81,7 @@ public function toMail(): MailMessage
public function toDiscord(): string public function toDiscord(): string
{ {
if ($this->preview) { if ($this->preview) {
$message = 'Coolify: New PR'.$this->preview->pull_request_id.' version successfully deployed of '.$this->application_name.' $message = 'Last Hour: New PR' . $this->preview->pull_request_id . ' version successfully deployed of ' . $this->application_name . '
'; ';
if ($this->preview->fqdn) { if ($this->preview->fqdn) {
@ -89,7 +89,7 @@ public function toDiscord(): string
} }
$message .= '[Deployment logs](' . $this->deployment_url . ')'; $message .= '[Deployment logs](' . $this->deployment_url . ')';
} else { } else {
$message = 'Coolify: New version successfully deployed of '.$this->application_name.' $message = 'Last Hour: New version successfully deployed of ' . $this->application_name . '
'; ';
if ($this->fqdn) { if ($this->fqdn) {
@ -104,7 +104,7 @@ public function toDiscord(): string
public function toTelegram(): array public function toTelegram(): array
{ {
if ($this->preview) { if ($this->preview) {
$message = 'Coolify: New PR'.$this->preview->pull_request_id.' version successfully deployed of '.$this->application_name.''; $message = 'Last Hour: New PR' . $this->preview->pull_request_id . ' version successfully deployed of ' . $this->application_name . '';
if ($this->preview->fqdn) { if ($this->preview->fqdn) {
$buttons[] = [ $buttons[] = [
'text' => 'Open Application', 'text' => 'Open Application',

View File

@ -45,7 +45,7 @@ public function toMail(): MailMessage
{ {
$mail = new MailMessage; $mail = new MailMessage;
$fqdn = $this->fqdn; $fqdn = $this->fqdn;
$mail->subject("Coolify: {$this->resource_name} has been stopped"); $mail->subject("Last Hour: {$this->resource_name} has been stopped");
$mail->view('emails.application-status-changes', [ $mail->view('emails.application-status-changes', [
'name' => $this->resource_name, 'name' => $this->resource_name,
'fqdn' => $fqdn, 'fqdn' => $fqdn,
@ -57,25 +57,23 @@ public function toMail(): MailMessage
public function toDiscord(): string public function toDiscord(): string
{ {
$message = 'Coolify: '.$this->resource_name.' has been stopped. $message = 'Last Hour: ' . $this->resource_name . ' has been stopped.
'; ';
$message .= '[Open Application in Coolify]('.$this->resource_url.')'; $message .= '[Open Application in Last Hour](' . $this->resource_url . ')';
return $message; return $message;
} }
public function toTelegram(): array public function toTelegram(): array
{ {
$message = 'Coolify: '.$this->resource_name.' has been stopped.'; $message = 'Last Hour: ' . $this->resource_name . ' has been stopped.';
return [ return [
'message' => $message, 'message' => $message,
'buttons' => [ 'buttons' => [
[ [
'text' => 'Open Application in Coolify', "text" => "Open Application in Last Hour",
'url' => $this->resource_url, "url" => $this->resource_url
], ]
], ],
]; ];
} }

View File

@ -14,7 +14,9 @@ class ContainerRestarted extends Notification implements ShouldQueue
public $tries = 1; public $tries = 1;
public function __construct(public string $name, public Server $server, public ?string $url = null) {} public function __construct(public string $name, public Server $server, public ?string $url = null)
{
}
public function via(object $notifiable): array public function via(object $notifiable): array
{ {
@ -23,8 +25,8 @@ public function via(object $notifiable): array
public function toMail(): MailMessage public function toMail(): MailMessage
{ {
$mail = new MailMessage; $mail = new MailMessage();
$mail->subject("Coolify: A resource ({$this->name}) has been restarted automatically on {$this->server->name}"); $mail->subject("Last Hour: A resource ({$this->name}) has been restarted automatically on {$this->server->name}");
$mail->view('emails.container-restarted', [ $mail->view('emails.container-restarted', [
'containerName' => $this->name, 'containerName' => $this->name,
'serverName' => $this->server->name, 'serverName' => $this->server->name,
@ -36,14 +38,13 @@ public function toMail(): MailMessage
public function toDiscord(): string public function toDiscord(): string
{ {
$message = "Coolify: A resource ({$this->name}) has been restarted automatically on {$this->server->name}"; $message = "Last Hour: A resource ({$this->name}) has been restarted automatically on {$this->server->name}";
return $message; return $message;
} }
public function toTelegram(): array public function toTelegram(): array
{ {
$message = "Coolify: A resource ({$this->name}) has been restarted automatically on {$this->server->name}"; $message = "Last Hour: A resource ({$this->name}) has been restarted automatically on {$this->server->name}";
$payload = [ $payload = [
'message' => $message, 'message' => $message,
]; ];
@ -51,10 +52,10 @@ public function toTelegram(): array
$payload['buttons'] = [ $payload['buttons'] = [
[ [
[ [
'text' => 'Check Proxy in Coolify', "text" => "Check Proxy in Last Hour",
'url' => $this->url, "url" => $this->url
], ]
], ]
]; ];
} }

View File

@ -14,7 +14,9 @@ class ContainerStopped extends Notification implements ShouldQueue
public $tries = 1; public $tries = 1;
public function __construct(public string $name, public Server $server, public ?string $url = null) {} public function __construct(public string $name, public Server $server, public ?string $url = null)
{
}
public function via(object $notifiable): array public function via(object $notifiable): array
{ {
@ -23,8 +25,8 @@ public function via(object $notifiable): array
public function toMail(): MailMessage public function toMail(): MailMessage
{ {
$mail = new MailMessage; $mail = new MailMessage();
$mail->subject("Coolify: A resource has been stopped unexpectedly on {$this->server->name}"); $mail->subject("Last Hour: A resource has been stopped unexpectedly on {$this->server->name}");
$mail->view('emails.container-stopped', [ $mail->view('emails.container-stopped', [
'containerName' => $this->name, 'containerName' => $this->name,
'serverName' => $this->server->name, 'serverName' => $this->server->name,
@ -36,14 +38,13 @@ public function toMail(): MailMessage
public function toDiscord(): string public function toDiscord(): string
{ {
$message = "Coolify: A resource ($this->name) has been stopped unexpectedly on {$this->server->name}"; $message = "Last Hour: A resource ($this->name) has been stopped unexpectedly on {$this->server->name}";
return $message; return $message;
} }
public function toTelegram(): array public function toTelegram(): array
{ {
$message = "Coolify: A resource ($this->name) has been stopped unexpectedly on {$this->server->name}"; $message = "Last Hour: A resource ($this->name) has been stopped unexpectedly on {$this->server->name}";
$payload = [ $payload = [
'message' => $message, 'message' => $message,
]; ];
@ -51,10 +52,10 @@ public function toTelegram(): array
$payload['buttons'] = [ $payload['buttons'] = [
[ [
[ [
'text' => 'Open Application in Coolify', "text" => "Open Application in Last Hour",
'url' => $this->url, "url" => $this->url
], ]
], ]
]; ];
} }

View File

@ -33,8 +33,8 @@ public function via(object $notifiable): array
public function toMail(): MailMessage public function toMail(): MailMessage
{ {
$mail = new MailMessage; $mail = new MailMessage();
$mail->subject("Coolify: [ACTION REQUIRED] Backup FAILED for {$this->database->name}"); $mail->subject("Last Hour: [ACTION REQUIRED] Backup FAILED for {$this->database->name}");
$mail->view('emails.backup-failed', [ $mail->view('emails.backup-failed', [
'name' => $this->name, 'name' => $this->name,
'database_name' => $this->database_name, 'database_name' => $this->database_name,
@ -47,12 +47,12 @@ public function toMail(): MailMessage
public function toDiscord(): string public function toDiscord(): string
{ {
return "Coolify: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was FAILED.\n\nReason:\n{$this->output}"; return "Last Hour: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was FAILED.\n\nReason:\n{$this->output}";
} }
public function toTelegram(): array public function toTelegram(): array
{ {
$message = "Coolify: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was FAILED.\n\nReason:\n{$this->output}"; $message = "Last Hour: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was FAILED.\n\nReason:\n{$this->output}";
return [ return [
'message' => $message, 'message' => $message,

View File

@ -33,8 +33,8 @@ public function via(object $notifiable): array
public function toMail(): MailMessage public function toMail(): MailMessage
{ {
$mail = new MailMessage; $mail = new MailMessage();
$mail->subject("Coolify: Backup successfully done for {$this->database->name}"); $mail->subject("Last Hour: Backup successfully done for {$this->database->name}");
$mail->view('emails.backup-success', [ $mail->view('emails.backup-success', [
'name' => $this->name, 'name' => $this->name,
'database_name' => $this->database_name, 'database_name' => $this->database_name,
@ -46,12 +46,12 @@ public function toMail(): MailMessage
public function toDiscord(): string public function toDiscord(): string
{ {
return "Coolify: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was successful."; return "Last Hour: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was successful.";
} }
public function toTelegram(): array public function toTelegram(): array
{ {
$message = "Coolify: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was successful."; $message = "Last Hour: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was successful.";
ray($message); ray($message);
return [ return [

View File

@ -17,7 +17,9 @@ class HighDiskUsage extends Notification implements ShouldQueue
public $tries = 1; public $tries = 1;
public function __construct(public Server $server, public int $disk_usage, public int $cleanup_after_percentage) {} public function __construct(public Server $server, public int $disk_usage, public int $cleanup_after_percentage)
{
}
public function via(object $notifiable): array public function via(object $notifiable): array
{ {
@ -41,8 +43,8 @@ public function via(object $notifiable): array
public function toMail(): MailMessage public function toMail(): MailMessage
{ {
$mail = new MailMessage; $mail = new MailMessage();
$mail->subject("Coolify: Server ({$this->server->name}) high disk usage detected!"); $mail->subject("Last Hour: Server ({$this->server->name}) high disk usage detected!");
$mail->view('emails.high-disk-usage', [ $mail->view('emails.high-disk-usage', [
'name' => $this->server->name, 'name' => $this->server->name,
'disk_usage' => $this->disk_usage, 'disk_usage' => $this->disk_usage,
@ -54,7 +56,7 @@ public function toMail(): MailMessage
public function toDiscord(): string public function toDiscord(): string
{ {
$message = "Coolify: Server '{$this->server->name}' high disk usage detected!\nDisk usage: {$this->disk_usage}%. Threshold: {$this->cleanup_after_percentage}%.\nPlease cleanup your disk to prevent data-loss.\nHere are some tips: https://coolify.io/docs/knowledge-base/server/automated-cleanup."; $message = "Last Hour: Server '{$this->server->name}' high disk usage detected!\nDisk usage: {$this->disk_usage}%. Threshold: {$this->cleanup_after_percentage}%.\nPlease cleanup your disk to prevent data-loss.\nHere are some tips: https://coolify.io/docs/knowledge-base/server/automated-cleanup.";
return $message; return $message;
} }
@ -62,7 +64,7 @@ public function toDiscord(): string
public function toTelegram(): array public function toTelegram(): array
{ {
return [ return [
'message' => "Coolify: Server '{$this->server->name}' high disk usage detected!\nDisk usage: {$this->disk_usage}%. Threshold: {$this->cleanup_after_percentage}%.\nPlease cleanup your disk to prevent data-loss.\nHere are some tips: https://coolify.io/docs/knowledge-base/server/automated-cleanup.", 'message' => "Last Hour: Server '{$this->server->name}' high disk usage detected!\nDisk usage: {$this->disk_usage}%. Threshold: {$this->cleanup_after_percentage}%.\nPlease cleanup your disk to prevent data-loss.\nHere are some tips: https://coolify.io/docs/knowledge-base/server/automated-cleanup.",
]; ];
} }
} }

View File

@ -50,8 +50,8 @@ public function via(object $notifiable): array
public function toMail(): MailMessage public function toMail(): MailMessage
{ {
$mail = new MailMessage; $mail = new MailMessage();
$mail->subject("Coolify: Server ({$this->server->name}) revived."); $mail->subject("Last Hour: Server ({$this->server->name}) revived.");
$mail->view('emails.server-revived', [ $mail->view('emails.server-revived', [
'name' => $this->server->name, 'name' => $this->server->name,
]); ]);
@ -61,15 +61,14 @@ public function toMail(): MailMessage
public function toDiscord(): string public function toDiscord(): string
{ {
$message = "Coolify: Server '{$this->server->name}' revived. All automations & integrations are turned on again!"; $message = "Last Hour: Server '{$this->server->name}' revived. All automations & integrations are turned on again!";
return $message; return $message;
} }
public function toTelegram(): array public function toTelegram(): array
{ {
return [ return [
'message' => "Coolify: Server '{$this->server->name}' revived. All automations & integrations are turned on again!", "message" => "Last Hour: Server '{$this->server->name}' revived. All automations & integrations are turned on again!"
]; ];
} }
} }

View File

@ -17,7 +17,9 @@ class Unreachable extends Notification implements ShouldQueue
public $tries = 1; public $tries = 1;
public function __construct(public Server $server) {} public function __construct(public Server $server)
{
}
public function via(object $notifiable): array public function via(object $notifiable): array
{ {
@ -41,8 +43,8 @@ public function via(object $notifiable): array
public function toMail(): MailMessage public function toMail(): MailMessage
{ {
$mail = new MailMessage; $mail = new MailMessage();
$mail->subject("Coolify: Your server ({$this->server->name}) is unreachable."); $mail->subject("Last Hour: Your server ({$this->server->name}) is unreachable.");
$mail->view('emails.server-lost-connection', [ $mail->view('emails.server-lost-connection', [
'name' => $this->server->name, 'name' => $this->server->name,
]); ]);
@ -52,15 +54,14 @@ public function toMail(): MailMessage
public function toDiscord(): string public function toDiscord(): string
{ {
$message = "Coolify: Your server '{$this->server->name}' is unreachable. All automations & integrations are turned off! Please check your server! IMPORTANT: We automatically try to revive your server and turn on all automations & integrations."; $message = "Last Hour: Your server '{$this->server->name}' is unreachable. All automations & integrations are turned off! Please check your server! IMPORTANT: We automatically try to revive your server and turn on all automations & integrations.";
return $message; return $message;
} }
public function toTelegram(): array public function toTelegram(): array
{ {
return [ return [
'message' => "Coolify: Your server '{$this->server->name}' is unreachable. All automations & integrations are turned off! Please check your server! IMPORTANT: We automatically try to revive your server and turn on all automations & integrations.", "message" => "Last Hour: Your server '{$this->server->name}' is unreachable. All automations & integrations are turned off! Please check your server! IMPORTANT: We automatically try to revive your server and turn on all automations & integrations."
]; ];
} }
} }

View File

@ -13,7 +13,9 @@ class Test extends Notification implements ShouldQueue
public $tries = 5; public $tries = 5;
public function __construct(public ?string $emails = null) {} public function __construct(public ?string $emails = null)
{
}
public function via(object $notifiable): array public function via(object $notifiable): array
{ {
@ -22,8 +24,8 @@ public function via(object $notifiable): array
public function toMail(): MailMessage public function toMail(): MailMessage
{ {
$mail = new MailMessage; $mail = new MailMessage();
$mail->subject('Coolify: Test Email'); $mail->subject("Last Hour: Test Email");
$mail->view('emails.test'); $mail->view('emails.test');
return $mail; return $mail;
@ -31,7 +33,7 @@ public function toMail(): MailMessage
public function toDiscord(): string public function toDiscord(): string
{ {
$message = 'Coolify: This is a test Discord notification from Coolify.'; $message = 'Last Hour: This is a test Discord notification from Last Hour.';
$message .= "\n\n"; $message .= "\n\n";
$message .= '[Go to your dashboard](' . base_url() . ')'; $message .= '[Go to your dashboard](' . base_url() . ')';
@ -41,8 +43,8 @@ public function toDiscord(): string
public function toTelegram(): array public function toTelegram(): array
{ {
return [ return [
'message' => 'Coolify: This is a test Telegram notification from Coolify.', "message" => 'Last Hour: This is a test Telegram notification from Last Hour.',
'buttons' => [ "buttons" => [
[ [
'text' => 'Go to your dashboard', 'text' => 'Go to your dashboard',
'url' => base_url(), 'url' => base_url(),

View File

@ -22,15 +22,17 @@ public function via(): array
return [TransactionalEmailChannel::class]; return [TransactionalEmailChannel::class];
} }
public function __construct(public User $user) {} public function __construct(public User $user)
{
}
public function toMail(): MailMessage public function toMail(): MailMessage
{ {
$invitation = TeamInvitation::whereEmail($this->user->email)->first(); $invitation = TeamInvitation::whereEmail($this->user->email)->first();
$invitation_team = Team::find($invitation->team->id); $invitation_team = Team::find($invitation->team->id);
$mail = new MailMessage; $mail = new MailMessage();
$mail->subject('Coolify: Invitation for '.$invitation_team->name); $mail->subject('Last Hour: Invitation for ' . $invitation_team->name);
$mail->view('emails.invitation-link', [ $mail->view('emails.invitation-link', [
'team' => $invitation_team->name, 'team' => $invitation_team->name,
'email' => $this->user->email, 'email' => $this->user->email,

View File

@ -54,7 +54,7 @@ public function toMail($notifiable)
protected function buildMailMessage($url) protected function buildMailMessage($url)
{ {
$mail = new MailMessage; $mail = new MailMessage;
$mail->subject('Coolify: Reset Password'); $mail->subject('Last Hour: Reset Password');
$mail->view('emails.reset-password', ['url' => $url, 'count' => config('auth.passwords.' . config('auth.defaults.passwords') . '.expire')]); $mail->view('emails.reset-password', ['url' => $url, 'count' => config('auth.passwords.' . config('auth.defaults.passwords') . '.expire')]);
return $mail; return $mail;

View File

@ -14,7 +14,9 @@ class Test extends Notification implements ShouldQueue
public $tries = 5; public $tries = 5;
public function __construct(public string $emails) {} public function __construct(public string $emails)
{
}
public function via(): array public function via(): array
{ {
@ -23,8 +25,8 @@ public function via(): array
public function toMail(): MailMessage public function toMail(): MailMessage
{ {
$mail = new MailMessage; $mail = new MailMessage();
$mail->subject('Coolify: Test Email'); $mail->subject('Last Hour: Test Email');
$mail->view('emails.test'); $mail->view('emails.test');
return $mail; return $mail;

View File

@ -96,7 +96,7 @@ services:
"CMD-SHELL", "CMD-SHELL",
"pg_isready -U ${DB_USERNAME:-coolify}", "pg_isready -U ${DB_USERNAME:-coolify}",
"-d", "-d",
"${DB_DATABASE:-coolify}" "${DB_DATABASE:-coolify}",
] ]
interval: 5s interval: 5s
retries: 10 retries: 10

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 70 KiB

View File

@ -1,21 +1,22 @@
/** @type {import('tailwindcss').Config} */ /** @type {import('tailwindcss').Config} */
const colors = { const colors = {
"base": "#101010", base: "#101010",
"warning": "#FCD452", warning: "#FCD452",
"success": "#16A34A", success: "#16A34A",
"error": "#DC2626", error: "#DC2626",
"coollabs": "#6B16ED", coollabs: "#6B16ED",
"coollabs-100": "#7317FF", "coollabs-100": "#7317FF",
"coolgray-100": "#181818", "coolgray-100": "#181818",
"coolgray-200": "#202020", "coolgray-200": "#202020",
"coolgray-300": "#242424", "coolgray-300": "#242424",
"coolgray-400": "#282828", "coolgray-400": "#282828",
"coolgray-500": "#323232", "coolgray-500": "#323232",
} };
module.exports = { module.exports = {
darkMode: "selector", darkMode: "selector",
content: [ content: [
'./storage/framework/views/*.php', "./vendor/wire-elements/modal/resources/views/*.blade.php",
"./storage/framework/views/*.php",
"./resources/**/*.blade.php", "./resources/**/*.blade.php",
"./app/**/*.php", "./app/**/*.php",
"./resources/**/*.js", "./resources/**/*.js",
@ -26,12 +27,34 @@ module.exports = {
fontFamily: { fontFamily: {
sans: ["Inter", "sans-serif"], sans: ["Inter", "sans-serif"],
}, },
colors colors,
}, },
}, },
variants: {
scrollbar: ["dark"],
extend: {},
},
daisyui: {
themes: [
{
coollabs: {
primary: "#202020",
"primary-focus": "#242424",
secondary: "#00bcf3",
accent: "#4338ca",
neutral: "#1B1D1D",
"base-100": "#101010",
info: "#2563EB",
success: "#16A34A",
warning: "#FCD34D",
error: "#DC2626",
},
},
],
},
plugins: [ plugins: [
require("tailwindcss-scrollbar"), require("tailwindcss-scrollbar"),
require("@tailwindcss/typography"), require("@tailwindcss/typography"),
require("@tailwindcss/forms") require("@tailwindcss/forms"),
], ],
}; };