feat(branding): apply MapleDeploy UI branding

This commit is contained in:
rosslh 2026-06-19 20:23:12 -04:00
parent 2180a5e7ef
commit f81bbed7ec
101 changed files with 206 additions and 658 deletions

View file

@ -102,7 +102,8 @@ public function handle(Server $server, $fromUI = false): bool
foreach ($conflicts as $port => $conflict) { foreach ($conflicts as $port => $conflict) {
if ($conflict) { if ($conflict) {
if ($fromUI) { if ($fromUI) {
throw new \Exception("Port $port is in use.<br>You must stop the process using this port.<br><br>Docs: <a target='_blank' class='dark:text-white hover:underline' href='https://coolify.io/docs'>https://coolify.io/docs</a><br>Discord: <a target='_blank' class='dark:text-white hover:underline' href='https://coolify.io/discord'>https://coolify.io/discord</a>"); // MapleDeploy branding: support links
throw new \Exception("Port $port is in use.<br>You must stop the process using this port.<br><br>Support: <a target='_blank' class='dark:text-white hover:underline' href='https://mapledeploy.ca/contact'>https://mapledeploy.ca/contact</a>");
} else { } else {
return false; return false;
} }

View file

@ -4,8 +4,9 @@
use OpenApi\Attributes as OA; use OpenApi\Attributes as OA;
#[OA\Info(title: 'Coolify', version: '0.1')] // MapleDeploy branding: API documentation
#[OA\Server(url: 'https://app.coolify.io/api/v1', description: 'Coolify Cloud API. Change the host to your own instance if you are self-hosting.')] #[OA\Info(title: 'MapleDeploy', version: '0.1')]
#[OA\Server(url: '/api/v1', description: 'MapleDeploy API. Powered by Coolify.')]
#[OA\SecurityScheme( #[OA\SecurityScheme(
type: 'http', type: 'http',
scheme: 'bearer', scheme: 'bearer',

View file

@ -5,7 +5,6 @@
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use OpenApi\Attributes as OA; use OpenApi\Attributes as OA;
class OtherController extends Controller class OtherController extends Controller
@ -273,23 +272,6 @@ public function disable_mcp(Request $request)
return response()->json(['message' => 'MCP server disabled.'], 200); return response()->json(['message' => 'MCP server disabled.'], 200);
} }
public function feedback(Request $request)
{
$data = $request->validate([
'content' => ['required', 'string', 'min:10', 'max:2000'],
]);
$webhook_url = config('constants.webhooks.feedback_discord_webhook');
if ($webhook_url) {
Http::timeout(5)->post($webhook_url, [
'content' => $data['content'],
'allowed_mentions' => ['parse' => []],
]);
}
return response()->json(['message' => 'Feedback sent.'], 200);
}
#[OA\Get( #[OA\Get(
summary: 'Healthcheck', summary: 'Healthcheck',
description: 'Healthcheck endpoint.', description: 'Healthcheck endpoint.',

View file

@ -1,58 +0,0 @@
<?php
namespace App\Livewire;
use DanHarrin\LivewireRateLimiting\WithRateLimiting;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Support\Facades\Http;
use Livewire\Attributes\Validate;
use Livewire\Component;
class Help extends Component
{
use WithRateLimiting;
#[Validate(['required', 'min:10', 'max:1000'])]
public string $description;
#[Validate(['required', 'min:3', 'max:600'])]
public string $subject;
public function submit()
{
try {
$this->validate();
$this->rateLimit(3, 30);
$settings = instanceSettings();
$mail = new MailMessage;
$mail->view(
'emails.help',
[
'description' => $this->description,
]
);
$mail->subject("[HELP]: {$this->subject}");
$type = set_transanctional_email_settings($settings);
// Sending feedback through Cloud API
if (blank($type)) {
$url = 'https://app.coolify.io/api/feedback';
Http::post($url, [
'content' => 'User: `'.auth()->user()?->email.'` with subject: `'.$this->subject.'` has the following problem: `'.$this->description.'`',
]);
} else {
send_user_an_email($mail, auth()->user()?->email, 'feedback@coollabs.io');
}
$this->dispatch('success', 'Feedback sent.', 'We will get in touch with you as soon as possible.');
$this->reset('description', 'subject');
} catch (\Throwable $e) {
return handleError($e, $this);
}
}
public function render()
{
return view('livewire.help')->layout('layouts.app');
}
}

View file

@ -31,8 +31,7 @@ class Advanced extends Component
public ?string $allowed_ips = null; public ?string $allowed_ips = null;
#[Validate('boolean')] // MapleDeploy branding: is_sponsorship_popup_enabled removed (popup removed)
public bool $is_sponsorship_popup_enabled;
#[Validate('boolean')] #[Validate('boolean')]
public bool $disable_two_step_confirmation; public bool $disable_two_step_confirmation;
@ -57,7 +56,6 @@ public function rules()
'custom_dns_servers' => ['nullable', 'string', new ValidDnsServers], 'custom_dns_servers' => ['nullable', 'string', new ValidDnsServers],
'is_api_enabled' => 'boolean', 'is_api_enabled' => 'boolean',
'allowed_ips' => ['nullable', 'string', new ValidIpOrCidr], 'allowed_ips' => ['nullable', 'string', new ValidIpOrCidr],
'is_sponsorship_popup_enabled' => 'boolean',
'disable_two_step_confirmation' => 'boolean', 'disable_two_step_confirmation' => 'boolean',
'is_wire_navigate_enabled' => 'boolean', 'is_wire_navigate_enabled' => 'boolean',
'is_mcp_server_enabled' => 'boolean', 'is_mcp_server_enabled' => 'boolean',
@ -79,7 +77,6 @@ public function mount()
$this->is_dns_validation_enabled = $this->settings->is_dns_validation_enabled; $this->is_dns_validation_enabled = $this->settings->is_dns_validation_enabled;
$this->is_api_enabled = $this->settings->is_api_enabled; $this->is_api_enabled = $this->settings->is_api_enabled;
$this->disable_two_step_confirmation = $this->settings->disable_two_step_confirmation; $this->disable_two_step_confirmation = $this->settings->disable_two_step_confirmation;
$this->is_sponsorship_popup_enabled = $this->settings->is_sponsorship_popup_enabled;
$this->is_wire_navigate_enabled = $this->settings->is_wire_navigate_enabled ?? true; $this->is_wire_navigate_enabled = $this->settings->is_wire_navigate_enabled ?? true;
$this->is_mcp_server_enabled = $this->settings->is_mcp_server_enabled ?? false; $this->is_mcp_server_enabled = $this->settings->is_mcp_server_enabled ?? false;
$this->webhook_allowed_internal_hosts = collect($this->settings->webhook_allowed_internal_hosts ?? [])->implode(','); $this->webhook_allowed_internal_hosts = collect($this->settings->webhook_allowed_internal_hosts ?? [])->implode(',');
@ -174,7 +171,6 @@ public function instantSave(?array $webhookAllowedInternalHosts = null)
$this->settings->custom_dns_servers = $this->custom_dns_servers; $this->settings->custom_dns_servers = $this->custom_dns_servers;
$this->settings->is_api_enabled = $this->is_api_enabled; $this->settings->is_api_enabled = $this->is_api_enabled;
$this->settings->allowed_ips = $this->allowed_ips; $this->settings->allowed_ips = $this->allowed_ips;
$this->settings->is_sponsorship_popup_enabled = $this->is_sponsorship_popup_enabled;
$this->settings->disable_two_step_confirmation = $this->disable_two_step_confirmation; $this->settings->disable_two_step_confirmation = $this->disable_two_step_confirmation;
$this->settings->is_wire_navigate_enabled = $this->is_wire_navigate_enabled; $this->settings->is_wire_navigate_enabled = $this->is_wire_navigate_enabled;
$this->settings->is_mcp_server_enabled = $this->is_mcp_server_enabled; $this->settings->is_mcp_server_enabled = $this->is_mcp_server_enabled;

View file

@ -17,7 +17,7 @@
| |
*/ */
'name' => env('APP_NAME', 'Coolify'), 'name' => env('APP_NAME', 'MapleDeploy'), // MapleDeploy branding
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -48,7 +48,7 @@
{!! $icon !!} {!! $icon !!}
</div> </div>
<div class="ml-3 {{ $dismissible ? 'pr-8' : '' }}"> <div class="ml-3 {{ $dismissible ? 'pr-8' : '' }}">
<div class="text-base font-bold {{ $colorScheme['title'] }}"> <div class="text-base font-bold font-display {{ $colorScheme['title'] }}">
{{ $title }} {{ $title }}
</div> </div>
<div class="mt-2 text-sm {{ $colorScheme['text'] }}"> <div class="mt-2 text-sm {{ $colorScheme['text'] }}">

View file

@ -1,6 +1,7 @@
{{ Illuminate\Mail\Markdown::parse('---') }} {{ Illuminate\Mail\Markdown::parse('---') }}
Thank you,<br> Thank you,<br>
{{ config('app.name') ?? 'Coolify' }} {{ config('app.name') ?? 'MapleDeploy' }}
{{ Illuminate\Mail\Markdown::parse('[Contact Support](https://coolify.io/docs/contact)') }} {{-- MapleDeploy branding: support link --}}
{{ Illuminate\Mail\Markdown::parse('[Contact Support](https://mapledeploy.ca/contact)') }}

View file

@ -1,5 +1,5 @@
<div class="flex flex-col items-center justify-center h-32"> <div class="flex flex-col items-center justify-center h-32">
<span class="text-xl font-bold dark:text-white">You have reached the limit of {{ $name }} you can create.</span> <span class="text-xl font-bold font-display dark:text-white">You have reached the limit of {{ $name }} you can create.</span>
<span>Please <a class="dark:text-white underline" {{ wireNavigate() }} href="{{ route('subscription.show') }}">upgrade your <span>Please <a class="dark:text-white underline" {{ wireNavigate() }} href="{{ route('subscription.show') }}">upgrade your
subscription</a> to create more subscription</a> to create more
{{ $name }}.</span> {{ $name }}.</span>

View file

@ -93,16 +93,21 @@
}"> }">
<div class="flex pt-4 pb-4 pl-2 pr-3 items-start gap-3" <div class="flex pt-4 pb-4 pl-2 pr-3 items-start gap-3"
:class="collapsed ? 'lg:flex-col lg:items-center lg:pl-0 lg:pr-0 lg:gap-3 lg:pt-7' : 'lg:pt-6'"> :class="collapsed ? 'lg:flex-col lg:items-center lg:pl-0 lg:pr-0 lg:gap-3 lg:pt-7' : 'lg:pt-6'">
<div class="flex min-w-0 flex-1 flex-col" :class="collapsed && 'lg:hidden'"> {{-- MapleDeploy branding --}}
<a href="/" {{ wireNavigate() }} class="text-2xl font-bold tracking-tight dark:text-white hover:opacity-80 transition-opacity">Coolify</a> <div class="flex flex-col min-w-0 flex-1" :class="collapsed && 'lg:hidden'">
<x-version /> <a href="/" {{ wireNavigate() }} class="hover:opacity-80 transition-opacity">
<img src="https://mapledeploy.ca/api/logo/lockup?height=40" alt="MapleDeploy" class="max-h-6 w-auto max-w-full dark:hidden" />
<img src="https://mapledeploy.ca/api/logo/lockup?height=40&dark=true" alt="MapleDeploy" class="hidden max-h-6 w-auto max-w-full dark:block" />
</a>
<span class="text-xs opacity-75 dark:text-neutral-400">Powered by Coolify</span>
</div> </div>
{{-- MapleDeploy branding: collapsed-sidebar mark --}}
<div class="hidden flex-col items-center w-full gap-1" <div class="hidden flex-col items-center w-full gap-1"
:class="collapsed && 'lg:flex'"> :class="collapsed && 'lg:flex'">
<a href="/" {{ wireNavigate() }} <a href="/" {{ wireNavigate() }}
class="hover:opacity-80 transition-opacity" class="hover:opacity-80 transition-opacity"
title="Coolify"> title="MapleDeploy">
<img src="/coolify-logo.svg" alt="Coolify" class="w-6 h-6" /> <img src="https://mapledeploy.ca/api/logo/mark?height=64" alt="MapleDeploy" class="w-6 h-6" />
</a> </a>
<x-version class="text-[10px]" /> <x-version class="text-[10px]" />
</div> </div>
@ -314,20 +319,7 @@ class="{{ request()->is('team*') ? 'menu-item-active menu-item' : 'menu-item' }}
<span class="menu-item-label" :class="collapsed && 'lg:hidden'">Teams</span> <span class="menu-item-label" :class="collapsed && 'lg:hidden'">Teams</span>
</a> </a>
</li> </li>
@if (isCloud() && auth()->user()->isAdmin()) {{-- MapleDeploy branding: Cloud subscription menu removed --}}
<li>
<a title="Subscription" {{ wireNavigate() }}
class="{{ request()->is('subscription*') ? 'menu-item-active menu-item' : 'menu-item' }}"
href="{{ route('subscription.show') }}">
<svg class="menu-item-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill="none" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2"
d="M3 8a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3zm0 2h18M7 15h.01M11 15h2" />
</svg>
<span class="menu-item-label" :class="collapsed && 'lg:hidden'">Subscription</span>
</a>
</li>
@endif
@if (isInstanceAdmin()) @if (isInstanceAdmin())
<li> <li>
@ -347,20 +339,7 @@ class="{{ request()->is('settings*') ? 'menu-item-active menu-item' : 'menu-item
</li> </li>
@endif @endif
@if (isCloud() || isDev()) {{-- MapleDeploy branding: Cloud admin menu removed --}}
@if (isInstanceAdmin() || session('impersonating'))
<li>
<a title="Admin" class="menu-item" href="/admin" {{ wireNavigate() }}>
<svg class="text-pink-500 menu-item-icon" viewBox="0 0 256 256"
xmlns="http://www.w3.org/2000/svg">
<path fill="currentColor"
d="M177.62 159.6a52 52 0 0 1-34 34a12.2 12.2 0 0 1-3.6.55a12 12 0 0 1-3.6-23.45a28 28 0 0 0 18.32-18.32a12 12 0 0 1 22.9 7.2ZM220 144a92 92 0 0 1-184 0c0-28.81 11.27-58.18 33.48-87.28a12 12 0 0 1 17.9-1.33l19.69 19.11L127 19.89a12 12 0 0 1 18.94-5.12C168.2 33.25 220 82.85 220 144m-24 0c0-41.71-30.61-78.39-52.52-99.29l-20.21 55.4a12 12 0 0 1-19.63 4.5L80.71 82.36C67 103.38 60 124.06 60 144a68 68 0 0 0 136 0" />
</svg>
<span class="menu-item-label" :class="collapsed && 'lg:hidden'">Admin</span>
</a>
</li>
@endif
@endif
<div class="flex-1"></div> <div class="flex-1"></div>
<li> <li>
<livewire:settings-dropdown trigger="changelog-sidebar" /> <livewire:settings-dropdown trigger="changelog-sidebar" />
@ -383,39 +362,19 @@ class="{{ request()->is('onboarding*') ? 'menu-item-active menu-item' : 'menu-it
Onboarding Onboarding
</a> </a>
</li> --}} </li> --}}
{{-- MapleDeploy branding: AGPL source code link (license requirement) --}}
<li> <li>
<a title="Sponsor us" class="menu-item" href="https://coolify.io/sponsorships" <a title="Source code (AGPL-3.0)" class="menu-item" href="https://forgejo.mapledeploy.ca/rosslh/coolify"
target="_blank"> target="_blank">
<svg class="text-pink-500 menu-item-icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <svg class="menu-item-icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round" <path fill="none" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2"> stroke-linejoin="round" stroke-width="2"
<path d="M19.5 12.572L12 20l-7.5-7.428A5 5 0 1 1 12 6.006a5 5 0 1 1 7.5 6.572" /> d="M16 18l6-6-6-6M8 6l-6 6 6 6" />
<path
d="M12 6L8.707 9.293a1 1 0 0 0 0 1.414l.543.543c.69.69 1.81.69 2.5 0l1-1a3.182 3.182 0 0 1 4.5 0l2.25 2.25m-7 3l2 2M15 13l2 2" />
</g>
</svg> </svg>
<span class="menu-item-label" :class="collapsed && 'lg:hidden'">Sponsor us</span> <span class="menu-item-label" :class="collapsed && 'lg:hidden'">Source code</span>
</a> </a>
</li> </li>
@endif @endif
@if (!isSubscribed() && isCloud() && auth()->user()->teams()->get()->count() > 1)
<livewire:navbar-delete-team />
@endif
<li>
<x-modal-input title="How can we help?">
<x-slot:content>
<div title="Send us feedback or get help!" class="cursor-pointer menu-item"
wire:click="help">
<svg class="menu-item-icon" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg">
<path fill="currentColor"
d="M140 180a12 12 0 1 1-12-12a12 12 0 0 1 12 12M128 72c-22.06 0-40 16.15-40 36v4a8 8 0 0 0 16 0v-4c0-11 10.77-20 24-20s24 9 24 20s-10.77 20-24 20a8 8 0 0 0-8 8v8a8 8 0 0 0 16 0v-.72c18.24-3.35 32-17.9 32-35.28c0-19.85-17.94-36-40-36m104 56A104 104 0 1 1 128 24a104.11 104.11 0 0 1 104 104m-16 0a88 88 0 1 0-88 88a88.1 88.1 0 0 0 88-88" />
</svg>
<span class="menu-item-label" :class="collapsed && 'lg:hidden'">Feedback</span>
</div>
</x-slot:content>
<livewire:help />
</x-modal-input>
</li>
<li> <li>
<form action="/logout" method="POST"> <form action="/logout" method="POST">
@csrf @csrf

View file

@ -35,19 +35,21 @@ class="font-bold dark:text-warning">{{ config('constants.limits.trial_period') }
</div> </div>
</div> </div>
<div class="p-4 rounded-sm bg-coolgray-400"> <div class="p-4 rounded-sm bg-coolgray-400">
{{-- MapleDeploy branding: link to Forgejo source repo --}}
<h2 id="tier-hobby" class="flex items-start gap-4 text-4xl font-bold tracking-tight">Unlimited Trial <h2 id="tier-hobby" class="flex items-start gap-4 text-4xl font-bold tracking-tight">Unlimited Trial
<x-forms.button><a class="font-bold dark:text-white hover:no-underline" <x-forms.button><a class="font-bold dark:text-white hover:no-underline"
href="https://github.com/coollabsio/coolify">Get Started</a></x-forms.button> href="https://forgejo.mapledeploy.ca/rosslh/coolify">Get Started</a></x-forms.button>
</h2> </h2>
<p class="mt-4 text-sm leading-6">Start self-hosting <span class="dark:text-warning">without limits</span> <p class="mt-4 text-sm leading-6">Start self-hosting <span class="dark:text-warning">without limits</span>
with with
our the
OSS version. Same features as the paid version, but you have to manage by yourself.</p> open source version. Same features as the paid version, but you have to manage by yourself.</p>
</div> </div>
<div class="flow-root mt-12"> <div class="flow-root mt-12">
{{-- MapleDeploy branding: link to mapledeploy.ca --}}
<div class="pb-10 text-xl text-center">For the detailed list of features, please visit our landing page: <a <div class="pb-10 text-xl text-center">For the detailed list of features, please visit our landing page: <a
class="font-bold underline dark:text-white" href="https://coolify.io">coolify.io</a></div> class="font-bold underline dark:text-white" href="https://mapledeploy.ca">mapledeploy.ca</a></div>
<div <div
class="grid max-w-sm grid-cols-1 -mt-16 divide-y divide-neutral-200 dark:divide-coolgray-500 isolate gap-y-16 sm:mx-auto lg:-mx-8 lg:mt-0 lg:max-w-none lg:grid-cols-3 lg:divide-x lg:divide-y-0 xl:-mx-4"> class="grid max-w-sm grid-cols-1 -mt-16 divide-y divide-neutral-200 dark:divide-coolgray-500 isolate gap-y-16 sm:mx-auto lg:-mx-8 lg:mt-0 lg:max-w-none lg:grid-cols-3 lg:divide-x lg:divide-y-0 xl:-mx-4">

View file

@ -1,6 +1,6 @@
<div class="pb-5"> <div class="pb-5">
<h1>Settings</h1> <h1>Settings</h1>
<div class="subtitle">Instance wide settings for Coolify.</div> <div class="subtitle">Instance wide settings for MapleDeploy.</div>
<div class="navbar-main"> <div class="navbar-main">
<nav class="flex items-center gap-6 min-h-10 whitespace-nowrap"> <nav class="flex items-center gap-6 min-h-10 whitespace-nowrap">
<a class="{{ request()->routeIs('settings.index') ? 'dark:text-white' : '' }}" {{ wireNavigate() }} <a class="{{ request()->routeIs('settings.index') ? 'dark:text-white' : '' }}" {{ wireNavigate() }}

View file

@ -1,4 +1,4 @@
<a {{ $attributes->merge(['class' => 'text-xs cursor-pointer opacity-90 hover:opacity-100 dark:hover:text-white hover:text-black']) }} {{-- MapleDeploy branding: show version without linking to upstream releases --}}
href="https://github.com/coollabsio/coolify/releases/tag/v{{ config('constants.coolify.version') }}" target="_blank"> <span {{ $attributes->merge(['class' => 'text-xs opacity-90 dark:text-neutral-500']) }}>
v{{ config('constants.coolify.version') }} v{{ config('constants.coolify.version') }}
</a> </span>

View file

@ -1,7 +1,7 @@
<x-emails.layout> <x-emails.layout>
We would like to inform you that a {{ config('constants.limits.trial_period') }} days of trial has been added to all subscription plans. We would like to inform you that a {{ config('constants.limits.trial_period') }} days of trial has been added to all subscription plans.
You can try out Coolify, without payment information for free. If you like it, you can upgrade to a paid plan at any time. You can try out MapleDeploy, without payment information for free. If you like it, you can upgrade to a paid plan at any time.
[Click here](https://app.coolify.io/subscription/new) to start your trial. [Click here](https://app.coolify.io/subscription/new) to start your trial.
</x-emails.layout> </x-emails.layout>

View file

@ -2,6 +2,7 @@
A resource ({{ $containerName }}) has been restarted automatically on {{ $serverName }}, because it was stopped unexpectedly. A resource ({{ $containerName }}) has been restarted automatically on {{ $serverName }}, because it was stopped unexpectedly.
@if ($containerName === 'coolify-proxy') @if ($containerName === 'coolify-proxy')
{{-- Note: Coolify Proxy is the technical component name, not a branding reference --}}
Coolify Proxy should run on your server as you have FQDNs set up in one of your resources. Coolify Proxy should run on your server as you have FQDNs set up in one of your resources.
If you don't want to use Coolify Proxy, please remove FQDN from your resources or set Proxy type to Custom(None). If you don't want to use Coolify Proxy, please remove FQDN from your resources or set Proxy type to Custom(None).

View file

@ -1,5 +0,0 @@
{{ $description }}
{{ Illuminate\Mail\Markdown::parse('---') }}
{{-- {{ Illuminate\Mail\Markdown::parse($debug) }} --}}

View file

@ -6,7 +6,7 @@
{{ $errorMessage }} {{ $errorMessage }}
</pre> </pre>
The server has been removed from Coolify, but may still exist in your Hetzner Cloud account. The server has been removed from MapleDeploy, but may still exist in your Hetzner Cloud account.
Please check your Hetzner Cloud console and manually delete the server if needed to avoid ongoing charges. Please check your Hetzner Cloud console and manually delete the server if needed to avoid ongoing charges.

View file

@ -9,5 +9,5 @@
--- ---
You can manage your server and view more details in your [Coolify Dashboard]({{ $server_url }}). You can manage your server and view more details in your [MapleDeploy dashboard]({{ $server_url }}).
</x-emails.layout> </x-emails.layout>

View file

@ -41,7 +41,7 @@
1. Review the available updates 1. Review the available updates
2. Plan maintenance window if critical packages are involved 2. Plan maintenance window if critical packages are involved
3. Apply updates through the Coolify dashboard 3. Apply updates through the MapleDeploy dashboard
4. Monitor services after updates are applied 4. Monitor services after updates are applied
@else @else
Your server is up to date! No packages require updating at this time. Your server is up to date! No packages require updating at this time.
@ -49,5 +49,5 @@
--- ---
You can manage server patches in your [Coolify Dashboard]({{ $server_url }}). You can manage server patches in your [MapleDeploy dashboard]({{ $server_url }}).
</x-emails.layout> </x-emails.layout>

View file

@ -1,5 +1,6 @@
{{-- MapleDeploy branding: upstream cloud references removed --}}
<x-emails.layout> <x-emails.layout>
Your last invoice has failed to be paid for Coolify Cloud. Your last invoice has failed to be paid for MapleDeploy.
Please update payment details [here]({{ $stripeCustomerPortal }}). Please update your payment details [here]({{ $stripeCustomerPortal }}).
</x-emails.layout> </x-emails.layout>

View file

@ -1,5 +1,6 @@
{{-- MapleDeploy branding: upstream cloud references removed --}}
<x-emails.layout> <x-emails.layout>
Your trial ended. All automations and integrations are disabled for all of your servers. Your trial has ended. All automations and integrations are disabled for your servers.
Please update payment details [here]({{ $stripeCustomerPortal }}) or in [Coolify Cloud](https://app.coolify.io) to continue using our services. Please update your payment details [here]({{ $stripeCustomerPortal }}) to continue using MapleDeploy.
</x-emails.layout> </x-emails.layout>

View file

@ -69,9 +69,12 @@ class="absolute top-8 -right-3 z-50 hidden lg:flex items-center justify-center w
<div <div
class="sticky top-0 z-40 flex items-center justify-between px-4 py-4 gap-x-6 sm:px-6 lg:hidden bg-white/95 dark:bg-base/95 backdrop-blur-sm border-b border-neutral-300/50 dark:border-coolgray-200/50"> class="sticky top-0 z-40 flex items-center justify-between px-4 py-4 gap-x-6 sm:px-6 lg:hidden bg-white/95 dark:bg-base/95 backdrop-blur-sm border-b border-neutral-300/50 dark:border-coolgray-200/50">
<div class="flex items-center gap-3 flex-shrink-0"> {{-- MapleDeploy branding --}}
<a href="/" <div class="flex items-center gap-3 min-w-0 flex-1">
class="text-xl font-bold tracking-wide dark:text-white hover:opacity-80 transition-opacity">Coolify</a> <a href="/" class="hover:opacity-80 transition-opacity min-w-0">
<img src="https://mapledeploy.ca/api/logo/lockup?height=40" alt="MapleDeploy" class="max-h-6 w-auto max-w-full dark:hidden" />
<img src="https://mapledeploy.ca/api/logo/lockup?height=40&dark=true" alt="MapleDeploy" class="hidden max-h-6 w-auto max-w-full dark:block" />
</a>
<livewire:switch-team /> <livewire:switch-team />
</div> </div>
<button type="button" class="-m-2.5 p-2.5 dark:text-warning" x-on:click="open = !open"> <button type="button" class="-m-2.5 p-2.5 dark:text-warning" x-on:click="open = !open">

View file

@ -16,19 +16,17 @@
<meta name="robots" content="noindex"> <meta name="robots" content="noindex">
<meta name="theme-color" content="#ffffff" id="theme-color-meta" /> <meta name="theme-color" content="#ffffff" id="theme-color-meta" />
<meta name="color-scheme" content="dark light" /> <meta name="color-scheme" content="dark light" />
<meta name="Description" content="Coolify: An open-source & self-hostable Heroku / Netlify / Vercel alternative" /> {{-- MapleDeploy branding --}}
<meta name="Description" content="MapleDeploy: Managed Coolify hosting on Canadian infrastructure" />
<meta name="viewport" content="width=device-width,initial-scale=1" /> <meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@coolifyio" /> <meta name="twitter:title" content="MapleDeploy" />
<meta name="twitter:title" content="Coolify" /> <meta name="twitter:description" content="Managed Coolify hosting on Canadian infrastructure." />
<meta name="twitter:description" content="An open-source & self-hostable Heroku / Netlify / Vercel alternative." />
<meta name="twitter:image" content="https://cdn.coollabs.io/og-images/coolify.png" />
<meta property="og:type" content="website" /> <meta property="og:type" content="website" />
<meta property="og:url" content="https://coolify.io" /> <meta property="og:url" content="https://mapledeploy.ca" />
<meta property="og:title" content="Coolify" /> <meta property="og:title" content="MapleDeploy" />
<meta property="og:description" content="An open-source & self-hostable Heroku / Netlify / Vercel alternative." /> <meta property="og:description" content="Managed Coolify hosting on Canadian infrastructure." />
<meta property="og:site_name" content="Coolify" /> <meta property="og:site_name" content="MapleDeploy" />
<meta property="og:image" content="https://cdn.coollabs.io/og-images/coolify.png" />
@use('App\Models\InstanceSettings') @use('App\Models\InstanceSettings')
@php @php
@ -43,12 +41,9 @@
} }
} }
@endphp @endphp
<title>{{ $name }}{{ $title ?? 'Coolify' }}</title> <title>{{ $name }}{{ $title ?? 'MapleDeploy' }}</title> {{-- MapleDeploy branding --}}
@env('local') {{-- MapleDeploy branding: single favicon for all environments --}}
<link rel="icon" href="{{ asset('coolify-logo-dev-transparent.png') }}" type="image/png" /> <link rel="icon" href="{{ asset('mapledeploy-favicon.ico') }}" type="image/x-icon" />
@else
<link rel="icon" href="{{ asset('coolify-logo.svg') }}" type="image/svg+xml" />
@endenv
<meta name="csrf-token" content="{{ csrf_token() }}"> <meta name="csrf-token" content="{{ csrf_token() }}">
@vite(['resources/js/app.js', 'resources/css/app.css']) @vite(['resources/js/app.js', 'resources/css/app.css'])
<script> <script>
@ -62,10 +57,7 @@
display: none !important; display: none !important;
} }
</style> </style>
@if (config('app.name') == 'Coolify Cloud') {{-- MapleDeploy branding: upstream cloud analytics removed --}}
<script defer data-domain="app.coolify.io" src="https://analytics.coollabs.io/js/plausible.js"></script>
<script src="https://js.sentry-cdn.com/0f8593910512b5cdd48c6da78d4093be.min.js" crossorigin="anonymous"></script>
@endif
@auth @auth
<script type="text/javascript" src="{{ URL::asset('js/echo.js') }}"></script> <script type="text/javascript" src="{{ URL::asset('js/echo.js') }}"></script>
<script type="text/javascript" src="{{ URL::asset('js/pusher.js') }}"></script> <script type="text/javascript" src="{{ URL::asset('js/pusher.js') }}"></script>
@ -148,6 +140,7 @@
let cpuColor = '#1e90ff' let cpuColor = '#1e90ff'
let ramColor = '#00ced1' let ramColor = '#00ced1'
let textColor = '#ffffff' let textColor = '#ffffff'
let gridColor = '#44403c'
let editorBackground = '#181818' let editorBackground = '#181818'
let editorTheme = 'blackboard' let editorTheme = 'blackboard'
@ -160,12 +153,14 @@ function checkTheme() {
cpuColor = '#1e90ff' cpuColor = '#1e90ff'
ramColor = '#00ced1' ramColor = '#00ced1'
textColor = '#ffffff' textColor = '#ffffff'
gridColor = '#44403c'
editorBackground = '#181818' editorBackground = '#181818'
editorTheme = 'blackboard' editorTheme = 'blackboard'
} else { } else {
cpuColor = '#1e90ff' cpuColor = '#1e90ff'
ramColor = '#00ced1' ramColor = '#00ced1'
textColor = '#000000' textColor = '#000000'
gridColor = '#d6d3d1'
editorBackground = '#ffffff' editorBackground = '#ffffff'
editorTheme = null editorTheme = null
} }

View file

@ -1,13 +1,13 @@
@php use App\Enums\ProxyTypes; @endphp @php use App\Enums\ProxyTypes; @endphp
<x-slot:title> <x-slot:title>
Onboarding | Coolify Onboarding | MapleDeploy
</x-slot> </x-slot>
<section class="w-full"> <section class="w-full">
<div class="flex flex-col items-center w-full space-y-8"> <div class="flex flex-col items-center w-full space-y-8">
@if ($currentState === 'welcome') @if ($currentState === 'welcome')
<div class="w-full max-w-2xl text-center space-y-8"> <div class="w-full max-w-2xl text-center space-y-8">
<div class="space-y-4"> <div class="space-y-4">
<h1 class="text-4xl font-bold lg:text-6xl">Welcome to Coolify</h1> <h1 class="text-4xl font-bold lg:text-6xl">Welcome to MapleDeploy</h1>
<p class="text-lg lg:text-xl dark:text-neutral-400"> <p class="text-lg lg:text-xl dark:text-neutral-400">
Connect your first server and start deploying in minutes Connect your first server and start deploying in minutes
</p> </p>
@ -81,17 +81,17 @@ class="text-sm dark:text-neutral-400 hover:text-coollabs dark:hover:text-warning
<x-boarding-progress :currentStep="0" /> <x-boarding-progress :currentStep="0" />
<x-boarding-step title="Platform Overview"> <x-boarding-step title="Platform Overview">
<x-slot:question> <x-slot:question>
Coolify automates deployment and infrastructure management on your own servers. Deploy applications MapleDeploy automates deployment and infrastructure management on your own servers. Deploy applications
from Git, manage databases, and monitor everything—without vendor lock-in. from Git, manage databases, and monitor everything—without vendor lock-in.
</x-slot:question> </x-slot:question>
<x-slot:explanation> <x-slot:explanation>
<p> <p>
<x-highlighted text="Automation:" /> Coolify handles server configuration, Docker management, <x-highlighted text="Automation:" /> MapleDeploy handles server configuration, Docker management,
and and
deployments automatically. deployments automatically.
</p> </p>
<p> <p>
<x-highlighted text="Self-hosted:" /> All data and configurations live on your infrastructure. <x-highlighted text="Your infrastructure:" /> All data and configurations live on your servers.
Works offline except for external integrations. Works offline except for external integrations.
</p> </p>
<p> <p>
@ -132,7 +132,7 @@ class="px-2 py-1 text-xs font-bold uppercase tracking-wide bg-neutral-100 dark:b
<div> <div>
<h3 class="text-xl font-bold mb-2">This Machine</h3> <h3 class="text-xl font-bold mb-2">This Machine</h3>
<p class="text-sm dark:text-neutral-400"> <p class="text-sm dark:text-neutral-400">
Deploy on the server running Coolify. Best for testing and single-server setups. Deploy on the server running MapleDeploy. Best for testing and single-server setups.
</p> </p>
</div> </div>
</div> </div>
@ -163,62 +163,7 @@ class="px-2 py-1 text-xs font-bold uppercase tracking-wide bg-coollabs/10 dark:b
</div> </div>
</div> </div>
</button> </button>
@can('viewAny', App\Models\CloudProviderToken::class) {{-- MapleDeploy branding: Hetzner and Vultr cloud provider options removed --}}
@if ($currentState === 'select-server-type')
<x-modal-input title="Connect a Hetzner Server" isFullWidth>
<x-slot:content>
<div
class="group relative box-without-bg cursor-pointer hover:border-coollabs transition-all duration-200 p-6 h-full min-h-[210px]">
<div class="flex flex-col gap-4 text-left">
<div class="flex items-center justify-between">
<svg class="size-10" viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg">
<rect width="200" height="200" fill="#D50C2D" rx="8" />
<path d="M40 40 H60 V90 H140 V40 H160 V160 H140 V110 H60 V160 H40 Z"
fill="white" />
</svg>
<span
class="px-2 py-1 text-xs font-bold uppercase tracking-wide bg-coollabs/10 dark:bg-warning/20 text-coollabs dark:text-warning rounded">
Recommended
</span>
</div>
<div>
<h3 class="text-xl font-bold mb-2">Hetzner Cloud</h3>
<p class="text-sm dark:text-neutral-400">
Deploy servers directly from your Hetzner Cloud account.
</p>
</div>
</div>
</div>
</x-slot:content>
<livewire:server.new.by-hetzner :limit_reached="false" :from_onboarding="true" />
</x-modal-input>
<x-modal-input title="Connect a Vultr Server" isFullWidth>
<x-slot:content>
<div
class="group relative box-without-bg cursor-pointer hover:border-coollabs transition-all duration-200 p-6 h-full min-h-[210px]">
<div class="flex flex-col gap-4 text-left">
<div class="flex items-center justify-between">
<svg class="size-10" viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg">
<rect width="200" height="200" fill="#007BFC" rx="8" />
<path d="M42 46 H73 L100 127 L127 46 H158 L114 154 H86 Z"
fill="white" />
</svg>
</div>
<div>
<h3 class="text-xl font-bold mb-2">Vultr Cloud</h3>
<p class="text-sm dark:text-neutral-400">
Deploy servers directly from your Vultr account.
</p>
</div>
</div>
</div>
</x-slot:content>
<livewire:server.new.by-vultr :limit_reached="false" :from_onboarding="true" />
</x-modal-input>
@endif
@endcan
</div> </div>
@if (!$serverReachable) @if (!$serverReachable)
@ -235,6 +180,7 @@ class="group relative box-without-bg cursor-pointer hover:border-coollabs transi
wire:model="remoteServerUser" :value="$remoteServerUser" /> wire:model="remoteServerUser" :value="$remoteServerUser" />
<p class="text-xs mt-1"> <p class="text-xs mt-1">
Non-root user is experimental: Non-root user is experimental:
{{-- MapleDeploy branding: link to upstream Coolify docs for technical reference --}}
<a class="font-bold underline" target="_blank" <a class="font-bold underline" target="_blank"
href="https://coolify.io/docs/knowledge-base/server/non-root-user">docs</a> href="https://coolify.io/docs/knowledge-base/server/non-root-user">docs</a>
</p> </p>
@ -253,6 +199,7 @@ class="bg-red-200 dark:bg-red-900 px-1 rounded-sm">~/.ssh/authorized_keys</code>
</div> </div>
<p class="mb-4"> <p class="mb-4">
{{-- MapleDeploy branding: link to upstream Coolify docs for technical reference --}}
For more help, check this <a target="_blank" class="underline font-semibold" For more help, check this <a target="_blank" class="underline font-semibold"
href="https://coolify.io/docs/knowledge-base/server/openssh">documentation</a>. href="https://coolify.io/docs/knowledge-base/server/openssh">documentation</a>.
</p> </p>
@ -272,12 +219,12 @@ class="bg-red-200 dark:bg-red-900 px-1 rounded-sm">~/.ssh/authorized_keys</code>
called resources). All CPU-intensive operations run on the target server. called resources). All CPU-intensive operations run on the target server.
</p> </p>
<p> <p>
<x-highlighted text="Localhost:" /> The machine running Coolify. Not recommended for production <x-highlighted text="Localhost:" /> The machine running MapleDeploy. Not recommended for production
workloads due to resource contention. workloads due to resource contention.
</p> </p>
<p> <p>
<x-highlighted text="Remote Server:" /> Any SSH-accessible server—cloud providers (AWS, Hetzner, <x-highlighted text="Remote Server:" /> Any SSH-accessible server—cloud providers,
DigitalOcean), bare metal, or self-hosted infrastructure. bare metal, or self-hosted infrastructure.
</p> </p>
</x-slot:explanation> </x-slot:explanation>
</x-boarding-step> </x-boarding-step>
@ -360,7 +307,7 @@ class="text-xs bg-coolgray-300 dark:bg-coolgray-400 px-1 py-0.5 rounded">~/.ssh/
file. file.
</p> </p>
<p> <p>
<x-highlighted text="Key Generation:" /> Coolify generates ED25519 keys by default for optimal <x-highlighted text="Key Generation:" /> MapleDeploy generates ED25519 keys by default for optimal
security and performance. security and performance.
</p> </p>
</x-slot:explanation> </x-slot:explanation>
@ -410,7 +357,7 @@ class="text-xs bg-coolgray-300 dark:bg-coolgray-400 px-1 py-0.5 rounded">~/.ssh/
</x-slot:actions> </x-slot:actions>
<x-slot:explanation> <x-slot:explanation>
<p> <p>
<x-highlighted text="Key Storage:" /> Private keys are encrypted at rest in Coolify's database. <x-highlighted text="Key Storage:" /> Private keys are encrypted at rest in the database.
</p> </p>
<p> <p>
<x-highlighted text="Public Key Distribution:" /> Deploy the public key to <x-highlighted text="Public Key Distribution:" /> Deploy the public key to
@ -467,6 +414,7 @@ class="grid grid-cols-1 lg:grid-cols-2 gap-4 p-4 rounded-lg border border-neutra
wire:model="remoteServerUser" /> wire:model="remoteServerUser" />
<p class="mt-1 text-xs dark:text-white text-black"> <p class="mt-1 text-xs dark:text-white text-black">
Non-root user support is experimental. Non-root user support is experimental.
{{-- MapleDeploy branding: link to upstream Coolify docs for technical reference --}}
<a class="font-bold underline hover:text-coollabs" target="_blank" <a class="font-bold underline hover:text-coollabs" target="_blank"
href="https://coolify.io/docs/knowledge-base/server/non-root-user">Learn href="https://coolify.io/docs/knowledge-base/server/non-root-user">Learn
more</a> more</a>
@ -497,7 +445,7 @@ class="grid grid-cols-1 lg:grid-cols-2 gap-4 p-4 rounded-lg border border-neutra
<x-boarding-progress :currentStep="2" /> <x-boarding-progress :currentStep="2" />
<x-boarding-step title="Server Validation"> <x-boarding-step title="Server Validation">
<x-slot:question> <x-slot:question>
Coolify will automatically install Docker {{ $minDockerVersion }}+ if not present. MapleDeploy will automatically install Docker {{ $minDockerVersion }}+ if not present.
</x-slot:question> </x-slot:question>
<x-slot:actions> <x-slot:actions>
<div class="w-full space-y-6"> <div class="w-full space-y-6">
@ -591,7 +539,7 @@ class="p-6 bg-neutral-50 dark:bg-coolgray-200 rounded-lg border border-neutral-2
</x-slot:actions> </x-slot:actions>
<x-slot:explanation> <x-slot:explanation>
<p> <p>
<x-highlighted text="Automated Setup:" /> Coolify installs Docker Engine, Docker Compose, and <x-highlighted text="Automated Setup:" /> MapleDeploy installs Docker Engine, Docker Compose, and
configures system requirements automatically. configures system requirements automatically.
</p> </p>
<p> <p>
@ -758,15 +706,6 @@ class="dark:text-neutral-400 hover:text-coollabs dark:hover:text-warning hover:u
Restart Restart
</button> </button>
</div> </div>
<x-modal-input title="Need Help?">
<x-slot:content>
<button
class="text-sm dark:text-neutral-400 hover:text-coollabs dark:hover:text-warning hover:underline transition-colors">
Contact Support
</button>
</x-slot:content>
<livewire:help />
</x-modal-input>
</div> </div>
@endif @endif
</section> </section>

View file

@ -1,12 +1,13 @@
<div> <div>
<x-slot:title> <x-slot:title>
Dashboard | Coolify Dashboard | MapleDeploy
</x-slot> </x-slot>
@if (session('error')) @if (session('error'))
<span x-data x-init="$wire.emit('error', '{{ session('error') }}')" /> <span x-data x-init="$wire.emit('error', '{{ session('error') }}')" />
@endif @endif
<h1>Dashboard</h1> <h1>Dashboard</h1>
<div class="subtitle">Your self-hosted infrastructure.</div> {{-- MapleDeploy branding --}}
<div class="subtitle">Your deployment platform.</div>
<section class="-mt-2"> <section class="-mt-2">
<div class="flex items-center gap-2 pb-2"> <div class="flex items-center gap-2 pb-2">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Destinations | Coolify Destinations | MapleDeploy
</x-slot> </x-slot>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<h1>Destinations</h1> <h1>Destinations</h1>

View file

@ -1,11 +0,0 @@
<div class="flex flex-col w-full gap-2">
<div>Your feedback helps us to improve Coolify. Thank you! 💜</div>
<form wire:submit="submit" class="flex flex-col gap-4 pt-4">
<x-forms.input minlength="3" required id="subject" label="Subject" placeholder="Help with..."></x-forms.input>
<x-forms.textarea minlength="10" maxlength="1000" required rows="10" id="description" label="Description"
class="font-sans" spellcheck
placeholder="Having trouble with... Please provide as much information as possible."></x-forms.textarea>
<div></div>
<x-forms.button class="w-full mt-4" type="submit">Send</x-forms.button>
</form>
</div>

View file

@ -1,12 +1,10 @@
<div x-data="{ <div x-data="{
popups: { popups: {
sponsorship: true,
notification: true, notification: true,
realtime: false, realtime: false,
}, },
isDevelopment: {{ isDev() ? 'true' : 'false' }}, isDevelopment: {{ isDev() ? 'true' : 'false' }},
init() { init() {
this.popups.sponsorship = this.shouldShowMonthlyPopup('popupSponsorship');
this.popups.notification = this.shouldShowMonthlyPopup('popupNotification'); this.popups.notification = this.shouldShowMonthlyPopup('popupNotification');
this.popups.realtime = localStorage.getItem('popupRealtime'); this.popups.realtime = localStorage.getItem('popupRealtime');
@ -24,8 +22,8 @@
if (checkNumber > 5) { if (checkNumber > 5) {
this.popups.realtime = true; this.popups.realtime = true;
console.error( console.error(
'Coolify could not connect to its real-time service. This will cause unusual problems on the UI if not fixed! Please check the related documentation (https://coolify.io/docs/knowledge-base/cloudflare/tunnels/overview) or get help on Discord (https://coollabs.io/discord).)' 'MapleDeploy could not connect to its real-time service. This will cause unusual problems on the UI if not fixed! Please contact support at support@mapledeploy.ca.'
); ); // MapleDeploy branding
} }
} }
@ -70,13 +68,11 @@
<x-slot:title> <x-slot:title>
<span class="font-bold text-left text-red-500">WARNING: </span> Cannot connect to real-time service <span class="font-bold text-left text-red-500">WARNING: </span> Cannot connect to real-time service
</x-slot:title> </x-slot:title>
{{-- MapleDeploy branding: support links updated --}}
<x-slot:description> <x-slot:description>
<div>This will cause unusual problems on the <div>This will cause unusual problems on the
UI! <br><br> UI! <br><br>
Please ensure that you have opened the Please contact <a class="underline" href='mailto:support@mapledeploy.ca'>MapleDeploy support</a> for help.
<a class="underline" href='https://coolify.io/docs/knowledge-base/server/firewall'
target='_blank'>required ports</a> or get
help on <a class="underline" href='https://coollabs.io/discord' target='_blank'>Discord</a>.
</div> </div>
</x-slot:description> </x-slot:description>
<x-slot:button-text @click="disableRealtime()"> <x-slot:button-text @click="disableRealtime()">
@ -86,52 +82,7 @@
@endif @endif
</span> </span>
@endauth @endauth
@if (instanceSettings()->is_sponsorship_popup_enabled && !isCloud()) {{-- MapleDeploy branding: Coolify sponsorship popup removed --}}
<span x-show="popups.sponsorship">
<x-popup>
<x-slot:customActions>
<div
class="flex md:flex-row flex-col max-w-4xl p-6 mx-auto bg-white border shadow-lg lg:border-t dark:border-coolgray-300 border-neutral-200 dark:bg-coolgray-100 lg:p-8 lg:pb-4 sm:rounded-sm gap-2">
<div class="md:block hidden">
<img src="{{ asset('heart.png') }}" class="w-20 h-20">
</div>
<div class="flex flex-col gap-2 lg:px-10 px-1">
<div class="lg:text-xl text-md dark:text-white font-bold">Love Coolify? Support our work.
</div>
<div class="lg:text-sm text-xs dark:text-white">
We are already profitable thanks to <span class="font-bold text-pink-500">YOU</span>
but...<br />We
would
like to
make
more cool features.
</div>
<div class="lg:text-sm text-xs dark:text-white pt-2 ">
For this we need your help to support our work financially.
</div>
</div>
<div class="flex flex-col gap-2 text-center md:mx-auto lg:py-0 pt-2">
<x-forms.button isHighlighted class="md:w-36 w-full"><a target="_blank"
href="https://github.com/sponsors/coollabsio"
class="font-bold dark:text-white">GitHub
Sponsors</a></x-forms.button>
<x-forms.button isHighlighted class="md:w-36 w-full"><a target="_blank"
href="https://opencollective.com/coollabsio/donate?interval=month&amount=10&name=&legalName=&email="
class="font-bold dark:text-white">Open
Collective</a></x-forms.button>
<x-forms.button isHighlighted class="md:w-36 w-full"><a
href="https://donate.stripe.com/8x2bJ104ifmB9kB45u38402" target="_blank"
class="font-bold dark:text-white">Stripe</a></x-forms.button>
<div class="pt-4 dark:text-white hover:underline cursor-pointer lg:text-base text-xs"
@click="bannerVisible=false;disableSponsorship()">
Maybe next time
</div>
</div>
</div>
</x-slot:customActions>
</x-popup>
</span>
@endif
@if (request()->query->get('cancelled')) @if (request()->query->get('cancelled'))
<x-banner> <x-banner>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
@ -209,10 +160,7 @@ class="underline dark:text-white">/subscription</a> to update your subscription
</span> </span>
@endif @endif
<script> <script>
function disableSponsorship() { // MapleDeploy branding: disableSponsorship() removed (popup removed)
// Store current timestamp instead of just 'false'
localStorage.setItem('popupSponsorship', Date.now().toString());
}
function disableNotification() { function disableNotification() {
// Store current timestamp instead of just 'false' // Store current timestamp instead of just 'false'

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Notifications | Coolify Notifications | MapleDeploy
</x-slot> </x-slot>
<x-notification.navbar /> <x-notification.navbar />
<form wire:submit='submit' class="flex flex-col gap-4 pb-4"> <form wire:submit='submit' class="flex flex-col gap-4 pb-4">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Notifications | Coolify Notifications | MapleDeploy
</x-slot> </x-slot>
<x-notification.navbar /> <x-notification.navbar />
<form wire:submit='submit' class="flex flex-col gap-4 pb-4"> <form wire:submit='submit' class="flex flex-col gap-4 pb-4">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Notifications | Coolify Notifications | MapleDeploy
</x-slot> </x-slot>
<x-notification.navbar /> <x-notification.navbar />
<form wire:submit='submit' class="flex flex-col gap-4 pb-4"> <form wire:submit='submit' class="flex flex-col gap-4 pb-4">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Notifications | Coolify Notifications | MapleDeploy
</x-slot> </x-slot>
<x-notification.navbar /> <x-notification.navbar />
<form wire:submit='submit' class="flex flex-col gap-4 pb-4"> <form wire:submit='submit' class="flex flex-col gap-4 pb-4">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Notifications | Coolify Notifications | MapleDeploy
</x-slot> </x-slot>
<x-notification.navbar /> <x-notification.navbar />
<form wire:submit='submit' class="flex flex-col gap-4 pb-4"> <form wire:submit='submit' class="flex flex-col gap-4 pb-4">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Notifications | Coolify Notifications | MapleDeploy
</x-slot> </x-slot>
<x-notification.navbar /> <x-notification.navbar />
<form wire:submit='submit' class="flex flex-col gap-4 pb-4"> <form wire:submit='submit' class="flex flex-col gap-4 pb-4">
@ -30,11 +30,11 @@ class="normal-case dark:text-white btn btn-xs no-animation btn-primary">
@can('update', $settings) @can('update', $settings)
<x-forms.input type="password" <x-forms.input type="password"
helper="Enter a valid HTTP or HTTPS URL. Coolify will send POST requests to this endpoint when events occur." helper="Enter a valid HTTP or HTTPS URL. MapleDeploy will send POST requests to this endpoint when events occur."
required id="webhookUrl" label="Webhook URL (POST)" /> required id="webhookUrl" label="Webhook URL (POST)" />
@else @else
<x-forms.input disabled <x-forms.input disabled
helper="Enter a valid HTTP or HTTPS URL. Coolify will send POST requests to this endpoint when events occur." helper="Enter a valid HTTP or HTTPS URL. MapleDeploy will send POST requests to this endpoint when events occur."
required label="Webhook URL (POST)" value="Hidden (only admins can view)" /> required label="Webhook URL (POST)" value="Hidden (only admins can view)" />
@endcan @endcan
</div> </div>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Profile | Coolify Profile | MapleDeploy
</x-slot> </x-slot>
<x-profile.navbar /> <x-profile.navbar />
<form wire:submit='submit' class="flex flex-col"> <form wire:submit='submit' class="flex flex-col">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($application, 'name')->limit(10) }} > Configuration | Coolify {{ data_get_str($application, 'name')->limit(10) }} > Configuration | MapleDeploy
</x-slot> </x-slot>
<h1>Configuration</h1> <h1>Configuration</h1>
<livewire:project.shared.configuration-checker :resource="$application" /> <livewire:project.shared.configuration-checker :resource="$application" />

View file

@ -1,6 +1,6 @@
<div class="flex h-[calc(100vh-10rem)] min-h-[50rem] flex-col overflow-hidden"> <div class="flex h-[calc(100vh-10rem)] min-h-[50rem] flex-col overflow-hidden">
<x-slot:title> <x-slot:title>
{{ data_get_str($application, 'name')->limit(10) }} > Deployment | Coolify {{ data_get_str($application, 'name')->limit(10) }} > Deployment | MapleDeploy
</x-slot> </x-slot>
<h1 class="py-0">Deployment</h1> <h1 class="py-0">Deployment</h1>
<livewire:project.shared.configuration-checker :resource="$application" /> <livewire:project.shared.configuration-checker :resource="$application" />

View file

@ -1,6 +1,6 @@
<form> <form>
<x-slot:title> <x-slot:title>
{{ data_get_str($project, 'name')->limit(10) }} > Clone | Coolify {{ data_get_str($project, 'name')->limit(10) }} > Clone | MapleDeploy
</x-slot> </x-slot>
<div class="flex flex-col"> <div class="flex flex-col">
<h1>Clone</h1> <h1>Clone</h1>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($database, 'name')->limit(10) }} > Backup | Coolify {{ data_get_str($database, 'name')->limit(10) }} > Backup | MapleDeploy
</x-slot> </x-slot>
<h1>Backups</h1> <h1>Backups</h1>
<livewire:project.shared.configuration-checker :resource="$database" /> <livewire:project.shared.configuration-checker :resource="$database" />

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($database, 'name')->limit(10) }} > Backups | Coolify {{ data_get_str($database, 'name')->limit(10) }} > Backups | MapleDeploy
</x-slot> </x-slot>
<h1>Backups</h1> <h1>Backups</h1>
<livewire:project.shared.configuration-checker :resource="$database" /> <livewire:project.shared.configuration-checker :resource="$database" />

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($database, 'name')->limit(10) }} > Configuration | Coolify {{ data_get_str($database, 'name')->limit(10) }} > Configuration | MapleDeploy
</x-slot> </x-slot>
<h1>Configuration</h1> <h1>Configuration</h1>
<livewire:project.shared.configuration-checker :resource="$database" /> <livewire:project.shared.configuration-checker :resource="$database" />

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($project, 'name')->limit(10) }} > Edit | Coolify {{ data_get_str($project, 'name')->limit(10) }} > Edit | MapleDeploy
</x-slot> </x-slot>
<form wire:submit='submit' class="flex flex-col pb-10"> <form wire:submit='submit' class="flex flex-col pb-10">
<div class="flex gap-2"> <div class="flex gap-2">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($project, 'name')->limit(10) }} > Edit | Coolify {{ data_get_str($project, 'name')->limit(10) }} > Edit | MapleDeploy
</x-slot> </x-slot>
<form wire:submit='submit' class="flex flex-col"> <form wire:submit='submit' class="flex flex-col">
<div class="flex items-end gap-2"> <div class="flex items-end gap-2">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Projects | Coolify Projects | MapleDeploy
</x-slot> </x-slot>
<div class="flex gap-2 items-center"> <div class="flex gap-2 items-center">
<h1>Projects</h1> <h1>Projects</h1>

View file

@ -13,9 +13,8 @@
</x-forms.button> </x-forms.button>
</div> </div>
<div> <div>
For example application deployments, checkout <a class="underline dark:text-white" For example application deployments, use any public repository that contains a Dockerfile,
href="https://github.com/coollabsio/coolify-examples/" target="_blank">Coolify build pack, or compose file.
Examples</a>.
</div> </div>
</div> </div>
</form> </form>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($project, 'name')->limit(10) }} > New | Coolify {{ data_get_str($project, 'name')->limit(10) }} > New | MapleDeploy
</x-slot> </x-slot>
@if ($type === 'public') @if ($type === 'public')
<livewire:project.new.public-git-repository :type="$type" /> <livewire:project.new.public-git-repository :type="$type" />

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($project, 'name')->limit(10) }} > Resources | Coolify {{ data_get_str($project, 'name')->limit(10) }} > Resources | MapleDeploy
</x-slot> </x-slot>
<div class="flex flex-col"> <div class="flex flex-col">
<div class="flex min-w-0 flex-nowrap items-center gap-1"> <div class="flex min-w-0 flex-nowrap items-center gap-1">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($service, 'name')->limit(10) }} > Configuration | Coolify {{ data_get_str($service, 'name')->limit(10) }} > Configuration | MapleDeploy
</x-slot> </x-slot>
<livewire:project.service.heading :service="$service" :parameters="$parameters" :query="$query" /> <livewire:project.service.heading :service="$service" :parameters="$parameters" :query="$query" />

View file

@ -36,7 +36,7 @@
<div class="w-full"> <div class="w-full">
<x-slot:title> <x-slot:title>
{{ data_get_str($service, 'name')->limit(10) }} > {{ data_get_str($service, 'name')->limit(10) }} >
{{ data_get_str($serviceDatabase, 'name')->limit(10) }} > Backups | Coolify {{ data_get_str($serviceDatabase, 'name')->limit(10) }} > Backups | MapleDeploy
</x-slot> </x-slot>
@if ($backup) @if ($backup)

View file

@ -24,7 +24,7 @@ class="{{ request()->routeIs('project.service.configuration') ? 'menu-item-activ
@if ($resourceType === 'application') @if ($resourceType === 'application')
<x-slot:title> <x-slot:title>
{{ data_get_str($service, 'name')->limit(10) }} > {{ data_get_str($service, 'name')->limit(10) }} >
{{ data_get_str($serviceApplication, 'name')->limit(10) }} | Coolify {{ data_get_str($serviceApplication, 'name')->limit(10) }} | MapleDeploy
</x-slot> </x-slot>
@if ($currentRoute === 'project.service.index.advanced') @if ($currentRoute === 'project.service.index.advanced')
<h2>Advanced</h2> <h2>Advanced</h2>
@ -180,7 +180,7 @@ class="w-auto dark:bg-coolgray-200 dark:hover:bg-coolgray-300">
@elseif ($resourceType === 'database') @elseif ($resourceType === 'database')
<x-slot:title> <x-slot:title>
{{ data_get_str($service, 'name')->limit(10) }} > {{ data_get_str($service, 'name')->limit(10) }} >
{{ data_get_str($serviceDatabase, 'name')->limit(10) }} | Coolify {{ data_get_str($serviceDatabase, 'name')->limit(10) }} | MapleDeploy
</x-slot> </x-slot>
@if ($currentRoute === 'project.service.database.import') @if ($currentRoute === 'project.service.database.import')
<livewire:project.database.import :resource="$serviceDatabase" :key="'import-' . $serviceDatabase->uuid" /> <livewire:project.database.import :resource="$serviceDatabase" :key="'import-' . $serviceDatabase->uuid" />

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($resource, 'name')->limit(10) }} > Commands | Coolify {{ data_get_str($resource, 'name')->limit(10) }} > Commands | MapleDeploy
</x-slot> </x-slot>
@if ($type === 'application') @if ($type === 'application')
<livewire:project.shared.configuration-checker :resource="$resource" /> <livewire:project.shared.configuration-checker :resource="$resource" />

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($resource, 'name')->limit(10) }} > Logs | Coolify {{ data_get_str($resource, 'name')->limit(10) }} > Logs | MapleDeploy
</x-slot> </x-slot>
<livewire:project.shared.configuration-checker :resource="$resource" /> <livewire:project.shared.configuration-checker :resource="$resource" />
@if ($type === 'application') @if ($type === 'application')

View file

@ -17,7 +17,7 @@
<a class="coolbox" {{ wireNavigate() }} <a class="coolbox" {{ wireNavigate() }}
href="{{ route('project.application.scheduled-tasks', [...$parameters, 'task_uuid' => $task->uuid]) }}"> href="{{ route('project.application.scheduled-tasks', [...$parameters, 'task_uuid' => $task->uuid]) }}">
<span class="flex flex-col"> <span class="flex flex-col">
<span class="text-lg font-bold">{{ $task->name }} <span class="text-lg font-bold font-display">{{ $task->name }}
@if ($task->container) @if ($task->container)
<span class="text-xs font-normal">({{ $task->container }})</span> <span class="text-xs font-normal">({{ $task->container }})</span>
@endif @endif
@ -32,7 +32,7 @@
<a class="coolbox" {{ wireNavigate() }} <a class="coolbox" {{ wireNavigate() }}
href="{{ route('project.service.scheduled-tasks', [...$parameters, 'task_uuid' => $task->uuid]) }}"> href="{{ route('project.service.scheduled-tasks', [...$parameters, 'task_uuid' => $task->uuid]) }}">
<span class="flex flex-col"> <span class="flex flex-col">
<span class="text-lg font-bold">{{ $task->name }} <span class="text-lg font-bold font-display">{{ $task->name }}
@if ($task->container) @if ($task->container)
<span class="text-xs font-normal">({{ $task->container }})</span> <span class="text-xs font-normal">({{ $task->container }})</span>
@endif @endif

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($project, 'name')->limit(10) }} > Environments | Coolify {{ data_get_str($project, 'name')->limit(10) }} > Environments | MapleDeploy
</x-slot> </x-slot>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<h1>Environments</h1> <h1>Environments</h1>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
API Tokens | Coolify API Tokens | MapleDeploy
</x-slot> </x-slot>
<x-security.navbar /> <x-security.navbar />
<div class="pb-4"> <div class="pb-4">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Cloud Tokens | Coolify Cloud Tokens | MapleDeploy
</x-slot> </x-slot>
<x-security.navbar /> <x-security.navbar />
<livewire:security.cloud-provider-tokens /> <livewire:security.cloud-provider-tokens />

View file

@ -1,6 +1,6 @@
<div x-init="$wire.loadPublicKey()"> <div x-init="$wire.loadPublicKey()">
<x-slot:title> <x-slot:title>
Private Key | Coolify Private Key | MapleDeploy
</x-slot> </x-slot>
<x-security.navbar /> <x-security.navbar />
<div x-data="{ showPrivateKey: false }"> <div x-data="{ showPrivateKey: false }">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Advanced | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Advanced | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > CA Certificate | Coolify {{ data_get_str($server, 'name')->limit(10) }} > CA Certificate | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Cloud Token | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Cloud Token | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Cloudflare Tunnel | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Cloudflare Tunnel | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,117 +1,10 @@
{{-- MapleDeploy branding: cloud provider options (Hetzner, Vultr, DigitalOcean) removed --}}
<div class="w-full"> <div class="w-full">
@if (!$selectedType) <div class="flex flex-col gap-4">
<div class="flex flex-col items-center justify-center gap-3 sm:gap-6 sm:min-h-[calc(100vh-12rem)]"> <div>
<div class="mx-auto flex w-full max-w-7xl flex-col gap-3 sm:grid sm:grid-cols-2 sm:gap-6 xl:grid-cols-4"> <h3 class="pb-2">Add Server by IP Address</h3>
@can('viewAny', App\Models\CloudProviderToken::class) <livewire:server.new.by-ip :private_keys="$private_keys" :limit_reached="$limit_reached"
<a href="{{ route('server.create.type', ['type' => 'hetzner']) }}" aria-label="Choose Hetzner" key="new-server-manual" />
class="box-without-bg flex-col gap-3 sm:gap-6 p-3 sm:p-6 h-full cursor-pointer transition-all duration-200 hover:border-coollabs dark:hover:border-warning focus-visible:border-coollabs dark:focus-visible:border-warning focus-visible:outline-none"
{{ wireNavigate() }}>
<div class="flex flex-col gap-2 sm:gap-4 text-left h-full">
<div class="flex items-center justify-between">
<svg class="size-9 sm:size-14" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<rect width="200" height="200" fill="#D50C2D" rx="8" />
<path d="M40 40 H60 V90 H140 V40 H160 V160 H140 V110 H60 V160 H40 Z"
fill="white" />
</svg>
<span
class="px-1.5 py-0.5 text-[10px] sm:px-2 sm:py-1 sm:text-xs font-bold uppercase tracking-wide bg-coollabs/10 dark:bg-warning/20 text-coollabs dark:text-warning rounded">
Provider
</span>
</div>
<div>
<h3 class="text-sm sm:text-xl font-bold mb-1 sm:mb-2">Hetzner</h3>
<p class="hidden sm:block text-sm dark:text-neutral-400">
Deploy servers directly from your Hetzner Cloud account.
</p>
</div>
</div>
</a>
<a href="{{ route('server.create.type', ['type' => 'vultr']) }}" aria-label="Choose Vultr"
class="box-without-bg flex-col gap-3 sm:gap-6 p-3 sm:p-6 h-full cursor-pointer transition-all duration-200 hover:border-coollabs dark:hover:border-warning focus-visible:border-coollabs dark:focus-visible:border-warning focus-visible:outline-none"
{{ wireNavigate() }}>
<div class="flex flex-col gap-2 sm:gap-4 text-left h-full">
<div class="flex items-center justify-between">
<svg class="size-9 sm:size-14" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<rect width="200" height="200" fill="#007BFC" rx="8" />
<path d="M42 46 H73 L100 127 L127 46 H158 L114 154 H86 Z" fill="white" />
</svg>
<span
class="px-1.5 py-0.5 text-[10px] sm:px-2 sm:py-1 sm:text-xs font-bold uppercase tracking-wide bg-coollabs/10 dark:bg-warning/20 text-coollabs dark:text-warning rounded">
Provider
</span>
</div>
<div>
<h3 class="text-sm sm:text-xl font-bold mb-1 sm:mb-2">Vultr</h3>
<p class="hidden sm:block text-sm dark:text-neutral-400">
Deploy servers directly from your Vultr account.
</p>
</div>
</div>
</a>
<a href="{{ route('server.create.type', ['type' => 'digital-ocean']) }}"
aria-label="Choose DigitalOcean"
class="box-without-bg flex-col gap-3 sm:gap-6 p-3 sm:p-6 h-full cursor-pointer transition-all duration-200 hover:border-coollabs dark:hover:border-warning focus-visible:border-coollabs dark:focus-visible:border-warning focus-visible:outline-none"
{{ wireNavigate() }}>
<div class="flex flex-col gap-2 sm:gap-4 text-left h-full">
<div class="flex items-center justify-between">
<x-digital-ocean-icon class="size-9 sm:size-14" />
<span
class="px-1.5 py-0.5 text-[10px] sm:px-2 sm:py-1 sm:text-xs font-bold uppercase tracking-wide bg-coollabs/10 dark:bg-warning/20 text-coollabs dark:text-warning rounded">
Provider
</span>
</div>
<div>
<h3 class="text-sm sm:text-xl font-bold mb-1 sm:mb-2">DigitalOcean</h3>
<p class="hidden sm:block text-sm dark:text-neutral-400">
Deploy droplets directly from your DigitalOcean account.
</p>
</div>
</div>
</a>
@endcan
<a href="{{ route('server.create.type', ['type' => 'manual']) }}" aria-label="Choose Manual"
class="box-without-bg flex-col gap-3 sm:gap-6 p-3 sm:p-6 h-full cursor-pointer transition-all duration-200 hover:border-coollabs dark:hover:border-warning focus-visible:border-coollabs dark:focus-visible:border-warning focus-visible:outline-none"
{{ wireNavigate() }}>
<div class="flex flex-col gap-2 sm:gap-4 text-left h-full">
<div class="flex items-center justify-between">
<svg class="size-9 sm:size-14" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
stroke-width="1.5" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round"
d="M11.42 15.17L17.25 21A2.652 2.652 0 0021 17.25l-5.877-5.877M11.42 15.17l2.496-3.03c.317-.384.74-.626 1.208-.766M11.42 15.17l-4.655 5.653a2.548 2.548 0 11-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 004.486-6.336l-3.276 3.277a3.004 3.004 0 01-2.25-2.25l3.276-3.276a4.5 4.5 0 00-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085m-1.745 1.437L5.909 7.5H4.5L2.25 3.75l1.5-1.5L7.5 4.5v1.409l4.26 4.26m-1.745 1.437l1.745-1.437m6.615 8.206L15.75 15.75M4.867 19.125h.008v.008h-.008v-.008z" />
</svg>
<span
class="px-1.5 py-0.5 text-[10px] sm:px-2 sm:py-1 sm:text-xs font-bold uppercase tracking-wide bg-neutral-100 dark:bg-coolgray-300 dark:text-neutral-400 rounded">
Manual
</span>
</div>
<div>
<h3 class="text-sm sm:text-xl font-bold mb-1 sm:mb-2">Manual</h3>
<p class="hidden sm:block text-sm dark:text-neutral-400">
Add any reachable server by IP address or domain.
</p>
</div>
</div>
</a>
</div>
</div> </div>
@else </div>
<div class="flex flex-col gap-4">
@if ($selectedType === 'hetzner')
<livewire:server.new.by-hetzner :private_keys="$private_keys" :limit_reached="$limit_reached"
:selected-token-uuid="$selectedTokenUuid" wire:key="new-server-hetzner-{{ $selectedTokenUuid ?? 'select' }}" />
@elseif ($selectedType === 'vultr')
<livewire:server.new.by-vultr :private_keys="$private_keys" :limit_reached="$limit_reached"
:selected-token-uuid="$selectedTokenUuid" wire:key="new-server-vultr-{{ $selectedTokenUuid ?? 'select' }}" />
@elseif ($selectedType === 'digital-ocean')
<livewire:server.new.by-digital-ocean :private_keys="$private_keys" :limit_reached="$limit_reached"
:selected-token-uuid="$selectedTokenUuid" wire:key="new-server-digital-ocean-{{ $selectedTokenUuid ?? 'select' }}" />
@else
<livewire:server.new.by-ip :private_keys="$private_keys" :limit_reached="$limit_reached"
key="new-server-manual" />
@endif
</div>
@endif
</div> </div>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Delete Server | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Delete Server | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Destinations | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Destinations | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Docker Cleanup | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Docker Cleanup | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Servers | Coolify Servers | MapleDeploy
</x-slot> </x-slot>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<h1>Servers</h1> <h1>Servers</h1>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Log Drains | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Log Drains | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Private Key | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Private Key | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Proxy Dynamic Configuration | Coolify Proxy Dynamic Configuration | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Proxy Logs | Coolify Proxy Logs | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Proxy Configuration | Coolify Proxy Configuration | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
@if ($server->isFunctional()) @if ($server->isFunctional())

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Server Resources | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Server Resources | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div x-data="{ activeTab: 'managed' }" class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div x-data="{ activeTab: 'managed' }" class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Security | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Security | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<x-slide-over closeWithX fullScreen @startupdate.window="slideOverOpen = true"> <x-slide-over closeWithX fullScreen @startupdate.window="slideOverOpen = true">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Terminal Access | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Terminal Access | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,7 +1,7 @@
<div x-data <div x-data
x-init="@if ($server->hetzner_server_id && $server->cloudProviderToken && !$hetznerServerStatus) $wire.checkHetznerServerStatus(); @endif @if ($server->vultr_instance_id && $server->cloudProviderToken) $wire.checkVultrInstanceStatus(); @endif @if ($server->digitalocean_droplet_id && $server->cloudProviderToken && !$digitalOceanDropletStatus) $wire.checkDigitalOceanDropletStatus(); @endif"> x-init="@if ($server->hetzner_server_id && $server->cloudProviderToken && !$hetznerServerStatus) $wire.checkHetznerServerStatus(); @endif @if ($server->vultr_instance_id && $server->cloudProviderToken) $wire.checkVultrInstanceStatus(); @endif @if ($server->digitalocean_droplet_id && $server->cloudProviderToken && !$digitalOceanDropletStatus) $wire.checkDigitalOceanDropletStatus(); @endif">
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > General | Coolify {{ data_get_str($server, 'name')->limit(10) }} > General | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($server, 'name')->limit(10) }} > Swarm | Coolify {{ data_get_str($server, 'name')->limit(10) }} > Swarm | MapleDeploy
</x-slot> </x-slot>
<livewire:server.navbar :server="$server" /> <livewire:server.navbar :server="$server" />
<div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row"> <div class="flex flex-col h-full gap-4 md:gap-8 md:flex-row">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Settings | Coolify Settings | MapleDeploy
</x-slot> </x-slot>
<x-settings.navbar /> <x-settings.navbar />
<div class="flex flex-col"> <div class="flex flex-col">

View file

@ -267,14 +267,11 @@ class="flex items-center justify-center w-8 h-8 rounded-full dark:text-white hov
<div class="flex items-start justify-between"> <div class="flex items-start justify-between">
<div class="flex-1"> <div class="flex-1">
<div class="flex items-center gap-2 mb-2"> <div class="flex items-center gap-2 mb-2">
{{-- MapleDeploy branding: show version tag without linking to upstream releases --}}
<span x-show="entry.title" <span x-show="entry.title"
class="px-2 py-1 text-xs font-semibold dark:bg-coolgray-300 dark:text-neutral-200 rounded-sm"><a class="px-2 py-1 text-xs font-semibold dark:bg-coolgray-300 dark:text-neutral-200 rounded-sm">
:href="`https://github.com/coollabsio/coolify/releases/tag/${entry.tag_name}`"
target="_blank"
class="inline-flex items-center gap-1 hover:text-coolgray-500">
<span x-text="entry.title"></span> <span x-text="entry.title"></span>
<x-external-link /> </span>
</a></span>
<span x-show="entry.tag_name === '{{ $currentVersion }}'" <span x-show="entry.tag_name === '{{ $currentVersion }}'"
class="px-2 py-1 text-xs font-semibold bg-success text-white rounded-sm"> class="px-2 py-1 text-xs font-semibold bg-success text-white rounded-sm">
CURRENT VERSION CURRENT VERSION

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Transactional Email | Coolify Transactional Email | MapleDeploy
</x-slot> </x-slot>
<x-settings.navbar /> <x-settings.navbar />
<form wire:submit='submit' class="flex flex-col gap-2 pb-4"> <form wire:submit='submit' class="flex flex-col gap-2 pb-4">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Settings | Coolify Settings | MapleDeploy
</x-slot> </x-slot>
<x-settings.navbar /> <x-settings.navbar />
<form wire:submit='submit' class="flex flex-col"> <form wire:submit='submit' class="flex flex-col">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Settings | Coolify Settings | MapleDeploy
</x-slot> </x-slot>
<x-settings.navbar /> <x-settings.navbar />
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" <div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }"
@ -13,18 +13,19 @@ class="flex flex-col h-full gap-8 sm:flex-row">
Save Save
</x-forms.button> </x-forms.button>
</div> </div>
<div class="pb-4">General configuration for your Coolify instance.</div> <div class="pb-4">General configuration for your MapleDeploy instance.</div>
<div class="flex flex-col gap-2"> <div class="flex flex-col gap-2">
<div class="flex flex-wrap items-end gap-2"> <div class="flex flex-wrap items-end gap-2">
<div class="flex gap-2 md:flex-row flex-col w-full"> <div class="flex gap-2 md:flex-row flex-col w-full">
<x-forms.input canGate="update" :canResource="$settings" id="fqdn" label="URL" {{-- MapleDeploy branding: FQDN is managed during provisioning, shown as disabled --}}
<x-forms.input id="fqdn" label="URL" disabled
helper="Enter the full URL of the instance (for example, https://dashboard.example.com).<br><br> helper="Enter the full URL of the instance (for example, https://dashboard.example.com).<br><br>
<span class='dark:text-warning text-coollabs'>Important: </span> <span class='dark:text-warning text-coollabs'>Important: </span>
If you want the dashboard to be accessible over HTTPS, you must include <b>https://</b> at the start of the URL. Without it, the dashboard will use HTTP and wont be secured." If you want the dashboard to be accessible over HTTPS, you must include <b>https://</b> at the start of the URL. Without it, the dashboard will use HTTP and won't be secured."
placeholder="https://coolify.yourdomain.com" /> placeholder="https://coolify.yourdomain.com" />
<x-forms.input canGate="update" :canResource="$settings" id="instance_name" label="Name" placeholder="Coolify" <x-forms.input canGate="update" :canResource="$settings" id="instance_name" label="Name" placeholder="MapleDeploy"
helper="Custom name for your Coolify instance, shown in the URL." /> helper="Custom name for your MapleDeploy instance, shown in the URL." />
<div class="w-full" x-data="{ <div class="w-full" x-data="{
open: false, open: false,
search: '{{ $settings->instance_timezone ?: '' }}', search: '{{ $settings->instance_timezone ?: '' }}',
@ -42,7 +43,7 @@ class="flex flex-col h-full gap-8 sm:flex-row">
<label for="instance_timezone">Instance <label for="instance_timezone">Instance
Timezone</label> Timezone</label>
<x-helper class="ml-2" <x-helper class="ml-2"
helper="Timezone for the Coolify instance. This is used for the update check and automatic update frequency." /> helper="Timezone for the MapleDeploy instance. This is used for the update check and automatic update frequency." />
</div> </div>
<div class="relative"> <div class="relative">
<div class="inline-flex relative items-center w-full"> <div class="inline-flex relative items-center w-full">
@ -72,12 +73,13 @@ class="px-4 py-2 text-gray-800 cursor-pointer hover:bg-gray-100 dark:hover:bg-co
</div> </div>
</div> </div>
</div> </div>
{{-- MapleDeploy branding: IP addresses are managed during provisioning, shown as disabled --}}
<div class="flex gap-2 md:flex-row flex-col w-full"> <div class="flex gap-2 md:flex-row flex-col w-full">
<x-forms.input canGate="update" :canResource="$settings" id="public_ipv4" type="password" label="Instance's Public IPv4" <x-forms.input id="public_ipv4" type="password" label="Instance's Public IPv4" disabled
helper="Enter the IPv4 address of the instance.<br><br>It is useful if you have several IPv4 addresses and Coolify could not detect the correct one." helper="Enter the IPv4 address of the instance.<br><br>It is useful if you have several IPv4 addresses and MapleDeploy could not detect the correct one."
placeholder="1.2.3.4" autocomplete="new-password" /> placeholder="1.2.3.4" autocomplete="new-password" />
<x-forms.input canGate="update" :canResource="$settings" id="public_ipv6" type="password" label="Instance's Public IPv6" <x-forms.input id="public_ipv6" type="password" label="Instance's Public IPv6" disabled
helper="Enter the IPv6 address of the instance.<br><br>It is useful if you have several IPv6 addresses and Coolify could not detect the correct one." helper="Enter the IPv6 address of the instance.<br><br>It is useful if you have several IPv6 addresses and MapleDeploy could not detect the correct one."
placeholder="2001:db8::1" autocomplete="new-password" /> placeholder="2001:db8::1" autocomplete="new-password" />
</div> </div>
@ -93,10 +95,10 @@ class="px-4 py-2 text-gray-800 cursor-pointer hover:bg-gray-100 dark:hover:bg-co
confirmAction="confirmDomainUsage"> confirmAction="confirmDomainUsage">
<x-slot:consequences> <x-slot:consequences>
<ul class="mt-2 ml-4 list-disc"> <ul class="mt-2 ml-4 list-disc">
<li>The Coolify instance domain will conflict with existing resources</li> <li>The MapleDeploy instance domain will conflict with existing resources</li>
<li>SSL certificates might not work correctly</li> <li>SSL certificates might not work correctly</li>
<li>Routing behavior will be unpredictable</li> <li>Routing behavior will be unpredictable</li>
<li>You may not be able to access the Coolify dashboard properly</li> <li>You may not be able to access the MapleDeploy dashboard properly</li>
</ul> </ul>
</x-slot:consequences> </x-slot:consequences>
</x-domain-conflict-modal> </x-domain-conflict-modal>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Auto Update | Coolify Auto Update | MapleDeploy
</x-slot> </x-slot>
<x-settings.navbar /> <x-settings.navbar />
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex flex-col h-full gap-8 sm:flex-row"> <div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex flex-col h-full gap-8 sm:flex-row">
@ -19,7 +19,7 @@
<div class="flex items-end gap-2"> <div class="flex items-end gap-2">
<x-forms.input required id="update_check_frequency" label="Update Check Frequency" <x-forms.input required id="update_check_frequency" label="Update Check Frequency"
placeholder="0 * * * *" placeholder="0 * * * *"
helper="Frequency (cron expression) to check for new Coolify versions and pull new Service Templates from CDN.<br>You can use every_minute, hourly, daily, weekly, monthly, yearly.<br><br>Default is every hour." /> helper="Frequency (cron expression) to check for new versions and pull new service templates.<br>You can use every_minute, hourly, daily, weekly, monthly, yearly.<br><br>Default is every hour." />
<x-forms.button wire:click='checkManually'>Check Manually</x-forms.button> <x-forms.button wire:click='checkManually'>Check Manually</x-forms.button>
</div> </div>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Environment Variables | Coolify Environment Variables | MapleDeploy
</x-slot> </x-slot>
<div class="flex gap-2"> <div class="flex gap-2">
<h1>Environments</h1> <h1>Environments</h1>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Environment Variable | Coolify Environment Variable | MapleDeploy
</x-slot> </x-slot>
<div class="flex gap-2"> <div class="flex gap-2">
<h1>Shared Variables for {{ $project->name }}/{{ $environment->name }}</h1> <h1>Shared Variables for {{ $project->name }}/{{ $environment->name }}</h1>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Shared Variables | Coolify Shared Variables | MapleDeploy
</x-slot> </x-slot>
<div class="flex items-start gap-2"> <div class="flex items-start gap-2">
<h1>Shared Variables</h1> <h1>Shared Variables</h1>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Project Variables | Coolify Project Variables | MapleDeploy
</x-slot> </x-slot>
<div class="flex gap-2"> <div class="flex gap-2">
<h1>Projects</h1> <h1>Projects</h1>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Project Variable | Coolify Project Variable | MapleDeploy
</x-slot> </x-slot>
<div class="flex gap-2 items-center"> <div class="flex gap-2 items-center">
<h1>Shared Variables for {{ data_get($project, 'name') }}</h1> <h1>Shared Variables for {{ data_get($project, 'name') }}</h1>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Team Variables | Coolify Team Variables | MapleDeploy
</x-slot> </x-slot>
<div class="flex gap-2 items-center"> <div class="flex gap-2 items-center">
<h1>Team Shared Variables</h1> <h1>Team Shared Variables</h1>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Storages | Coolify Storages | MapleDeploy
</x-slot> </x-slot>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<h1>S3 Storages</h1> <h1>S3 Storages</h1>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
{{ data_get_str($storage, 'name')->limit(10) }} >Storages | Coolify {{ data_get_str($storage, 'name')->limit(10) }} >Storages | MapleDeploy
</x-slot> </x-slot>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Subscribe | Coolify Subscribe | MapleDeploy
</x-slot> </x-slot>
@if (auth()->user()->isAdminFromSession()) @if (auth()->user()->isAdminFromSession())
<div class="flex gap-2"> <div class="flex gap-2">
@ -12,6 +12,7 @@
</div> </div>
@else @else
@if ($isUnpaid) @if ($isUnpaid)
{{-- MapleDeploy branding --}}
<x-banner :closable="false"> <x-banner :closable="false">
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<svg class="w-5 h-5 text-red-500 shrink-0" fill="currentColor" viewBox="0 0 20 20"> <svg class="w-5 h-5 text-red-500 shrink-0" fill="currentColor" viewBox="0 0 20 20">
@ -19,8 +20,7 @@
d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z"
clip-rule="evenodd" /> clip-rule="evenodd" />
</svg> </svg>
<span><span class="font-bold text-red-500">Payment Failed.</span> Your last payment for Coolify <span><span class="font-bold text-red-500">Payment Failed.</span> Your last payment for MapleDeploy has failed.</span>
Cloud has failed.</span>
</div> </div>
</x-banner> </x-banner>
<div> <div>
@ -31,6 +31,7 @@
</div> </div>
@else @else
@if (config('subscription.provider') === 'stripe') @if (config('subscription.provider') === 'stripe')
{{-- MapleDeploy branding --}}
@if ($isCancelled) @if ($isCancelled)
<x-banner :closable="false"> <x-banner :closable="false">
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
@ -39,8 +40,7 @@
d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z"
clip-rule="evenodd" /> clip-rule="evenodd" />
</svg> </svg>
<span><span class="font-bold text-red-500">No Active Subscription.</span> Subscribe to <span><span class="font-bold text-red-500">No Active Subscription.</span> Please subscribe again to continue using MapleDeploy.</span>
a plan to start using Coolify Cloud.</span>
</div> </div>
</x-banner> </x-banner>
@endif @endif
@ -54,9 +54,8 @@
<div class="flex gap-2"> <div class="flex gap-2">
<h1>Subscription</h1> <h1>Subscription</h1>
</div> </div>
<x-callout type="danger" title="Insufficient Permissions"> <x-callout type="warning" title="Permission Required">
You are not an admin so you cannot manage your Team's subscription. If this does not make sense, please You are not an admin so you cannot manage your team's subscription. Please contact your team admin.
<span class="underline cursor-pointer dark:text-white" wire:click="help">contact us</span>.
</x-callout> </x-callout>
</div> </div>
@endif @endif

View file

@ -116,8 +116,8 @@ class="font-bold dark:text-white">unlimited</span> applications per server</span
{{-- BYOS Notice + Support --}} {{-- BYOS Notice + Support --}}
<div class="mt-6 pt-6 border-t dark:border-coolgray-400 border-neutral-200 text-sm dark:text-neutral-400"> <div class="mt-6 pt-6 border-t dark:border-coolgray-400 border-neutral-200 text-sm dark:text-neutral-400">
<p>You need to bring your own servers from any cloud provider (<a class="underline" href="https://coolify.io/hetzner" target="_blank">Hetzner</a>, DigitalOcean, AWS, etc.) or connect any device running a <a class="underline" href="https://coolify.io/docs/installation#supported-operating-systems" target="_blank">supported OS</a>.</p> <p>You need to bring your own servers from any cloud provider or connect any device running a supported operating system.</p>
<p class="mt-3">Need official support for your self-hosted instance? <a class="underline dark:text-white" href="https://coolify.io/docs/contact" target="_blank">Contact Us</a></p> <p class="mt-3">Need support for your MapleDeploy instance? <a class="underline dark:text-white" href="https://mapledeploy.ca/contact" target="_blank">Contact us</a></p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Subscription | Coolify Subscription | MapleDeploy
</x-slot> </x-slot>
<h1>Subscription</h1> <h1>Subscription</h1>
<div class="subtitle">Manage your plan, billing, and server limits.</div> <div class="subtitle">Manage your plan, billing, and server limits.</div>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Team Admin | Coolify Team Admin | MapleDeploy
</x-slot> </x-slot>
<x-team.navbar /> <x-team.navbar />
<h2>Admin View</h2> <h2>Admin View</h2>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Teams | Coolify Teams | MapleDeploy
</x-slot> </x-slot>
<x-team.navbar /> <x-team.navbar />

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Team Members | Coolify Team Members | MapleDeploy
</x-slot> </x-slot>
<x-team.navbar /> <x-team.navbar />
<h2>Members</h2> <h2>Members</h2>

View file

@ -1,6 +1,6 @@
<div> <div>
<x-slot:title> <x-slot:title>
Terminal | Coolify Terminal | MapleDeploy
</x-slot> </x-slot>
<h1>Terminal</h1> <h1>Terminal</h1>
<div class="flex gap-2 items-end subtitle"> <div class="flex gap-2 items-end subtitle">

View file

@ -1,6 +1,6 @@
<x-layout> <x-layout>
<x-slot:title> <x-slot:title>
Sources | Coolify Sources | MapleDeploy
</x-slot> </x-slot>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<h1>Sources</h1> <h1>Sources</h1>

View file

@ -32,9 +32,6 @@
Route::get('/health', [OtherController::class, 'healthcheck']); Route::get('/health', [OtherController::class, 'healthcheck']);
}); });
Route::post('/feedback', [OtherController::class, 'feedback'])
->middleware('throttle:feedback');
Route::group([ Route::group([
'middleware' => ['auth:sanctum', 'api.token.team', 'api.ability:write'], 'middleware' => ['auth:sanctum', 'api.token.team', 'api.ability:write'],
'prefix' => 'v1', 'prefix' => 'v1',

Some files were not shown because too many files have changed in this diff Show more