ui ui ui (pig)

This commit is contained in:
Andras Bacsai 2024-03-24 16:00:25 +01:00
parent 04c92ec4bd
commit b418a78e2e
103 changed files with 413 additions and 445 deletions

View File

@ -251,7 +251,7 @@ class General extends Component
if ($this->application->additional_servers->count() === 0) { if ($this->application->additional_servers->count() === 0) {
foreach ($domains as $domain) { foreach ($domains as $domain) {
if (!validate_dns_entry($domain, $this->application->destination->server)) { if (!validate_dns_entry($domain, $this->application->destination->server)) {
$showToaster && $this->dispatch('error', "Validating DNS ($domain) failed.", "Make sure you have added the DNS records correctly.<br><br>Check this <a target='_blank' class='text-white underline' href='https://coolify.io/docs/dns-settings'>documentation</a> for further help."); $showToaster && $this->dispatch('error', "Validating DNS ($domain) failed.", "Make sure you have added the DNS records correctly.<br><br>Check this <a target='_blank' class='dark:text-white underline' href='https://coolify.io/docs/dns-settings'>documentation</a> for further help.");
} }
} }
} }

14
package-lock.json generated
View File

@ -8,7 +8,6 @@
"@tailwindcss/forms": "^0.5.7", "@tailwindcss/forms": "^0.5.7",
"@tailwindcss/typography": "0.5.10", "@tailwindcss/typography": "0.5.10",
"alpinejs": "3.13.5", "alpinejs": "3.13.5",
"daisyui": "4.7.2",
"ioredis": "5.3.2", "ioredis": "5.3.2",
"tailwindcss-scrollbar": "0.1.0" "tailwindcss-scrollbar": "0.1.0"
}, },
@ -16,6 +15,7 @@
"@vitejs/plugin-vue": "4.5.1", "@vitejs/plugin-vue": "4.5.1",
"autoprefixer": "10.4.18", "autoprefixer": "10.4.18",
"axios": "1.6.7", "axios": "1.6.7",
"daisyui": "^4.7.3",
"laravel-echo": "1.16.0", "laravel-echo": "1.16.0",
"laravel-vite-plugin": "0.8.1", "laravel-vite-plugin": "0.8.1",
"postcss": "8.4.35", "postcss": "8.4.35",
@ -934,6 +934,7 @@
"version": "0.8.0", "version": "0.8.0",
"resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz",
"integrity": "sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==", "integrity": "sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==",
"dev": true,
"dependencies": { "dependencies": {
"cssesc": "^3.0.0", "cssesc": "^3.0.0",
"fastparse": "^1.1.2" "fastparse": "^1.1.2"
@ -960,14 +961,16 @@
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/culori/-/culori-3.2.0.tgz", "resolved": "https://registry.npmjs.org/culori/-/culori-3.2.0.tgz",
"integrity": "sha512-HIEbTSP7vs1mPq/2P9In6QyFE0Tkpevh0k9a+FkjhD+cwsYm9WRSbn4uMdW9O0yXlNYC3ppxL3gWWPOcvEl57w==", "integrity": "sha512-HIEbTSP7vs1mPq/2P9In6QyFE0Tkpevh0k9a+FkjhD+cwsYm9WRSbn4uMdW9O0yXlNYC3ppxL3gWWPOcvEl57w==",
"dev": true,
"engines": { "engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0" "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
} }
}, },
"node_modules/daisyui": { "node_modules/daisyui": {
"version": "4.7.2", "version": "4.7.3",
"resolved": "https://registry.npmjs.org/daisyui/-/daisyui-4.7.2.tgz", "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-4.7.3.tgz",
"integrity": "sha512-9UCss12Zmyk/22u+JbkVrHHxOzFOyY17HuqP5LeswI4hclbj6qbjJTovdj2zRy8cCH6/n6Wh0lTLjriGnyGh0g==", "integrity": "sha512-R8jUpBMAUm4rSyxzGa9QqFdJTkzREtb1QahXdDoOfElGiF4VbSuu5bfqQoOro1kkSagPy+aTKu5WtSSXmH3u3g==",
"dev": true,
"dependencies": { "dependencies": {
"css-selector-tokenizer": "^0.8", "css-selector-tokenizer": "^0.8",
"culori": "^3", "culori": "^3",
@ -1124,7 +1127,8 @@
"node_modules/fastparse": { "node_modules/fastparse": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
"integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
"dev": true
}, },
"node_modules/fastq": { "node_modules/fastq": {
"version": "1.15.0", "version": "1.15.0",

View File

@ -21,7 +21,6 @@
"@tailwindcss/forms": "^0.5.7", "@tailwindcss/forms": "^0.5.7",
"@tailwindcss/typography": "0.5.10", "@tailwindcss/typography": "0.5.10",
"alpinejs": "3.13.5", "alpinejs": "3.13.5",
"daisyui": "4.7.2",
"ioredis": "5.3.2", "ioredis": "5.3.2",
"tailwindcss-scrollbar": "0.1.0" "tailwindcss-scrollbar": "0.1.0"
} }

View File

@ -4,7 +4,7 @@
html, html,
body { body {
@apply bg-white text-neutral-600 dark:bg-base dark:text-neutral-400; @apply bg-neutral-100 text-neutral-800 dark:bg-base dark:text-neutral-400;
} }
body { body {
@ -28,14 +28,14 @@ body {
} }
option { option {
@apply text-white dark:bg-coolgray-100; @apply dark:text-white dark:bg-coolgray-100;
} }
.button { .button {
@apply flex items-center justify-center px-3 py-1 text-sm font-normal normal-case rounded bg-neutral-200 hover:bg-neutral-300 dark:bg-coolgray-200 dark:text-white dark:hover:bg-coolgray-100 hover:text-black dark:hover:text-white dark:disabled:bg-coolgray-100/40 dark:disabled:text-neutral-800 min-w-fit; @apply flex items-center justify-center gap-2 px-3 py-1 text-sm font-normal normal-case rounded cursor-pointer bg-neutral-200 hover:bg-neutral-300 dark:bg-coolgray-200 dark:text-white dark:hover:bg-coolgray-100 dark:hover:dark:text-white dark:disabled:bg-coolgray-100/40 dark:disabled:text-neutral-800 min-w-fit hover:dark:text-white ;
} }
button[isError]:not(:disabled) { button[isError]:not(:disabled) {
@apply bg-red-600 hover:bg-red-700; @apply text-white bg-red-600 hover:bg-red-700;
} }
button[isHighlighted]:not(:disabled) { button[isHighlighted]:not(:disabled) {
@ -44,19 +44,19 @@ button[isHighlighted]:not(:disabled) {
h1 { h1 {
@apply text-2xl font-bold dark:text-white text-neutral-800; @apply text-2xl font-bold dark:text-white;
} }
h2 { h2 {
@apply text-xl font-bold dark:text-white text-neutral-800; @apply text-xl font-bold dark:text-white;
} }
h3 { h3 {
@apply text-lg font-bold dark:text-white text-neutral-800; @apply text-lg font-bold dark:text-white;
} }
h4 { h4 {
@apply text-base font-bold dark:text-white text-neutral-800; @apply text-base font-bold dark:text-white;
} }
a { a {
@ -64,11 +64,11 @@ a {
} }
label { label {
@apply dark:text-neutral-400 text-neutral-600; @apply dark:text-neutral-400;
} }
table { table {
@apply min-w-full divide-y divide-coolgray-200; @apply min-w-full divide-y dark:divide-coolgray-200 divide-neutral-300;
} }
thead { thead {
@ -76,7 +76,7 @@ thead {
} }
tbody { tbody {
@apply divide-y divide-coolgray-200; @apply divide-y dark:divide-coolgray-200 divide-neutral-300;
} }
tr { tr {
@ -112,7 +112,7 @@ tr td:first-child {
} }
.badge { .badge {
@apply inline-block w-3 h-3 text-xs font-bold leading-none border border-black rounded-full; @apply inline-block w-3 h-3 text-xs font-bold leading-none border rounded-full border-neutral-200 dark:border-black;
} }
.badge-success { .badge-success {
@ -142,11 +142,13 @@ tr td:first-child {
.menu-item-active { .menu-item-active {
@apply text-black rounded-none dark:bg-coolgray-200 dark:text-warning bg-neutral-200; @apply text-black rounded-none dark:bg-coolgray-200 dark:text-warning bg-neutral-200;
} }
.heading-item-active {
.icon { @apply text-black rounded-none dark:bg-coolgray-200 dark:text-warning;
@apply w-6 h-6 hover:text-white;
} }
.icon {
@apply w-6 h-6 dark:hover:text-white;
}
.scrollbar { .scrollbar {
@ -162,7 +164,7 @@ tr td:first-child {
} }
.navbar-main { .navbar-main {
@apply flex items-center h-10 gap-6 pb-2 border-b-2 border-solid border-coolgray-200; @apply flex items-center h-10 gap-6 pb-2 border-b-2 border-solid dark:border-coolgray-200;
} }
.loading { .loading {
@ -174,7 +176,7 @@ tr td:first-child {
} }
.box { .box {
@apply flex p-2 transition-colors cursor-pointer min-h-[4rem] dark:bg-coolgray-100 bg-neutral-100 hover:bg-neutral-200 dark:hover:bg-coollabs-100 dark:hover:text-white hover:no-underline; @apply flex p-2 transition-colors cursor-pointer min-h-[4rem] dark:bg-coolgray-100 bg-white border border-neutral-200 dark:border-black hover:bg-neutral-200 dark:hover:bg-coollabs-100 dark:hover:text-white hover:no-underline;
} }
.on-box { .on-box {
@ -230,13 +232,13 @@ tr td:first-child {
} }
.text-helper { .text-helper {
@apply inline-block font-bold text-coollabs dark:text-warning; @apply inline-block font-bold text-red-500 dark:text-warning;
} }
.info-helper { .info-helper {
@apply cursor-pointer text-coollabs dark:text-warning; @apply cursor-pointer text-coollabs dark:text-warning;
} }
.info-helper-popup { .info-helper-popup {
@apply absolute z-40 hidden text-xs rounded text-neutral-700 group-hover:block dark:border-coolgray-500 border-neutral-900 dark:bg-coolgray-400 bg-neutral-100 dark:text-neutral-300; @apply absolute z-40 hidden text-xs rounded text-neutral-700 group-hover:block dark:border-coolgray-500 border-neutral-900 dark:bg-coolgray-400 bg-neutral-200 dark:text-neutral-300;
} }
.buyme { .buyme {

View File

@ -27,7 +27,7 @@
</svg> </svg>
<input type="text" v-model="search" ref="searchInput" @keydown.down="focusNext(magic.length)" <input type="text" v-model="search" ref="searchInput" @keydown.down="focusNext(magic.length)"
@keydown.up="focusPrev(magic.length)" @keyup.enter="callAction" @keydown.up="focusPrev(magic.length)" @keyup.enter="callAction"
class="w-full h-10 pr-4 text-white rounded outline-none bg-coolgray-400 pl-11 placeholder:text-neutral-700 sm:text-sm focus:outline-none" class="w-full h-10 pr-4 dark:text-white rounded outline-none bg-coolgray-400 pl-11 placeholder:text-neutral-700 sm:text-sm focus:outline-none"
placeholder="Search, jump or create... magically... 🪄" role="combobox" placeholder="Search, jump or create... magically... 🪄" role="combobox"
aria-expanded="false" aria-controls="options"> aria-expanded="false" aria-controls="options">
</div> </div>
@ -39,7 +39,7 @@
class="mt-4 mb-2 text-xs font-semibold text-neutral-500">{{ class="mt-4 mb-2 text-xs font-semibold text-neutral-500">{{
possibleSequences[sequenceState.sequence[sequenceState.currentActionIndex]].newTitle }} possibleSequences[sequenceState.sequence[sequenceState.currentActionIndex]].newTitle }}
</h2> </h2>
<ul class="mt-2 -mx-4 text-white"> <ul class="mt-2 -mx-4 dark:text-white">
<li class="flex items-center px-4 py-2 cursor-pointer select-none group hover:bg-coolgray-400" <li class="flex items-center px-4 py-2 cursor-pointer select-none group hover:bg-coolgray-400"
id="option-1" role="option" tabindex="-1" id="option-1" role="option" tabindex="-1"
@click="addNew(sequenceState.sequence[sequenceState.currentActionIndex])"> @click="addNew(sequenceState.sequence[sequenceState.currentActionIndex])">
@ -67,7 +67,7 @@
</ul> </ul>
</li> </li>
<li> <li>
<ul v-if="magic.length == 0" class="mt-2 -mx-4 text-white"> <ul v-if="magic.length == 0" class="mt-2 -mx-4 dark:text-white">
<li class="flex items-center px-4 py-2 select-none group"> <li class="flex items-center px-4 py-2 select-none group">
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 icon" viewBox="0 0 24 24" <svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 icon" viewBox="0 0 24 24"
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
@ -85,7 +85,7 @@
class="mt-4 mb-2 text-xs font-semibold text-neutral-500">{{ class="mt-4 mb-2 text-xs font-semibold text-neutral-500">{{
possibleSequences[sequenceState.sequence[sequenceState.currentActionIndex]].title }} possibleSequences[sequenceState.sequence[sequenceState.currentActionIndex]].title }}
</h2> </h2>
<ul v-if="magic.length != 0" class="mt-2 -mx-4 text-white"> <ul v-if="magic.length != 0" class="mt-2 -mx-4 dark:text-white">
<li class="flex items-center px-4 py-2 transition-all cursor-pointer select-none group hover:bg-coolgray-400" <li class="flex items-center px-4 py-2 transition-all cursor-pointer select-none group hover:bg-coolgray-400"
:class="{ 'bg-coollabs': currentFocus === index }" id="option-1" role="option" :class="{ 'bg-coollabs': currentFocus === index }" id="option-1" role="option"
tabindex="-1" v-for="action, index in magic" @click="goThroughSequence(index)" tabindex="-1" v-for="action, index in magic" @click="goThroughSequence(index)"

View File

@ -2,7 +2,7 @@
<div class="flex items-center justify-center h-screen"> <div class="flex items-center justify-center h-screen">
<div> <div>
<div class="flex flex-col items-center pb-8"> <div class="flex flex-col items-center pb-8">
<div class="text-5xl font-bold tracking-tight text-center text-white">Coolify</div> <div class="text-5xl font-bold tracking-tight text-center dark:text-white">Coolify</div>
<x-version /> <x-version />
</div> </div>
<div class="w-96"> <div class="w-96">

View File

@ -3,7 +3,7 @@
<div> <div>
<div class="flex flex-col items-center pb-8"> <div class="flex flex-col items-center pb-8">
<a href="{{ route('dashboard') }}"> <a href="{{ route('dashboard') }}">
<div class="text-5xl font-bold tracking-tight text-center text-white">Coolify</div> <div class="text-5xl font-bold tracking-tight text-center dark:text-white">Coolify</div>
</a> </a>
<x-version /> <x-version />
</div> </div>
@ -20,7 +20,7 @@
</form> </form>
@else @else
<div>Transactional emails are not active on this instance.</div> <div>Transactional emails are not active on this instance.</div>
<div>See how to set it in our <a class="text-white" target="_blank" <div>See how to set it in our <a class="dark:text-white" target="_blank"
href="{{ config('constants.docs.base_url') }}">docs</a>, or how to href="{{ config('constants.docs.base_url') }}">docs</a>, or how to
manually reset password. manually reset password.
</div> </div>

View File

@ -3,7 +3,7 @@
<div> <div>
<div class="flex flex-col items-center "> <div class="flex flex-col items-center ">
<a href="{{ route('dashboard') }}"> <a href="{{ route('dashboard') }}">
<div class="text-5xl font-bold tracking-tight text-center text-white">Coolify</div> <div class="text-5xl font-bold tracking-tight text-center dark:text-white">Coolify</div>
</a> </a>
</div> </div>
<div class="flex items-center justify-center pb-4 text-center"> <div class="flex items-center justify-center pb-4 text-center">

View File

@ -2,7 +2,7 @@
<div class="flex items-center justify-center h-screen"> <div class="flex items-center justify-center h-screen">
<div> <div>
<div class="flex flex-col items-center pb-8"> <div class="flex flex-col items-center pb-8">
<div class="text-5xl font-bold tracking-tight text-center text-white">Coolify</div> <div class="text-5xl font-bold tracking-tight text-center dark:text-white">Coolify</div>
<x-version /> <x-version />
</div> </div>
<div class="w-96" x-data="{ showRecovery: false }"> <div class="w-96" x-data="{ showRecovery: false }">
@ -12,7 +12,7 @@
<div> <div>
<x-forms.input required type="number" name="code" label="{{ __('input.code') }}" <x-forms.input required type="number" name="code" label="{{ __('input.code') }}"
autofocus /> autofocus />
<div class="pt-2 text-xs cursor-pointer hover:underline hover:text-white" <div class="pt-2 text-xs cursor-pointer hover:underline hover:dark:text-white"
x-on:click="showRecovery = !showRecovery">Use x-on:click="showRecovery = !showRecovery">Use
Recovery Code Recovery Code
</div> </div>
@ -22,7 +22,7 @@
<div> <div>
<x-forms.input required type="text" name="recovery_code" <x-forms.input required type="text" name="recovery_code"
label="{{ __('input.recovery_code') }}" /> label="{{ __('input.recovery_code') }}" />
<div class="pt-2 text-xs cursor-pointer hover:underline hover:text-white" <div class="pt-2 text-xs cursor-pointer hover:underline hover:dark:text-white"
x-on:click="showRecovery = !showRecovery">Use x-on:click="showRecovery = !showRecovery">Use
One-Time Code One-Time Code
</div> </div>

View File

@ -1,14 +1,14 @@
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<div class="group"> <div class="group">
<label tabindex="0" class="flex items-center gap-2 cursor-pointer hover:text-white"> Advanced <label tabindex="0" class="flex items-center gap-2 cursor-pointer hover:dark:text-white"> Advanced
<x-chevron-down /> <x-chevron-down />
</label> </label>
<div class="absolute hidden group-hover:block "> <div class="absolute hidden group-hover:block ">
<ul tabindex="0" <ul tabindex="0"
class="relative text-xs text-white normal-case rounded -ml-44 min-w-max menu bg-coolgray-200"> class="relative text-xs dark:text-white normal-case rounded -ml-44 min-w-max menu bg-coolgray-200">
@if ($application->status === 'running') @if ($application->status === 'running')
<li> <li>
<div class="rounded-none hover:bg-coollabs hover:text-white" <div class="rounded-none hover:bg-coollabs hover:dark:text-white"
wire:click='force_deploy_without_cache'> wire:click='force_deploy_without_cache'>
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24" <svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24"
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
@ -27,7 +27,7 @@
</li> </li>
@else @else
<li> <li>
<div class="rounded-none hover:bg-coollabs hover:text-white" wire:click='deploy(true)'> <div class="rounded-none hover:bg-coollabs hover:dark:text-white" wire:click='deploy(true)'>
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24" <svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24"
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
stroke-linejoin="round"> stroke-linejoin="round">

View File

@ -20,7 +20,7 @@
<div x-cloak x-show="open" x-transition class="fixed inset-0 z-50 flex pt-10"> <div x-cloak x-show="open" x-transition class="fixed inset-0 z-50 flex pt-10">
<div @click.away="open = false" class="w-screen h-20 max-w-xl mx-auto bg-black rounded-lg"> <div @click.away="open = false" class="w-screen h-20 max-w-xl mx-auto bg-black rounded-lg">
<div class="flex flex-col items-center justify-center h-full"> <div class="flex flex-col items-center justify-center h-full">
<div class="pb-5 text-white" x-text="message"></div> <div class="pb-5 dark:text-white" x-text="message"></div>
<div> <div>
<x-forms.button x-on:click='confirmed()'>Confirm</x-forms.button> <x-forms.button x-on:click='confirmed()'>Confirm</x-forms.button>
<x-forms.button x-on:click="open = false">Cancel</x-forms.button> <x-forms.button x-on:click="open = false">Cancel</x-forms.button>

View File

@ -16,7 +16,7 @@
<div class="relative" x-data="{ type: 'password' }"> <div class="relative" x-data="{ type: 'password' }">
@if ($allowToPeak) @if ($allowToPeak)
<div x-on:click="changePasswordFieldType" <div x-on:click="changePasswordFieldType"
class="absolute inset-y-0 right-0 flex items-center pr-2 cursor-pointer hover:text-white"> class="absolute inset-y-0 right-0 flex items-center pr-2 cursor-pointer hover:dark:text-white">
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24" stroke-width="1.5" <svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24" stroke-width="1.5"
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path stroke="none" d="M0 0h24v24H0z" fill="none" />

View File

@ -9,7 +9,7 @@
@endif @endif
</label> </label>
@endif @endif
<select {{ $attributes->merge(['class' => $defaultClass]) }} @required($required) wire:dirty.class.remove='text-white' <select {{ $attributes->merge(['class' => $defaultClass]) }} @required($required) wire:dirty.class.remove='dark:text-white'
wire:dirty.class="text-black bg-warning" wire:loading.attr="disabled" name={{ $id }} wire:dirty.class="text-black bg-warning" wire:loading.attr="disabled" name={{ $id }}
@if ($attributes->whereStartsWith('wire:model')->first()) {{ $attributes->whereStartsWith('wire:model')->first() }} @else wire:model={{ $id }} @endif> @if ($attributes->whereStartsWith('wire:model')->first()) {{ $attributes->whereStartsWith('wire:model')->first() }} @else wire:model={{ $id }} @endif>
{{ $slot }} {{ $slot }}

View File

@ -13,7 +13,7 @@
<div class="relative" x-data="{ type: 'password' }"> <div class="relative" x-data="{ type: 'password' }">
@if ($allowToPeak) @if ($allowToPeak)
<div x-on:click="changePasswordFieldType" <div x-on:click="changePasswordFieldType"
class="absolute inset-y-0 right-0 flex items-center h-6 pt-2 pr-2 cursor-pointer hover:text-white"> class="absolute inset-y-0 right-0 flex items-center h-6 pt-2 pr-2 cursor-pointer hover:dark:text-white">
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24" stroke-width="1.5" <svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24" stroke-width="1.5"
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path stroke="none" d="M0 0h24v24H0z" fill="none" />

View File

@ -1,6 +1,6 @@
<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 text-white">You have reached the limit of {{ $name }} you can create.</span> <span class="text-xl font-bold dark:text-white">You have reached the limit of {{ $name }} you can create.</span>
<span>Please <a class="text-white underline "href="{{ route('subscription.show') }}">upgrade your <span>Please <a class="dark:text-white underline "href="{{ route('subscription.show') }}">upgrade your
subscription</a> to create more subscription</a> to create more
{{ $name }}.</span> {{ $name }}.</span>
</div> </div>

View File

@ -47,7 +47,7 @@
@endif @endif
@endif @endif
<template x-teleport="body"> <template x-teleport="body">
<div x-show="modalOpen" class="fixed top-0 lg:top-10 left-0 z-[99] flex items-start justify-center w-screen h-screen" <div x-show="modalOpen" class="fixed top-0 lg:pt-10 left-0 z-[99] flex items-start justify-center w-screen h-screen"
x-cloak> x-cloak>
<div x-show="modalOpen" x-transition:enter="ease-out duration-100" x-transition:enter-start="opacity-0" <div x-show="modalOpen" x-transition:enter="ease-out duration-100" x-transition:enter-start="opacity-0"
x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-100" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-100"
@ -59,11 +59,11 @@
x-transition:leave="ease-in duration-100" x-transition:leave="ease-in duration-100"
x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100" x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100"
x-transition:leave-end="opacity-0 -translate-y-2 sm:scale-95" x-transition:leave-end="opacity-0 -translate-y-2 sm:scale-95"
class="relative w-full py-6 border rounded shadow-lg dark:bg-base px-7 dark:border-coolgray-300 sm:max-w-lg"> class="relative w-full py-6 border rounded min-w-full lg:min-w-[36rem] max-w-fit bg-neutral-100 border-neutral-400 dark:bg-base px-7 dark:border-coolgray-300">
<div class="flex items-center justify-between pb-3"> <div class="flex items-center justify-between pb-3">
<h3 class="text-2xl font-bold">{{ $title }}</h3> <h3 class="text-2xl font-bold">{{ $title }}</h3>
{{-- <button @click="modalOpen=false" {{-- <button @click="modalOpen=false"
class="absolute top-0 right-0 flex items-center justify-center w-8 h-8 mt-5 mr-5 text-white rounded-full hover:bg-coolgray-300"> class="absolute top-0 right-0 flex items-center justify-center w-8 h-8 mt-5 mr-5 rounded-full dark:text-white hover:bg-coolgray-300">
<svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" <svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
stroke-width="1.5" stroke="currentColor"> stroke-width="1.5" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
@ -74,7 +74,7 @@
{{ $slot }} {{ $slot }}
</div> </div>
<div class="flex flex-row justify-end space-x-2"> <div class="flex flex-row justify-end space-x-2">
<x-forms.button @click="modalOpen=false" class="w-24 bg-coolgray-200 hover:bg-coolgray-300" <x-forms.button @click="modalOpen=false" class="w-24 dark:bg-coolgray-200 dark:hover:bg-coolgray-300"
type="button">Cancel type="button">Cancel
</x-forms.button> </x-forms.button>
<div class="flex-1"></div> <div class="flex-1"></div>

View File

@ -21,7 +21,7 @@
@endif @endif
@endif @endif
<template x-teleport="body"> <template x-teleport="body">
<div x-show="modalOpen" class="fixed top-0 left-0 z-[99] flex items-center justify-center w-screen h-screen" <div x-show="modalOpen" class="fixed top-0 left-0 lg:px-0 px-4 z-[99] flex items-center justify-center w-screen h-screen"
x-cloak> x-cloak>
<div x-show="modalOpen" x-transition:enter="ease-out duration-100" x-transition:enter-start="opacity-0" <div x-show="modalOpen" x-transition:enter="ease-out duration-100" x-transition:enter-start="opacity-0"
x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-100" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-100"
@ -33,11 +33,11 @@
x-transition:leave="ease-in duration-100" x-transition:leave="ease-in duration-100"
x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100" x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100"
x-transition:leave-end="opacity-0 -translate-y-2 sm:scale-95" x-transition:leave-end="opacity-0 -translate-y-2 sm:scale-95"
class="relative w-full py-6 border rounded min-w-[36rem] max-w-fit dark:bg-base px-7 dark:border-coolgray-300"> class="relative w-full py-6 border rounded min-w-full lg:min-w-[36rem] max-w-fit bg-neutral-100 border-neutral-400 dark:bg-base px-7 dark:border-coolgray-300">
<div class="flex items-center justify-between pb-3"> <div class="flex items-center justify-between pb-3">
<h3 class="text-2xl font-bold">{{ $title }}</h3> <h3 class="text-2xl font-bold">{{ $title }}</h3>
<button @click="modalOpen=false" <button @click="modalOpen=false"
class="absolute top-0 right-0 flex items-center justify-center w-8 h-8 mt-5 mr-5 text-white rounded-full hover:bg-coolgray-300"> class="absolute top-0 right-0 flex items-center justify-center w-8 h-8 mt-5 mr-5 rounded-full dark:text-white hover:bg-coolgray-300">
<svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" <svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
stroke-width="1.5" stroke="currentColor"> stroke-width="1.5" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />

View File

@ -1,10 +1,10 @@
<nav class="flex flex-col flex-1 pl-4 bg-white border-r dark:border-coolgray-200 dark:bg-base"> <nav class="flex flex-col flex-1 pl-2 bg-white border-r dark:border-coolgray-200 dark:bg-base">
<div class="flex w-full px-2 pt-6 pb-4"> <div class="flex w-full pt-6 pb-4 pl-3">
<div class="flex flex-col"> <div class="flex flex-col">
<div class="text-2xl font-bold tracking-wide dark:text-white">Coolify</div> <div class="text-2xl font-bold tracking-wide dark:text-white">Coolify</div>
<x-version /> <x-version />
</div> </div>
{{-- <button onclick="changeTheme()">Dark/light</button> --}} <button onclick="changeTheme()">Dark/light</button>
</div> </div>
<div class="px-2 pt-2 pb-7"> <div class="px-2 pt-2 pb-7">
<livewire:switch-team /> <livewire:switch-team />

View File

@ -5,16 +5,16 @@
<div class="px-6 mx-auto lg:px-8"> <div class="px-6 mx-auto lg:px-8">
<div class="flex justify-center"> <div class="flex justify-center">
<fieldset <fieldset
class="grid grid-cols-2 p-1 text-xs font-semibold leading-5 text-center text-white rounded gap-x-1 bg-white/5"> class="grid grid-cols-2 p-1 text-xs font-semibold leading-5 text-center dark:text-white rounded gap-x-1 bg-white/5">
<legend class="sr-only">Payment frequency</legend> <legend class="sr-only">Payment frequency</legend>
<label class="cursor-pointer rounded px-2.5 py-1" <label class="cursor-pointer rounded px-2.5 py-1"
:class="selected === 'monthly' ? 'bg-coollabs-100 text-white' : ''"> :class="selected === 'monthly' ? 'bg-coollabs-100 dark:text-white' : ''">
<input type="radio" x-on:click="selected = 'monthly'" name="frequency" value="monthly" <input type="radio" x-on:click="selected = 'monthly'" name="frequency" value="monthly"
class="sr-only"> class="sr-only">
<span>Monthly</span> <span>Monthly</span>
</label> </label>
<label class="cursor-pointer rounded px-2.5 py-1" <label class="cursor-pointer rounded px-2.5 py-1"
:class="selected === 'yearly' ? 'bg-coollabs-100 text-white' : ''"> :class="selected === 'yearly' ? 'bg-coollabs-100 dark:text-white' : ''">
<input type="radio" x-on:click="selected = 'yearly'" name="frequency" value="annually" <input type="radio" x-on:click="selected = 'yearly'" name="frequency" value="annually"
class="sr-only"> class="sr-only">
<span>Annually</span> <span>Annually</span>
@ -36,7 +36,7 @@
</div> </div>
{{-- <div class="p-4 rounded bg-coolgray-400"> {{-- <div class="p-4 rounded bg-coolgray-400">
<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 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://github.com/coollabsio/coolify">Get Started</a></x-forms.button>
</h2> </h2>
<p class="mt-4 text-sm leading-6">Start self-hosting <span class="text-warning">without limits</span> with <p class="mt-4 text-sm leading-6">Start self-hosting <span class="text-warning">without limits</span> with
@ -46,19 +46,19 @@
<div class="flow-root mt-12"> <div class="flow-root mt-12">
<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 text-white underline" href="https://coolify.io">coolify.io</a></div> class="font-bold dark:text-white underline" href="https://coolify.io">coolify.io</a></div>
<div <div
class="grid max-w-sm grid-cols-1 -mt-16 divide-y 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-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">
<div class="pt-16 lg:px-8 lg:pt-0 xl:px-14"> <div class="pt-16 lg:px-8 lg:pt-0 xl:px-14">
<h3 id="tier-basic" class="text-base font-semibold leading-7 text-white">Basic</h3> <h3 id="tier-basic" class="text-base font-semibold leading-7 dark:text-white">Basic</h3>
<p class="flex items-baseline mt-6 gap-x-1"> <p class="flex items-baseline mt-6 gap-x-1">
<span x-show="selected === 'monthly'" x-cloak> <span x-show="selected === 'monthly'" x-cloak>
<span class="text-4xl font-bold tracking-tight text-white">$5</span> <span class="text-4xl font-bold tracking-tight dark:text-white">$5</span>
<span class="text-sm font-semibold leading-6 ">/month + VAT</span> <span class="text-sm font-semibold leading-6 ">/month + VAT</span>
</span> </span>
<span x-show="selected === 'yearly'" x-cloak> <span x-show="selected === 'yearly'" x-cloak>
<span class="text-4xl font-bold tracking-tight text-white">$4</span> <span class="text-4xl font-bold tracking-tight dark:text-white">$4</span>
<span class="text-sm font-semibold leading-6 ">/month + VAT</span> <span class="text-sm font-semibold leading-6 ">/month + VAT</span>
</span> </span>
</p> </p>
@ -73,7 +73,7 @@
{{ $basic }} {{ $basic }}
@endisset @endisset
@endif @endif
<p class="mt-10 text-sm leading-6 text-white h-[6.5rem]">Begin hosting your own services in the <p class="mt-10 text-sm leading-6 dark:text-white h-[6.5rem]">Begin hosting your own services in the
cloud. cloud.
</p> </p>
<ul role="list" class="space-y-3 text-sm leading-6 "> <ul role="list" class="space-y-3 text-sm leading-6 ">
@ -84,7 +84,7 @@
d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z"
clip-rule="evenodd" /> clip-rule="evenodd" />
</svg> </svg>
Connect <span class="px-1 font-bold text-white">2</span> servers Connect <span class="px-1 font-bold dark:text-white">2</span> servers
</li> </li>
<li class="flex gap-x-3"> <li class="flex gap-x-3">
<svg class="flex-none w-5 h-6 text-warning" viewBox="0 0 20 20" fill="currentColor" <svg class="flex-none w-5 h-6 text-warning" viewBox="0 0 20 20" fill="currentColor"
@ -104,7 +104,7 @@
</svg> </svg>
Email Support Email Support
</li> </li>
<li class="flex font-bold text-white gap-x-3"> <li class="flex font-bold dark:text-white gap-x-3">
<svg width="512" height="512" class="flex-none w-5 h-6 text-green-600" <svg width="512" height="512" class="flex-none w-5 h-6 text-green-600"
viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" <g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"
@ -119,14 +119,14 @@
</ul> </ul>
</div> </div>
<div class="pt-16 lg:px-8 lg:pt-0 xl:px-14"> <div class="pt-16 lg:px-8 lg:pt-0 xl:px-14">
<h3 id="tier-pro" class="text-base font-semibold leading-7 text-white">Pro</h3> <h3 id="tier-pro" class="text-base font-semibold leading-7 dark:text-white">Pro</h3>
<p class="flex items-baseline mt-6 gap-x-1"> <p class="flex items-baseline mt-6 gap-x-1">
<span x-show="selected === 'monthly'" x-cloak> <span x-show="selected === 'monthly'" x-cloak>
<span class="text-4xl font-bold tracking-tight text-white">$30</span> <span class="text-4xl font-bold tracking-tight dark:text-white">$30</span>
<span class="text-sm font-semibold leading-6 ">/month + VAT</span> <span class="text-sm font-semibold leading-6 ">/month + VAT</span>
</span> </span>
<span x-show="selected === 'yearly'" x-cloak> <span x-show="selected === 'yearly'" x-cloak>
<span class="text-4xl font-bold tracking-tight text-white">$27</span> <span class="text-4xl font-bold tracking-tight dark:text-white">$27</span>
<span class="text-sm font-semibold leading-6 ">/month + VAT</span> <span class="text-sm font-semibold leading-6 ">/month + VAT</span>
</span> </span>
</p> </p>
@ -141,7 +141,7 @@
{{ $pro }} {{ $pro }}
@endisset @endisset
@endif @endif
<p class="h-20 mt-10 text-sm leading-6 text-white">Expand your business or set up your own hosting <p class="h-20 mt-10 text-sm leading-6 dark:text-white">Expand your business or set up your own hosting
environment. environment.
</p> </p>
<ul role="list" class="mt-6 space-y-3 text-sm leading-6 "> <ul role="list" class="mt-6 space-y-3 text-sm leading-6 ">
@ -152,7 +152,7 @@
d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z"
clip-rule="evenodd" /> clip-rule="evenodd" />
</svg> </svg>
Connect <span class="px-1 font-bold text-white">10</span> servers Connect <span class="px-1 font-bold dark:text-white">10</span> servers
</li> </li>
<li class="flex gap-x-3"> <li class="flex gap-x-3">
<svg class="flex-none w-5 h-6 text-warning" viewBox="0 0 20 20" fill="currentColor" <svg class="flex-none w-5 h-6 text-warning" viewBox="0 0 20 20" fill="currentColor"
@ -172,7 +172,7 @@
</svg> </svg>
Priority Email Support Priority Email Support
</li> </li>
<li class="flex font-bold text-white gap-x-3"> <li class="flex font-bold dark:text-white gap-x-3">
<svg width="512" height="512" class="flex-none w-5 h-6 text-green-600" <svg width="512" height="512" class="flex-none w-5 h-6 text-green-600"
viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round" <g fill="none" stroke="currentColor" stroke-linecap="round"
@ -187,14 +187,14 @@
</ul> </ul>
</div> </div>
<div class="pt-16 lg:px-8 lg:pt-0 xl:px-14"> <div class="pt-16 lg:px-8 lg:pt-0 xl:px-14">
<h3 id="tier-ultimate" class="text-base font-semibold leading-7 text-white">Ultimate</h3> <h3 id="tier-ultimate" class="text-base font-semibold leading-7 dark:text-white">Ultimate</h3>
<p class="flex items-baseline mt-6 gap-x-1"> <p class="flex items-baseline mt-6 gap-x-1">
<span x-show="selected === 'monthly'" x-cloak> <span x-show="selected === 'monthly'" x-cloak>
<span class="text-4xl font-bold tracking-tight text-white">Custom</span> <span class="text-4xl font-bold tracking-tight dark:text-white">Custom</span>
{{-- <span class="text-sm font-semibold leading-6 ">pay-as-you-go</span> --}} {{-- <span class="text-sm font-semibold leading-6 ">pay-as-you-go</span> --}}
</span> </span>
<span x-show="selected === 'yearly'" x-cloak> <span x-show="selected === 'yearly'" x-cloak>
<span class="text-4xl font-bold tracking-tight text-white">Custom</span> <span class="text-4xl font-bold tracking-tight dark:text-white">Custom</span>
{{-- <span class="text-sm font-semibold leading-6 ">/month + VAT</span> --}} {{-- <span class="text-sm font-semibold leading-6 ">/month + VAT</span> --}}
</span> </span>
</p> </p>
@ -209,7 +209,7 @@
{{ $ultimate }} {{ $ultimate }}
@endisset @endisset
@endif @endif
<p class="h-20 mt-10 text-sm leading-6 text-white">Easily manage complex infrastructures in a <p class="h-20 mt-10 text-sm leading-6 dark:text-white">Easily manage complex infrastructures in a
single location.</p> single location.</p>
<ul role="list" class="mt-6 space-y-3 text-sm leading-6 "> <ul role="list" class="mt-6 space-y-3 text-sm leading-6 ">
<li class="flex "> <li class="flex ">
@ -219,7 +219,7 @@
d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z"
clip-rule="evenodd" /> clip-rule="evenodd" />
</svg> </svg>
Connect <span class="px-1 font-bold text-white">10+</span> servers Connect <span class="px-1 font-bold dark:text-white">10+</span> servers
</li> </li>
<li class="flex gap-x-3"> <li class="flex gap-x-3">
@ -231,7 +231,7 @@
</svg> </svg>
Included Email System Included Email System
</li> </li>
<li class="flex font-bold text-white gap-x-3"> <li class="flex font-bold dark:text-white gap-x-3">
<svg class="flex-none w-5 h-6 text-warning" viewBox="0 0 20 20" fill="currentColor" <svg class="flex-none w-5 h-6 text-warning" viewBox="0 0 20 20" fill="currentColor"
aria-hidden="true"> aria-hidden="true">
<path fill-rule="evenodd" <path fill-rule="evenodd"
@ -240,7 +240,7 @@
</svg> </svg>
Priority (Email/Chat) Support Priority (Email/Chat) Support
</li> </li>
<li class="flex font-bold text-white gap-x-3"> <li class="flex font-bold dark:text-white gap-x-3">
<svg width="512" height="512" class="flex-none w-5 h-6 text-green-600" <svg width="512" height="512" class="flex-none w-5 h-6 text-green-600"
viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round" <g fill="none" stroke="currentColor" stroke-linecap="round"
@ -259,7 +259,7 @@
<div class="flex items-start gap-4 text-xl tracking-tight">Need official support for <div class="flex items-start gap-4 text-xl tracking-tight">Need official support for
your self-hosted instance? your self-hosted instance?
<x-forms.button> <x-forms.button>
<a class="font-bold text-white hover:no-underline" <a class="font-bold dark:text-white hover:no-underline"
href="{{ config('coolify.contact') }}">Contact href="{{ config('coolify.contact') }}">Contact
Us</a> Us</a>
</x-forms.button> </x-forms.button>
@ -267,11 +267,11 @@
</div> --}} </div> --}}
</div> </div>
{{-- <div class="pt-8 pb-12 text-4xl font-bold text-center text-white">Included in all plans</div> {{-- <div class="pt-8 pb-12 text-4xl font-bold text-center dark:text-white">Included in all plans</div>
<div class="grid grid-cols-1 gap-10 md:grid-cols-2 gap-y-28"> <div class="grid grid-cols-1 gap-10 md:grid-cols-2 gap-y-28">
<div> <div>
<div class="flex items-center gap-4 mb-4"> <div class="flex items-center gap-4 mb-4">
<div class="flex items-center justify-center w-10 h-10 text-white rounded-lg bg-coolgray-500"> <div class="flex items-center justify-center w-10 h-10 dark:text-white rounded-lg bg-coolgray-500">
<svg width="512" height="512" class="icon" viewBox="0 0 24 24" <svg width="512" height="512" class="icon" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"> xmlns="http://www.w3.org/2000/svg">
<path fill="none" stroke="currentColor" stroke-linecap="round" <path fill="none" stroke="currentColor" stroke-linecap="round"
@ -279,7 +279,7 @@
d="M3 7a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v2a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3zm12 13H6a3 3 0 0 1-3-3v-2a3 3 0 0 1 3-3h12M7 8v.01M7 16v.01M20 15l-2 3h3l-2 3" /> d="M3 7a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v2a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3zm12 13H6a3 3 0 0 1-3-3v-2a3 3 0 0 1 3-3h12M7 8v.01M7 16v.01M20 15l-2 3h3l-2 3" />
</svg> </svg>
</div> </div>
<div class="text-2xl font-semibold text-white">Bring Your Own Servers</div> <div class="text-2xl font-semibold dark:text-white">Bring Your Own Servers</div>
</div> </div>
<div class="mt-1 text-base leading-7 text-gray-300"> <div class="mt-1 text-base leading-7 text-gray-300">
Bring your own server from any cloud providers, or even your own server at home! All you need is SSH Bring your own server from any cloud providers, or even your own server at home! All you need is SSH
@ -288,7 +288,7 @@
</div> </div>
<div> <div>
<div class="flex items-center gap-4 mb-4"> <div class="flex items-center gap-4 mb-4">
<div class="flex items-center justify-center w-10 h-10 text-white rounded-lg bg-coolgray-500"> <div class="flex items-center justify-center w-10 h-10 dark:text-white rounded-lg bg-coolgray-500">
<svg width="512" height="512" class="icon" viewBox="0 0 24 24" <svg width="512" height="512" class="icon" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"> xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="white" stroke-linecap="round" stroke-linejoin="round" <g fill="none" stroke="white" stroke-linecap="round" stroke-linejoin="round"
@ -301,7 +301,7 @@
</g> </g>
</svg> </svg>
</div> </div>
<div class="text-2xl font-semibold text-white">Server Automations</div> <div class="text-2xl font-semibold dark:text-white">Server Automations</div>
</div> </div>
<div class="mt-1 text-base leading-7 text-gray-300"> <div class="mt-1 text-base leading-7 text-gray-300">
Once you connected your server, Coolify will start managing it and do a Once you connected your server, Coolify will start managing it and do a
@ -311,7 +311,7 @@
</div> </div>
<div> <div>
<div class="flex items-center gap-4 mb-4"> <div class="flex items-center gap-4 mb-4">
<div class="flex items-center justify-center w-10 h-10 text-white rounded-lg bg-coolgray-500"> <div class="flex items-center justify-center w-10 h-10 dark:text-white rounded-lg bg-coolgray-500">
<svg width="512" height="512" viewBox="0 0 24 24" class="icon" <svg width="512" height="512" viewBox="0 0 24 24" class="icon"
xmlns="http://www.w3.org/2000/svg"> xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" <g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"
@ -323,7 +323,7 @@
</g> </g>
</svg> </svg>
</div> </div>
<div class="text-2xl font-semibold text-white">No Vendor Lock-in</div> <div class="text-2xl font-semibold dark:text-white">No Vendor Lock-in</div>
</div> </div>
<div class="mt-1 text-base leading-7 text-gray-300"> <div class="mt-1 text-base leading-7 text-gray-300">
You own your own data. All configurations saved on your own servers, so if You own your own data. All configurations saved on your own servers, so if
@ -334,7 +334,7 @@
<div> <div>
<div class="flex items-center gap-4 mb-4"> <div class="flex items-center gap-4 mb-4">
<div class="flex items-center justify-center w-10 h-10 text-white rounded-lg bg-coolgray-500"> <div class="flex items-center justify-center w-10 h-10 dark:text-white rounded-lg bg-coolgray-500">
<svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 24 24" <svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 24 24"
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
stroke-linejoin="round"> stroke-linejoin="round">
@ -346,7 +346,7 @@
<path d="M7 10h2l2 3l2 -6l1 3h3" /> <path d="M7 10h2l2 3l2 -6l1 3h3" />
</svg> </svg>
</div> </div>
<div class="text-2xl font-semibold text-white">Monitoring</div> <div class="text-2xl font-semibold dark:text-white">Monitoring</div>
</div> </div>
<div class="mt-1 text-base leading-7 text-gray-300"> <div class="mt-1 text-base leading-7 text-gray-300">
Coolify will automatically monitor your configured servers and deployed Coolify will automatically monitor your configured servers and deployed
@ -356,7 +356,7 @@
</div> </div>
<div> <div>
<div class="flex items-center gap-4 mb-4"> <div class="flex items-center gap-4 mb-4">
<div class="flex items-center justify-center w-10 h-10 text-white rounded-lg bg-coolgray-500"> <div class="flex items-center justify-center w-10 h-10 dark:text-white rounded-lg bg-coolgray-500">
<svg width="512" height="512" class="icon" viewBox="0 0 24 24" <svg width="512" height="512" class="icon" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"> xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" <g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"
@ -366,7 +366,7 @@
</g> </g>
</svg> </svg>
</div> </div>
<div class="text-2xl font-semibold text-white">Automatic Backups</div> <div class="text-2xl font-semibold dark:text-white">Automatic Backups</div>
</div> </div>
<div class="mt-1 text-base leading-7 text-gray-300"> <div class="mt-1 text-base leading-7 text-gray-300">
We automatically backup your databases to any S3 compatible solution. If We automatically backup your databases to any S3 compatible solution. If
@ -375,7 +375,7 @@
</div> </div>
<div> <div>
<div class="flex items-center gap-4 mb-4"> <div class="flex items-center gap-4 mb-4">
<div class="flex items-center justify-center w-10 h-10 text-white rounded-lg bg-coolgray-500"> <div class="flex items-center justify-center w-10 h-10 dark:text-white rounded-lg bg-coolgray-500">
<svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 24 24" <svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 24 24"
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
stroke-linejoin="round"> stroke-linejoin="round">
@ -384,7 +384,7 @@
<line x1="13" y1="17" x2="19" y2="17" /> <line x1="13" y1="17" x2="19" y2="17" />
</svg> </svg>
</div> </div>
<div class="text-2xl font-semibold text-white">Powerful API</div> <div class="text-2xl font-semibold dark:text-white">Powerful API</div>
</div> </div>
<div class="mt-1 text-base leading-7 text-gray-300"> <div class="mt-1 text-base leading-7 text-gray-300">
Programmatically deploy, query, and manage your servers & resources. Programmatically deploy, query, and manage your servers & resources.
@ -394,7 +394,7 @@
</div> </div>
<div> <div>
<div class="flex items-center gap-4 mb-4"> <div class="flex items-center gap-4 mb-4">
<div class="flex items-center justify-center w-10 h-10 text-white rounded-lg bg-coolgray-500"> <div class="flex items-center justify-center w-10 h-10 dark:text-white rounded-lg bg-coolgray-500">
<svg width="512" height="512" class="icon" viewBox="0 0 24 24" <svg width="512" height="512" class="icon" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"> xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" <g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"
@ -406,7 +406,7 @@
</g> </g>
</svg> </svg>
</div> </div>
<div class="text-2xl font-semibold text-white">Push to Deploy</div> <div class="text-2xl font-semibold dark:text-white">Push to Deploy</div>
</div> </div>
<div class="mt-1 text-base leading-7 text-gray-300"> <div class="mt-1 text-base leading-7 text-gray-300">
Git integration is default today. We support hosted (github.com, Git integration is default today. We support hosted (github.com,
@ -417,7 +417,7 @@
</div> </div>
<div> <div>
<div class="flex items-center gap-4 mb-4"> <div class="flex items-center gap-4 mb-4">
<div class="flex items-center justify-center w-10 h-10 text-white rounded-lg bg-coolgray-500"> <div class="flex items-center justify-center w-10 h-10 dark:text-white rounded-lg bg-coolgray-500">
<svg width="512" height="512" class="icon" viewBox="0 0 24 24" <svg width="512" height="512" class="icon" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"> xmlns="http://www.w3.org/2000/svg">
<path fill="none" stroke="currentColor" stroke-linecap="round" <path fill="none" stroke="currentColor" stroke-linecap="round"
@ -425,7 +425,7 @@
d="M10 13a2 2 0 1 0 4 0a2 2 0 0 0-4 0m-2 8v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1M15 5a2 2 0 1 0 4 0a2 2 0 0 0-4 0m2 5h2a2 2 0 0 1 2 2v1M5 5a2 2 0 1 0 4 0a2 2 0 0 0-4 0m-2 8v-1a2 2 0 0 1 2-2h2" /> d="M10 13a2 2 0 1 0 4 0a2 2 0 0 0-4 0m-2 8v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1M15 5a2 2 0 1 0 4 0a2 2 0 0 0-4 0m2 5h2a2 2 0 0 1 2 2v1M5 5a2 2 0 1 0 4 0a2 2 0 0 0-4 0m-2 8v-1a2 2 0 0 1 2-2h2" />
</svg> </svg>
</div> </div>
<div class="text-2xl font-semibold text-white">Pull Request Deployments</div> <div class="text-2xl font-semibold dark:text-white">Pull Request Deployments</div>
</div> </div>
<div class="mt-1 text-base leading-7 text-gray-300"> <div class="mt-1 text-base leading-7 text-gray-300">
Automagically deploy new commits and pull requests separately to quickly Automagically deploy new commits and pull requests separately to quickly

View File

@ -21,7 +21,7 @@
@isset($documentation) @isset($documentation)
<div class="flex-1"></div> <div class="flex-1"></div>
<div class="flex items-center px-2 " title="Read the documentation."> <div class="flex items-center px-2 " title="Read the documentation.">
<a class="p-2 rounded hover:bg-coolgray-200 hover:no-underline group-hover:text-white text-neutral-600" <a class="p-2 rounded hover:bg-coolgray-200 hover:no-underline group-hover:dark:text-white text-neutral-600"
onclick="event.stopPropagation()" href="{{ $documentation }}" target="_blank"> onclick="event.stopPropagation()" href="{{ $documentation }}" target="_blank">
Docs Docs
</a> </a>

View File

@ -12,38 +12,38 @@
</div> </div>
<div class="subtitle">{{ data_get($server, 'name') }}.</div> <div class="subtitle">{{ data_get($server, 'name') }}.</div>
<nav class="navbar-main"> <nav class="navbar-main">
<a class="{{ request()->routeIs('server.show') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('server.show') ? 'dark:text-white' : '' }}"
href="{{ route('server.show', [ href="{{ route('server.show', [
'server_uuid' => data_get($parameters, 'server_uuid'), 'server_uuid' => data_get($parameters, 'server_uuid'),
]) }}"> ]) }}">
<button>General</button> <button>General</button>
</a> </a>
<a class="{{ request()->routeIs('server.private-key') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('server.private-key') ? 'dark:text-white' : '' }}"
href="{{ route('server.private-key', [ href="{{ route('server.private-key', [
'server_uuid' => data_get($parameters, 'server_uuid'), 'server_uuid' => data_get($parameters, 'server_uuid'),
]) }}"> ]) }}">
<button>Private Key</button> <button>Private Key</button>
</a> </a>
<a class="{{ request()->routeIs('server.resources') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('server.resources') ? 'dark:text-white' : '' }}"
href="{{ route('server.resources', [ href="{{ route('server.resources', [
'server_uuid' => data_get($parameters, 'server_uuid'), 'server_uuid' => data_get($parameters, 'server_uuid'),
]) }}"> ]) }}">
<button>Resources</button> <button>Resources</button>
</a> </a>
@if (!$server->isSwarmWorker() && !$server->settings->is_build_server) @if (!$server->isSwarmWorker() && !$server->settings->is_build_server)
<a class="{{ request()->routeIs('server.proxy') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('server.proxy') ? 'dark:text-white' : '' }}"
href="{{ route('server.proxy', [ href="{{ route('server.proxy', [
'server_uuid' => data_get($parameters, 'server_uuid'), 'server_uuid' => data_get($parameters, 'server_uuid'),
]) }}"> ]) }}">
<button>Proxy</button> <button>Proxy</button>
</a> </a>
<a class="{{ request()->routeIs('server.destinations') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('server.destinations') ? 'dark:text-white' : '' }}"
href="{{ route('server.destinations', [ href="{{ route('server.destinations', [
'server_uuid' => data_get($parameters, 'server_uuid'), 'server_uuid' => data_get($parameters, 'server_uuid'),
]) }}"> ]) }}">
<button>Destinations</button> <button>Destinations</button>
</a> </a>
<a class="{{ request()->routeIs('server.log-drains') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('server.log-drains') ? 'dark:text-white' : '' }}"
href="{{ route('server.log-drains', [ href="{{ route('server.log-drains', [
'server_uuid' => data_get($parameters, 'server_uuid'), 'server_uuid' => data_get($parameters, 'server_uuid'),
]) }}"> ]) }}">

View File

@ -1,17 +1,17 @@
<div class="flex h-full pr-4"> <div class="flex h-full pr-4">
<div class="flex flex-col w-48 gap-4 min-w-fit"> <div class="flex flex-col w-48 gap-4 min-w-fit">
<a class="{{ request()->routeIs('server.proxy') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('server.proxy') ? 'dark:text-white' : '' }}"
href="{{ route('server.proxy', $parameters) }}"> href="{{ route('server.proxy', $parameters) }}">
<button>Configuration</button> <button>Configuration</button>
</a> </a>
@if ($server->proxyType() !== 'NONE') @if ($server->proxyType() !== 'NONE')
{{-- @if ($server->proxyType() === 'TRAEFIK_V2') --}} {{-- @if ($server->proxyType() === 'TRAEFIK_V2') --}}
<a class="{{ request()->routeIs('server.proxy.dynamic-confs') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('server.proxy.dynamic-confs') ? 'dark:text-white' : '' }}"
href="{{ route('server.proxy.dynamic-confs', $parameters) }}"> href="{{ route('server.proxy.dynamic-confs', $parameters) }}">
<button>Dynamic Configurations</button> <button>Dynamic Configurations</button>
</a> </a>
{{-- @endif --}} {{-- @endif --}}
<a class="{{ request()->routeIs('server.proxy.logs') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('server.proxy.logs') ? 'dark:text-white' : '' }}"
href="{{ route('server.proxy.logs', $parameters) }}"> href="{{ route('server.proxy.logs', $parameters) }}">
<button>Logs</button> <button>Logs</button>
</a> </a>

View File

@ -2,12 +2,12 @@
<h1>Settings</h1> <h1>Settings</h1>
<div class="subtitle">Instance wide settings for Coolify.</div> <div class="subtitle">Instance wide settings for Coolify.</div>
<nav class="navbar-main"> <nav class="navbar-main">
<a class="{{ request()->routeIs('settings.index') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('settings.index') ? 'dark:text-white' : '' }}"
href="{{ route('settings.index') }}"> href="{{ route('settings.index') }}">
<button>Configuration</button> <button>Configuration</button>
</a> </a>
@if (isCloud()) @if (isCloud())
<a class="{{ request()->routeIs('settings.license') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('settings.license') ? 'dark:text-white' : '' }}"
href="{{ route('settings.license') }}"> href="{{ route('settings.license') }}">
<button>Resale License</button> <button>Resale License</button>
</a> </a>

View File

@ -7,18 +7,18 @@
</div> </div>
<div class="subtitle">Team settings & shared environment variables.</div> <div class="subtitle">Team settings & shared environment variables.</div>
<nav class="navbar-main"> <nav class="navbar-main">
<a class="{{ request()->routeIs('team.index') ? 'text-white' : '' }}" href="{{ route('team.index') }}"> <a class="{{ request()->routeIs('team.index') ? 'dark:text-white' : '' }}" href="{{ route('team.index') }}">
<button>General</button> <button>General</button>
</a> </a>
<a class="{{ request()->routeIs('team.member.index') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('team.member.index') ? 'dark:text-white' : '' }}"
href="{{ route('team.member.index') }}"> href="{{ route('team.member.index') }}">
<button>Members</button> <button>Members</button>
</a> </a>
<a class="{{ request()->routeIs('team.storage.index') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('team.storage.index') ? 'dark:text-white' : '' }}"
href="{{ route('team.storage.index') }}"> href="{{ route('team.storage.index') }}">
<button>S3 Storages</button> <button>S3 Storages</button>
</a> </a>
<a class="{{ request()->routeIs('team.shared-variables.index') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('team.shared-variables.index') ? 'dark:text-white' : '' }}"
href="{{ route('team.shared-variables.index') }}"> href="{{ route('team.shared-variables.index') }}">
<button>Shared Variables</button> <button>Shared Variables</button>
</a> </a>

View File

@ -386,7 +386,7 @@
class="absolute w-full duration-100 ease-out sm:max-w-xs " class="absolute w-full duration-100 ease-out sm:max-w-xs "
:class="{ 'toast-no-description': !toast.description }"> :class="{ 'toast-no-description': !toast.description }">
<span <span
class="relative flex flex-col items-start shadow-[0_5px_15px_-3px_rgb(0_0_0_/_0.08)] w-full transition-all duration-100 ease-out dark:bg-coolgray-100 bg-neutral-100 dark:border dark:border-coolgray-200 rounded sm:max-w-xs group" class="relative flex flex-col items-start shadow-[0_5px_15px_-3px_rgb(0_0_0_/_0.08)] w-full transition-all duration-100 ease-out dark:bg-coolgray-100 bg-white dark:border dark:border-coolgray-200 rounded sm:max-w-xs group"
:class="{ 'p-4': !toast.html, 'p-0': toast.html }"> :class="{ 'p-4': !toast.html, 'p-0': toast.html }">
<template x-if="!toast.html"> <template x-if="!toast.html">
<div class="relative w-full"> <div class="relative w-full">

View File

@ -11,7 +11,7 @@
@if ($destination->getMorphClass() === 'App\Models\StandaloneDocker') @if ($destination->getMorphClass() === 'App\Models\StandaloneDocker')
<a class="flex gap-4 text-center hover:no-underline box group" <a class="flex gap-4 text-center hover:no-underline box group"
href="{{ route('destination.show', ['destination_uuid' => data_get($destination, 'uuid')]) }}"> href="{{ route('destination.show', ['destination_uuid' => data_get($destination, 'uuid')]) }}">
<div class="group-hover:text-white"> <div class="group-hover:dark:text-white">
<div>{{ $destination->name }}</div> <div>{{ $destination->name }}</div>
</div> </div>
</a> </a>
@ -20,7 +20,7 @@
<a class="flex gap-4 text-center hover:no-underline box group" <a class="flex gap-4 text-center hover:no-underline box group"
href="{{ route('destination.show', ['destination_uuid' => data_get($destination, 'uuid')]) }}"> href="{{ route('destination.show', ['destination_uuid' => data_get($destination, 'uuid')]) }}">
<div class="group-hover:text-white"> <div class="group-hover:dark:text-white">
<div>{{ $destination->name }}</div> <div>{{ $destination->name }}</div>
</div> </div>
</a> </a>

View File

@ -3,7 +3,7 @@
<div class="text-center hero-content"> <div class="text-center hero-content">
<div class=""> <div class="">
<p class="font-mono text-6xl font-semibold text-warning">401</p> <p class="font-mono text-6xl font-semibold text-warning">401</p>
<h1 class="mt-4 font-bold tracking-tight text-white">You shall not pass!</h1> <h1 class="mt-4 font-bold tracking-tight dark:text-white">You shall not pass!</h1>
<p class="mt-6 text-base leading-7 text-neutral-300">You don't have permission to access this page. <p class="mt-6 text-base leading-7 text-neutral-300">You don't have permission to access this page.
</p> </p>
<div class="flex items-center justify-center mt-10 gap-x-6"> <div class="flex items-center justify-center mt-10 gap-x-6">

View File

@ -3,7 +3,7 @@
<div class="text-center hero-content"> <div class="text-center hero-content">
<div class=""> <div class="">
<p class="font-mono text-6xl font-semibold text-warning">403</p> <p class="font-mono text-6xl font-semibold text-warning">403</p>
<h1 class="mt-4 font-bold tracking-tight text-white">You shall not pass!</h1> <h1 class="mt-4 font-bold tracking-tight dark:text-white">You shall not pass!</h1>
<p class="mt-6 text-base leading-7 text-neutral-300">You don't have permission to access this page. <p class="mt-6 text-base leading-7 text-neutral-300">You don't have permission to access this page.
</p> </p>
<div class="flex items-center justify-center mt-10 gap-x-6"> <div class="flex items-center justify-center mt-10 gap-x-6">

View File

@ -3,7 +3,7 @@
<div class="text-center hero-content"> <div class="text-center hero-content">
<div class=""> <div class="">
<p class="font-mono text-6xl font-semibold text-warning">404</p> <p class="font-mono text-6xl font-semibold text-warning">404</p>
<h1 class="mt-4 font-bold tracking-tight text-white">How did you got here?</h1> <h1 class="mt-4 font-bold tracking-tight dark:text-white">How did you got here?</h1>
<p class="mt-6 text-base leading-7 text-neutral-300">Sorry, we couldnt find the page youre looking <p class="mt-6 text-base leading-7 text-neutral-300">Sorry, we couldnt find the page youre looking
for. for.
</p> </p>

View File

@ -3,7 +3,7 @@
<div class="text-center hero-content"> <div class="text-center hero-content">
<div class=""> <div class="">
<p class="font-mono text-6xl font-semibold text-warning">419</p> <p class="font-mono text-6xl font-semibold text-warning">419</p>
<h1 class="mt-4 font-bold tracking-tight text-white">This page is definitely old, not like you!</h1> <h1 class="mt-4 font-bold tracking-tight dark:text-white">This page is definitely old, not like you!</h1>
<p class="mt-6 text-base leading-7 text-neutral-300">Sorry, we couldnt find the page youre looking <p class="mt-6 text-base leading-7 text-neutral-300">Sorry, we couldnt find the page youre looking
for. for.
</p> </p>
@ -11,7 +11,7 @@
<a href="/"> <a href="/">
<x-forms.button>Go back home</x-forms.button> <x-forms.button>Go back home</x-forms.button>
</a> </a>
<a href="{{ config('coolify.contact') }}" class="font-semibold text-white ">Contact <a href="{{ config('coolify.contact') }}" class="font-semibold dark:text-white ">Contact
support support
<span aria-hidden="true">&rarr;</span></a> <span aria-hidden="true">&rarr;</span></a>
</div> </div>

View File

@ -3,7 +3,7 @@
<div class="text-center hero-content"> <div class="text-center hero-content">
<div class=""> <div class="">
<p class="font-mono text-6xl font-semibold text-warning">429</p> <p class="font-mono text-6xl font-semibold text-warning">429</p>
<h1 class="mt-4 font-bold tracking-tight text-white">Woah, slow down there!</h1> <h1 class="mt-4 font-bold tracking-tight dark:text-white">Woah, slow down there!</h1>
<p class="mt-6 text-base leading-7 text-neutral-300">You're making too many requests. Please wait a few <p class="mt-6 text-base leading-7 text-neutral-300">You're making too many requests. Please wait a few
seconds before trying again. seconds before trying again.
</p> </p>
@ -11,7 +11,7 @@
<a href="/"> <a href="/">
<x-forms.button>Go back home</x-forms.button> <x-forms.button>Go back home</x-forms.button>
</a> </a>
<a href="{{ config('coolify.contact') }}" class="font-semibold text-white ">Contact <a href="{{ config('coolify.contact') }}" class="font-semibold dark:text-white ">Contact
support support
<span aria-hidden="true">&rarr;</span></a> <span aria-hidden="true">&rarr;</span></a>
</div> </div>

View File

@ -3,7 +3,7 @@
<div class="text-center hero-content"> <div class="text-center hero-content">
<div> <div>
<p class="font-mono text-6xl font-semibold text-warning">500</p> <p class="font-mono text-6xl font-semibold text-warning">500</p>
<h1 class="mt-4 font-bold tracking-tight text-white">Something is not okay, are you okay?</h1> <h1 class="mt-4 font-bold tracking-tight dark:text-white">Something is not okay, are you okay?</h1>
<p class="mt-6 text-base leading-7 text-neutral-300">There has been an error, we are working on it. <p class="mt-6 text-base leading-7 text-neutral-300">There has been an error, we are working on it.
</p> </p>
@if ($exception->getMessage() !== '') @if ($exception->getMessage() !== '')
@ -14,7 +14,7 @@
<a href="/"> <a href="/">
<x-forms.button>Go back home</x-forms.button> <x-forms.button>Go back home</x-forms.button>
</a> </a>
<a href="{{ config('coolify.contact') }}" class="font-semibold text-white">Contact <a href="{{ config('coolify.contact') }}" class="font-semibold dark:text-white">Contact
support support
<span aria-hidden="true">&rarr;</span></a> <span aria-hidden="true">&rarr;</span></a>
</div> </div>

View File

@ -3,12 +3,12 @@
<div class="text-center hero-content"> <div class="text-center hero-content">
<div> <div>
<p class="font-mono text-6xl font-semibold text-warning">503</p> <p class="font-mono text-6xl font-semibold text-warning">503</p>
<h1 class="mt-4 font-bold tracking-tight text-white">We are working on serious things.</h1> <h1 class="mt-4 font-bold tracking-tight dark:text-white">We are working on serious things.</h1>
<p class="mt-6 text-base leading-7 text-neutral-300">Service Unavailable. Be right back. Thanks for your <p class="mt-6 text-base leading-7 text-neutral-300">Service Unavailable. Be right back. Thanks for your
patience. patience.
</p> </p>
<div class="flex items-center justify-center mt-10 gap-x-6"> <div class="flex items-center justify-center mt-10 gap-x-6">
<a href="{{ config('coolify.contact') }}" class="font-semibold text-white ">Contact <a href="{{ config('coolify.contact') }}" class="font-semibold dark:text-white ">Contact
support support
<span aria-hidden="true">&rarr;</span></a> <span aria-hidden="true">&rarr;</span></a>
</div> </div>

View File

@ -16,7 +16,7 @@
<div class="absolute top-0 flex justify-center w-16 pt-5 left-full"> <div class="absolute top-0 flex justify-center w-16 pt-5 left-full">
<button type="button" class="-m-2.5 p-2.5" x-on:click="open = !open"> <button type="button" class="-m-2.5 p-2.5" x-on:click="open = !open">
<span class="sr-only">Close sidebar</span> <span class="sr-only">Close sidebar</span>
<svg class="w-6 h-6 text-white" fill="none" viewBox="0 0 24 24" stroke-width="1.5" <svg class="w-6 h-6 dark:text-white" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
stroke="currentColor" aria-hidden="true"> stroke="currentColor" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
</svg> </svg>
@ -53,11 +53,9 @@
</a> --}} </a> --}}
</div> </div>
<main class="lg:pl-48"> <main class="lg:pl-48" >
<div> <div class="p-4 sm:px-6 lg:px-8 lg:py-6">
<div class="p-4 sm:px-6 lg:px-8 lg:py-6"> {{ $slot }}
{{ $slot }}
</div>
</div> </div>
</main> </main>
</div> </div>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html data-theme="coolify" lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <html data-theme="dark" lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">

View File

@ -10,7 +10,7 @@
</div> </div>
@endif @endif
<div <div
class="flex flex-col-reverse w-full px-4 py-2 overflow-y-auto text-white border border-solid rounded bg-coolgray-100 scrollbar border-coolgray-300 max-h-96"> class="flex flex-col-reverse w-full px-4 py-2 overflow-y-auto dark:text-white border border-solid rounded bg-coolgray-100 scrollbar border-coolgray-300 max-h-96">
<pre class="font-mono whitespace-pre-wrap" @if ($isPollingActive) wire:poll.1000ms="polling" @endif>{{ RunRemoteProcess::decodeOutput($this->activity) }}</pre> <pre class="font-mono whitespace-pre-wrap" @if ($isPollingActive) wire:poll.1000ms="polling" @endif>{{ RunRemoteProcess::decodeOutput($this->activity) }}</pre>
</div> </div>
@else @else

View File

@ -4,7 +4,7 @@
{{ auth()->user()->name }} {{ auth()->user()->name }}
<h3 class="pt-4">Users</h3> <h3 class="pt-4">Users</h3>
<div class="flex flex-wrap gap-2"> <div class="flex flex-wrap gap-2">
<div class="text-white cursor-pointer w-96 box-without-bg bg-coollabs-100" wire:click="switchUser('0')"> <div class="dark:text-white cursor-pointer w-96 box-without-bg bg-coollabs-100" wire:click="switchUser('0')">
Root Root
</div> </div>
@foreach ($users as $user) @foreach ($users as $user)

View File

@ -19,7 +19,7 @@
integrations, deploy databases and services, monitor these resources with notifications and integrations, deploy databases and services, monitor these resources with notifications and
alerts alerts
without vendor lock-in without vendor lock-in
and <a href="https://coolify.io" class="text-white hover:underline">much much more</a>. and <a href="https://coolify.io" class="dark:text-white hover:underline">much much more</a>.
<br><br> <br><br>
<span class="text-xl"> <span class="text-xl">
<x-highlighted text="Self-hosting with superpowers!" /></span> <x-highlighted text="Self-hosting with superpowers!" /></span>
@ -332,7 +332,7 @@
<a wire:click='restartBoarding' class="cursor-pointer">Restart boarding process</a> <a wire:click='restartBoarding' class="cursor-pointer">Restart boarding process</a>
<x-modal-input title="How can we help?"> <x-modal-input title="How can we help?">
<x-slot:content> <x-slot:content>
<div class="cursor-pointer dark:hover:text-white" title="Send us feedback or get help!"> <div class="cursor-pointer dark:hover:dark:text-white" title="Send us feedback or get help!">
Feedback Feedback
</div> </div>
</x-slot:content> </x-slot:content>

View File

@ -35,22 +35,15 @@
{{ $project->description }}</div> {{ $project->description }}</div>
</a> </a>
@endif @endif
<div class="flex items-center group"> <div class="flex items-center gap-2 mr-4">
<a class="mx-4 rounded hover:no-underline" <a class="hover:underline"
href="{{ route('project.resource.create', ['project_uuid' => data_get($project, 'uuid'), 'environment_name' => data_get($project, 'environments.0.name', 'production')]) }}"> href="{{ route('project.resource.create', ['project_uuid' => data_get($project, 'uuid'), 'environment_name' => data_get($project, 'environments.0.name', 'production')]) }}">
<span class="p-2 font-bold on-box">+ <span class="p-2 font-bold">+
Add Resource</span> Add Resource</span>
</a> </a>
<a class="mx-4" <a class="font-bold hover:underline"
href="{{ route('project.edit', ['project_uuid' => data_get($project, 'uuid')]) }}"> href="{{ route('project.edit', ['project_uuid' => data_get($project, 'uuid')]) }}">
<svg xmlns="http://www.w3.org/2000/svg" class="icon on-box" viewBox="0 0 24 24" Settings
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path
d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z" />
<path d="M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0" />
</svg>
</a> </a>
</div> </div>
</div> </div>
@ -114,9 +107,9 @@
</div> </div>
</div> </div>
@else @else
<div class="flex gap-1"> <div class="flex flex-col gap-1">
<span class='font-bold text-warning'>No servers found.</span> <div class='font-bold dark:text-warning'>No servers found.</div>
<x-modal-input buttonTitle="Add" <div class="flex items-center gap-1"><x-modal-input buttonTitle="Add"
title="New Server"> title="New Server">
<livewire:server.create /> <livewire:server.create />
</x-modal-input> your first server </x-modal-input> your first server
@ -124,6 +117,7 @@
go to the <a class="underline dark:text-white" href="{{ route('onboarding') }}">onboarding</a> go to the <a class="underline dark:text-white" href="{{ route('onboarding') }}">onboarding</a>
page. page.
</div> </div>
</div>
@endif @endif
@endif @endif
@if ($servers->count() > 0 && $projects->count() > 0) @if ($servers->count() > 0 && $projects->count() > 0)
@ -134,7 +128,7 @@
@endif @endif
<x-forms.button wire:click='cleanup_queue'>Cleanup Queues</x-forms.button> <x-forms.button wire:click='cleanup_queue'>Cleanup Queues</x-forms.button>
</div> </div>
<div wire:poll.1000ms="get_deployments" class="grid grid-cols-1"> <div wire:poll.3000ms="get_deployments" class="grid grid-cols-1">
@forelse ($deployments_per_server as $server_name => $deployments) @forelse ($deployments_per_server as $server_name => $deployments)
<h4 class="py-4">{{ $server_name }}</h4> <h4 class="py-4">{{ $server_name }}</h4>
<div class="grid grid-cols-1 gap-2 lg:grid-cols-3"> <div class="grid grid-cols-1 gap-2 lg:grid-cols-3">

View File

@ -18,13 +18,13 @@
Available for using: Available for using:
@forelse ($server->standaloneDockers as $docker) @forelse ($server->standaloneDockers as $docker)
<a href="{{ route('destination.show', ['destination_uuid' => data_get($docker, 'uuid')]) }}"> <a href="{{ route('destination.show', ['destination_uuid' => data_get($docker, 'uuid')]) }}">
<button class="text-white btn-link">{{ data_get($docker, 'network') }} </button> <button class="dark:text-white btn-link">{{ data_get($docker, 'network') }} </button>
</a> </a>
@empty @empty
@endforelse @endforelse
@forelse ($server->swarmDockers as $docker) @forelse ($server->swarmDockers as $docker)
<a href="{{ route('destination.show', ['destination_uuid' => data_get($docker, 'uuid')]) }}"> <a href="{{ route('destination.show', ['destination_uuid' => data_get($docker, 'uuid')]) }}">
<button class="text-white btn-link">{{ data_get($docker, 'network') }} </button> <button class="dark:text-white btn-link">{{ data_get($docker, 'network') }} </button>
</a> </a>
@empty @empty
@endforelse @endforelse

View File

@ -2,7 +2,7 @@
<div class="w-96 min-w-fit"> <div class="w-96 min-w-fit">
<div class="flex flex-col items-center"> <div class="flex flex-col items-center">
<a href="{{ route('dashboard') }}"> <a href="{{ route('dashboard') }}">
<div class="text-5xl font-bold tracking-tight text-center text-white">Coolify</div> <div class="text-5xl font-bold tracking-tight text-center dark:text-white">Coolify</div>
</a> </a>
</div> </div>

View File

@ -20,8 +20,8 @@
<x-slot:description> <x-slot:description>
<span>Please <span>Please
consider donating on <a href="https://github.com/sponsors/coollabsio" consider donating on <a href="https://github.com/sponsors/coollabsio"
class="text-xs text-white underline">GitHub</a> or <a href="https://opencollective.com/coollabsio" class="text-xs dark:text-white underline">GitHub</a> or <a href="https://opencollective.com/coollabsio"
class="text-xs text-white underline">OpenCollective</a>.<br><br></span> class="text-xs dark:text-white underline">OpenCollective</a>.<br><br></span>
<span>It enables us to keep creating features without paywalls, ensuring our work remains free and <span>It enables us to keep creating features without paywalls, ensuring our work remains free and
open.</span> open.</span>
</x-slot:description> </x-slot:description>
@ -35,7 +35,7 @@
<div><span class="font-bold text-red-500">WARNING:</span> The number of active servers exceeds the limit <div><span class="font-bold text-red-500">WARNING:</span> The number of active servers exceeds the limit
covered by your payment. If not resolved, some of your servers <span class="font-bold text-red-500">will covered by your payment. If not resolved, some of your servers <span class="font-bold text-red-500">will
be deactivated</span>. Visit <a href="{{ route('subscription.show') }}" be deactivated</span>. Visit <a href="{{ route('subscription.show') }}"
class="text-white underline">/subscription</a> to update your subscription or remove some servers. class="dark:text-white underline">/subscription</a> to update your subscription or remove some servers.
</div> </div>
</x-banner> </x-banner>
@endif @endif
@ -57,7 +57,7 @@
highly recommended to enable at least highly recommended to enable at least
one one
notification channel to receive important alerts.<br>Visit <a notification channel to receive important alerts.<br>Visit <a
href="{{ route('notifications.email') }}" class="text-white underline">/notification</a> to href="{{ route('notifications.email') }}" class="dark:text-white underline">/notification</a> to
enable notifications.</span> enable notifications.</span>
</x-slot:description> </x-slot:description>
<x-slot:button-text @click="disableNotification()"> <x-slot:button-text @click="disableNotification()">

View File

@ -10,7 +10,7 @@
</div> </div>
@endif @endif
<div <div
class="scrollbar flex flex-col-reverse w-full overflow-y-auto border border-solid rounded border-coolgray-300 max-h-[32rem] p-4 pt-6 text-xs text-white"> class="scrollbar flex flex-col-reverse w-full overflow-y-auto border border-solid rounded border-coolgray-300 max-h-[32rem] p-4 pt-6 text-xs dark:text-white">
<pre class="font-mono whitespace-pre-wrap" @if ($isPollingActive) wire:poll.1000ms="polling" @endif>{{ RunRemoteProcess::decodeOutput($this->activity) }}</pre> <pre class="font-mono whitespace-pre-wrap" @if ($isPollingActive) wire:poll.1000ms="polling" @endif>{{ RunRemoteProcess::decodeOutput($this->activity) }}</pre>
</div> </div>

View File

@ -7,7 +7,7 @@
Save Save
</x-forms.button> </x-forms.button>
@if ($team->discord_enabled) @if ($team->discord_enabled)
<x-forms.button class="text-white normal-case btn btn-xs no-animation btn-primary" <x-forms.button class="dark:text-white normal-case btn btn-xs no-animation btn-primary"
wire:click="sendTestNotification"> wire:click="sendTestNotification">
Send Test Notifications Send Test Notifications
</x-forms.button> </x-forms.button>

View File

@ -7,7 +7,7 @@
Save Save
</x-forms.button> </x-forms.button>
@if ($team->telegram_enabled) @if ($team->telegram_enabled)
<x-forms.button class="text-white normal-case btn btn-xs no-animation btn-primary" <x-forms.button class="dark:text-white normal-case btn btn-xs no-animation btn-primary"
wire:click="sendTestNotification"> wire:click="sendTestNotification">
Send Test Notifications Send Test Notifications
</x-forms.button> </x-forms.button>
@ -18,7 +18,7 @@
</div> </div>
<div class="flex gap-2"> <div class="flex gap-2">
<x-forms.input type="password" <x-forms.input type="password"
helper="Get it from the <a class='inline-block text-white underline' href='https://t.me/botfather' target='_blank'>BotFather Bot</a> on Telegram." helper="Get it from the <a class='inline-block dark:text-white underline' href='https://t.me/botfather' target='_blank'>BotFather Bot</a> on Telegram."
required id="team.telegram_token" label="Token" /> required id="team.telegram_token" label="Token" />
<x-forms.input helper="Recommended to add your bot to a group chat and add its Chat ID here." required <x-forms.input helper="Recommended to add your bot to a group chat and add its Chat ID here." required
id="team.telegram_chat_id" label="Chat ID" /> id="team.telegram_chat_id" label="Chat ID" />

View File

@ -53,7 +53,7 @@
<div class="pb-6 ">Here are the recovery codes for your account. Please store them in a secure <div class="pb-6 ">Here are the recovery codes for your account. Please store them in a secure
location. location.
</div> </div>
<div class="text-white"> <div class="dark:text-white">
@foreach (request()->user()->recoveryCodes() as $code) @foreach (request()->user()->recoveryCodes() as $code)
<div>{{ $code }}</div> <div>{{ $code }}</div>
@endforeach @endforeach
@ -79,7 +79,7 @@
secure secure
location. location.
</div> </div>
<div class="text-white"> <div class="dark:text-white">
@foreach (request()->user()->recoveryCodes() as $code) @foreach (request()->user()->recoveryCodes() as $code)
<div>{{ $code }}</div> <div>{{ $code }}</div>
@endforeach @endforeach

View File

@ -49,7 +49,7 @@
@if ($application->build_pack !== 'dockercompose') @if ($application->build_pack !== 'dockercompose')
<div class="w-96"> <div class="w-96">
<x-forms.checkbox <x-forms.checkbox
helper="Enable GPU usage for this application. More info <a href='https://docs.docker.com/compose/gpu-support/' class='text-white underline' target='_blank'>here</a>." helper="Enable GPU usage for this application. More info <a href='https://docs.docker.com/compose/gpu-support/' class='dark:text-white underline' target='_blank'>here</a>."
instantSave id="application.settings.is_gpu_enabled" label="Attach GPU" /> instantSave id="application.settings.is_gpu_enabled" label="Attach GPU" />
@if ($application->settings->is_gpu_enabled) @if ($application->settings->is_gpu_enabled)
<h5>GPU Settings</h5> <h5>GPU Settings</h5>
@ -64,7 +64,7 @@
<x-forms.input label="GPU Count" placeholder="empty means use all GPUs" <x-forms.input label="GPU Count" placeholder="empty means use all GPUs"
id="application.settings.gpu_count"> </x-forms.input> id="application.settings.gpu_count"> </x-forms.input>
<x-forms.input label="GPU Device Ids" placeholder="0,2" <x-forms.input label="GPU Device Ids" placeholder="0,2"
helper="Comma separated list of device ids. More info <a href='https://docs.docker.com/compose/gpu-support/#access-specific-devices' class='text-white underline' target='_blank'>here</a>." helper="Comma separated list of device ids. More info <a href='https://docs.docker.com/compose/gpu-support/#access-specific-devices' class='dark:text-white underline' target='_blank'>here</a>."
id="application.settings.gpu_device_ids"> </x-forms.input> id="application.settings.gpu_device_ids"> </x-forms.input>
</div> </div>

View File

@ -2,32 +2,32 @@
<h1>Configuration</h1> <h1>Configuration</h1>
<livewire:project.application.heading :application="$application" /> <livewire:project.application.heading :application="$application" />
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex h-full pt-6"> <div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex h-full pt-6">
<div class="flex flex-col gap-4 xl:w-48"> <div class="flex flex-col gap-2 xl:w-48">
<a :class="activeTab === 'general' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'general' && 'menu-item-active'"
@click.prevent="activeTab = 'general'; window.location.hash = 'general'" href="#">General</a> @click.prevent="activeTab = 'general'; window.location.hash = 'general'" href="#">General</a>
@if ($application->destination->server->isSwarm()) @if ($application->destination->server->isSwarm())
<a :class="activeTab === 'swarm' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'swarm' && 'menu-item-active'"
@click.prevent="activeTab = 'swarm'; window.location.hash = 'swarm'" href="#">Swarm @click.prevent="activeTab = 'swarm'; window.location.hash = 'swarm'" href="#">Swarm
Configuration</a> Configuration</a>
@endif @endif
<a :class="activeTab === 'advanced' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'advanced' && 'menu-item-active'"
@click.prevent="activeTab = 'advanced'; window.location.hash = 'advanced'" href="#">Advanced</a> @click.prevent="activeTab = 'advanced'; window.location.hash = 'advanced'" href="#">Advanced</a>
@if ($application->build_pack !== 'static') @if ($application->build_pack !== 'static')
<a :class="activeTab === 'environment-variables' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'environment-variables' && 'menu-item-active'"
@click.prevent="activeTab = 'environment-variables'; window.location.hash = 'environment-variables'" @click.prevent="activeTab = 'environment-variables'; window.location.hash = 'environment-variables'"
href="#">Environment href="#">Environment
Variables</a> Variables</a>
@endif @endif
@if ($application->build_pack !== 'static' && $application->build_pack !== 'dockercompose') @if ($application->build_pack !== 'static' && $application->build_pack !== 'dockercompose')
<a :class="activeTab === 'storages' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'storages' && 'menu-item-active'"
@click.prevent="activeTab = 'storages'; window.location.hash = 'storages'" href="#">Storages @click.prevent="activeTab = 'storages'; window.location.hash = 'storages'" href="#">Storages
</a> </a>
@endif @endif
@if ($application->git_based()) @if ($application->git_based())
<a :class="activeTab === 'source' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'source' && 'menu-item-active'"
@click.prevent="activeTab = 'source'; window.location.hash = 'source'" href="#">Source</a> @click.prevent="activeTab = 'source'; window.location.hash = 'source'" href="#">Source</a>
@endif @endif
<a :class="activeTab === 'servers' && 'dark:text-white text-black'" class="flex items-center gap-2" <a class="menu-item" :class="activeTab === 'servers' && 'menu-item-active'" class="flex items-center gap-2"
@click.prevent="activeTab = 'servers'; window.location.hash = 'servers'" href="#">Servers @click.prevent="activeTab = 'servers'; window.location.hash = 'servers'" href="#">Servers
@if (str($application->status)->contains('degraded')) @if (str($application->status)->contains('degraded'))
<span title="Some servers are unavailable"> <span title="Some servers are unavailable">
@ -38,42 +38,42 @@
</span> </span>
@endif @endif
</a> </a>
<a :class="activeTab === 'scheduled-tasks' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'scheduled-tasks' && 'menu-item-active'"
@click.prevent="activeTab = 'scheduled-tasks'; window.location.hash = 'scheduled-tasks'" @click.prevent="activeTab = 'scheduled-tasks'; window.location.hash = 'scheduled-tasks'"
href="#">Scheduled Tasks href="#">Scheduled Tasks
</a> </a>
<a :class="activeTab === 'webhooks' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'webhooks' && 'menu-item-active'"
@click.prevent="activeTab = 'webhooks'; window.location.hash = 'webhooks'" href="#">Webhooks @click.prevent="activeTab = 'webhooks'; window.location.hash = 'webhooks'" href="#">Webhooks
</a> </a>
@if ($application->git_based()) @if ($application->git_based())
<a :class="activeTab === 'previews' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'previews' && 'menu-item-active'"
@click.prevent="activeTab = 'previews'; window.location.hash = 'previews'" href="#">Preview @click.prevent="activeTab = 'previews'; window.location.hash = 'previews'" href="#">Preview
Deployments Deployments
</a> </a>
@endif @endif
@if ($application->build_pack !== 'static' && $application->build_pack !== 'dockercompose') @if ($application->build_pack !== 'static' && $application->build_pack !== 'dockercompose')
<a :class="activeTab === 'health' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'health' && 'menu-item-active'"
@click.prevent="activeTab = 'health'; window.location.hash = 'health'" href="#">Healthchecks @click.prevent="activeTab = 'health'; window.location.hash = 'health'" href="#">Healthchecks
</a> </a>
@endif @endif
<a :class="activeTab === 'rollback' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'rollback' && 'menu-item-active'"
@click.prevent="activeTab = 'rollback'; window.location.hash = 'rollback'" href="#">Rollback @click.prevent="activeTab = 'rollback'; window.location.hash = 'rollback'" href="#">Rollback
</a> </a>
@if ($application->build_pack !== 'dockercompose') @if ($application->build_pack !== 'dockercompose')
<a :class="activeTab === 'resource-limits' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'resource-limits' && 'menu-item-active'"
@click.prevent="activeTab = 'resource-limits'; window.location.hash = 'resource-limits'" @click.prevent="activeTab = 'resource-limits'; window.location.hash = 'resource-limits'"
href="#">Resource Limits href="#">Resource Limits
</a> </a>
@endif @endif
<a :class="activeTab === 'resource-operations' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'resource-operations' && 'menu-item-active'"
@click.prevent="activeTab = 'resource-operations'; window.location.hash = 'resource-operations'" @click.prevent="activeTab = 'resource-operations'; window.location.hash = 'resource-operations'"
href="#">Resource Operations href="#">Resource Operations
</a> </a>
<a :class="activeTab === 'tags' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'tags' && 'menu-item-active'"
@click.prevent="activeTab = 'tags'; window.location.hash = 'tags'" href="#">Tags @click.prevent="activeTab = 'tags'; window.location.hash = 'tags'" href="#">Tags
</a> </a>
<a :class="activeTab === 'danger' && 'dark:text-white text-black'" <a class="menu-item" :class="activeTab === 'danger' && 'menu-item-active'"
@click.prevent="activeTab = 'danger'; window.location.hash = 'danger'" href="#">Danger Zone @click.prevent="activeTab = 'danger'; window.location.hash = 'danger'" href="#">Danger Zone
</a> </a>
</div> </div>

View File

@ -17,7 +17,7 @@
@endif @endif
<div id="screen" :class="fullscreen ? 'fullscreen' : ''"> <div id="screen" :class="fullscreen ? 'fullscreen' : ''">
<div @if ($isKeepAliveOn) wire:poll.2000ms="polling" @endif <div @if ($isKeepAliveOn) wire:poll.2000ms="polling" @endif
class="relative flex flex-col-reverse w-full p-2 px-4 mt-4 overflow-y-auto text-white bg-coolgray-100 scrollbar border-coolgray-300" class="relative flex flex-col-reverse w-full p-2 px-4 mt-4 overflow-y-auto dark:text-white bg-coolgray-100 scrollbar border-coolgray-300"
:class="fullscreen ? '' : 'max-h-[40rem] border border-dotted rounded'"> :class="fullscreen ? '' : 'max-h-[40rem] border border-dotted rounded'">
<button title="Minimize" x-show="fullscreen" class="fixed top-4 right-4" <button title="Minimize" x-show="fullscreen" class="fixed top-4 right-4"
x-on:click="makeFullscreen"><svg class="icon" viewBox="0 0 24 24" x-on:click="makeFullscreen"><svg class="icon" viewBox="0 0 24 24"

View File

@ -206,13 +206,13 @@
know what are know what are
you doing.</div> you doing.</div>
<x-forms.input <x-forms.input
helper="You can add custom docker run options that will be used when your container is started.<br>Note: Not all options are supported, as they could mess up Coolify's automation and could cause bad experience for users.<br><br>Check the <a class='text-white underline' href='https://coolify.io/docs/custom-docker-options'>docs.</a>" helper="You can add custom docker run options that will be used when your container is started.<br>Note: Not all options are supported, as they could mess up Coolify's automation and could cause bad experience for users.<br><br>Check the <a class='dark:text-white underline' href='https://coolify.io/docs/custom-docker-options'>docs.</a>"
placeholder="--cap-add SYS_ADMIN --device=/dev/fuse --security-opt apparmor:unconfined --ulimit nofile=1024:1024 --tmpfs /run:rw,noexec,nosuid,size=65536k" placeholder="--cap-add SYS_ADMIN --device=/dev/fuse --security-opt apparmor:unconfined --ulimit nofile=1024:1024 --tmpfs /run:rw,noexec,nosuid,size=65536k"
id="application.custom_docker_run_options" label="Custom Docker Options" /> id="application.custom_docker_run_options" label="Custom Docker Options" />
@endif @endif
@else @else
<x-forms.input <x-forms.input
helper="You can add custom docker run options that will be used when your container is started.<br>Note: Not all options are supported, as they could mess up Coolify's automation and could cause bad experience for users.<br><br>Check the <a class='text-white underline' href='https://coolify.io/docs/custom-docker-options'>docs.</a>" helper="You can add custom docker run options that will be used when your container is started.<br>Note: Not all options are supported, as they could mess up Coolify's automation and could cause bad experience for users.<br><br>Check the <a class='dark:text-white underline' href='https://coolify.io/docs/custom-docker-options'>docs.</a>"
placeholder="--cap-add SYS_ADMIN --device=/dev/fuse --security-opt apparmor:unconfined --ulimit nofile=1024:1024 --tmpfs /run:rw,noexec,nosuid,size=65536k" placeholder="--cap-add SYS_ADMIN --device=/dev/fuse --security-opt apparmor:unconfined --ulimit nofile=1024:1024 --tmpfs /run:rw,noexec,nosuid,size=65536k"
id="application.custom_docker_run_options" label="Custom Docker Options" /> id="application.custom_docker_run_options" label="Custom Docker Options" />
@endif @endif

View File

@ -1,24 +1,20 @@
<nav wire:poll.5000ms="check_status"> <nav wire:poll.5000ms="check_status">
<x-resources.breadcrumbs :resource="$application" :parameters="$parameters" /> <x-resources.breadcrumbs :resource="$application" :parameters="$parameters" />
<div class="navbar-main"> <div class="navbar-main">
<a class="{{ request()->routeIs('project.application.configuration') ? 'text-white' : '' }}" <a href="{{ route('project.application.configuration', $parameters) }}">
href="{{ route('project.application.configuration', $parameters) }}"> Configuration
<button>Configuration</button>
</a> </a>
<a class="{{ request()->routeIs('project.application.deployment.index') ? 'text-white' : '' }}" <a href="{{ route('project.application.deployment.index', $parameters) }}">
href="{{ route('project.application.deployment.index', $parameters) }}">
<button>Deployments</button> <button>Deployments</button>
</a> </a>
<a class="{{ request()->routeIs('project.application.logs') ? 'text-white' : '' }}" <a href="{{ route('project.application.logs', $parameters) }}">
href="{{ route('project.application.logs', $parameters) }}">
<button>Logs</button> <button>Logs</button>
</a> </a>
@if (!$application->destination->server->isSwarm()) @if (!$application->destination->server->isSwarm())
<a class="{{ request()->routeIs('project.application.command') ? 'text-white' : '' }}" <a href="{{ route('project.application.command', $parameters) }}">
href="{{ route('project.application.command', $parameters) }}"> <button>Command</button>
<button>Command</button> </a>
</a> @endif
@endif
<x-applications.links :application="$application" /> <x-applications.links :application="$application" />
<div class="flex-1"></div> <div class="flex-1"></div>
@if ($application->build_pack === 'dockercompose' && is_null($application->docker_compose_raw)) @if ($application->build_pack === 'dockercompose' && is_null($application->docker_compose_raw))
@ -27,86 +23,75 @@
@if (!$application->destination->server->isSwarm()) @if (!$application->destination->server->isSwarm())
<x-applications.advanced :application="$application" /> <x-applications.advanced :application="$application" />
@endif @endif
@if (!str($application->status)->startsWith('exited')) <div class="flex gap-2">
@if (!$application->destination->server->isSwarm()) @if (!str($application->status)->startsWith('exited'))
<button title="With rolling update if possible" wire:click='deploy' @if (!$application->destination->server->isSwarm())
class="flex items-center gap-2 cursor-pointer hover:text-white text-neutral-400"> <x-forms.button title="With rolling update if possible" wire:click='deploy'>
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 text-orange-400" viewBox="0 0 24 24" <svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 dark:text-orange-400"
viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path
d="M10.09 4.01l.496 -.495a2 2 0 0 1 2.828 0l7.071 7.07a2 2 0 0 1 0 2.83l-7.07 7.07a2 2 0 0 1 -2.83 0l-7.07 -7.07a2 2 0 0 1 0 -2.83l3.535 -3.535h-3.988">
</path>
<path d="M7.05 11.038v-3.988"></path>
</svg>
Redeploy
</x-forms.button>
@endif
@if ($application->build_pack !== 'dockercompose')
@if ($application->destination->server->isSwarm())
<x-forms.button title="Redeploy Swarm Service (rolling update)" wire:click='deploy'>
<svg class="w-5 h-5 dark:text-warning" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2">
<path
d="M19.933 13.041a8 8 0 1 1-9.925-8.788c3.899-1 7.935 1.007 9.425 4.747" />
<path d="M20 4v5h-5" />
</g>
</svg>
Update Service
</x-forms.button>
@else
<x-forms.button title="Restart without rebuilding" wire:click='restart'>
<svg class="w-5 h-5 dark:text-warning" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2">
<path
d="M19.933 13.041a8 8 0 1 1-9.925-8.788c3.899-1 7.935 1.007 9.425 4.747" />
<path d="M20 4v5h-5" />
</g>
</svg>
Restart
</x-forms.button>
@endif
@endif
<x-forms.button wire:click='stop'>
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 text-error" viewBox="0 0 24 24"
stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round"
stroke-linejoin="round"> stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path <path d="M6 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z">
d="M10.09 4.01l.496 -.495a2 2 0 0 1 2.828 0l7.071 7.07a2 2 0 0 1 0 2.83l-7.07 7.07a2 2 0 0 1 -2.83 0l-7.07 -7.07a2 2 0 0 1 0 -2.83l3.535 -3.535h-3.988"> </path>
<path d="M14 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z">
</path> </path>
<path d="M7.05 11.038v-3.988"></path>
</svg> </svg>
Redeploy Stop
</button> </x-forms.button>
@else
<x-forms.button wire:click='deploy'>
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 dark:text-warning" viewBox="0 0 24 24"
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M7 4v16l13 -8z" />
</svg>
Deploy
</x-forms.button>
@endif @endif
@if ($application->build_pack !== 'dockercompose') </div>
@if ($application->destination->server->isSwarm())
<button title="Redeploy Swarm Service (rolling update)" wire:click='deploy'
class="flex items-center gap-2 cursor-pointer hover:text-white text-neutral-400">
<svg class="w-5 h-5 text-warning" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"
stroke-width="2">
<path d="M19.933 13.041a8 8 0 1 1-9.925-8.788c3.899-1 7.935 1.007 9.425 4.747" />
<path d="M20 4v5h-5" />
</g>
</svg>
Update Service
</button>
@else
<button title="Restart without rebuilding" wire:click='restart'
class="flex items-center gap-2 cursor-pointer hover:text-white text-neutral-400">
<svg class="w-5 h-5 text-warning" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"
stroke-width="2">
<path d="M19.933 13.041a8 8 0 1 1-9.925-8.788c3.899-1 7.935 1.007 9.425 4.747" />
<path d="M20 4v5h-5" />
</g>
</svg>
Restart
</button>
@endif
{{-- @if (isDev())
<button title="Restart without rebuilding" wire:click='restartNew'
class="flex items-center gap-2 cursor-pointer hover:text-white text-neutral-400">
<svg class="w-5 h-5 text-warning" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"
stroke-width="2">
<path d="M19.933 13.041a8 8 0 1 1-9.925-8.788c3.899-1 7.935 1.007 9.425 4.747" />
<path d="M20 4v5h-5" />
</g>
</svg>
Restart (new)
</button>
@endif --}}
@endif
<button wire:click='stop'
class="flex items-center gap-2 cursor-pointer hover:text-white text-neutral-400">
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 text-error" viewBox="0 0 24 24"
stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round"
stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M6 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"></path>
<path d="M14 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"></path>
</svg>
Stop
</button>
@else
<button wire:click='deploy'
class="flex items-center gap-2 cursor-pointer hover:text-white text-neutral-400">
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 text-warning" viewBox="0 0 24 24"
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M7 4v16l13 -8z" />
</svg>
Deploy
</button>
@endif
@endif @endif
</div> </div>
</nav> </nav>

View File

@ -16,7 +16,7 @@
<div class="grid grid-cols-1 gap-2 pb-4 lg:grid-cols-4"> <div class="grid grid-cols-1 gap-2 pb-4 lg:grid-cols-4">
@foreach ($server->destinations() as $destination) @foreach ($server->destinations() as $destination)
<div class="cursor-pointer box-without-bg bg-coolgray-200 group" <div class="cursor-pointer box-without-bg bg-coolgray-200 group"
:class="'{{ $selectedDestination === $destination->id }}' && 'bg-coollabs text-white'" :class="'{{ $selectedDestination === $destination->id }}' && 'bg-coollabs dark:text-white'"
wire:click="selectServer('{{ $server->id }}', '{{ $destination->id }}')"> wire:click="selectServer('{{ $server->id }}', '{{ $destination->id }}')">
{{ $destination->name }} {{ $destination->name }}
</div> </div>
@ -32,7 +32,7 @@
@foreach ($environment->applications->sortBy('name') as $application) @foreach ($environment->applications->sortBy('name') as $application)
<div class="cursor-default box-without-bg bg-coolgray-100 group"> <div class="cursor-default box-without-bg bg-coolgray-100 group">
<div class="flex flex-col"> <div class="flex flex-col">
<div class="font-bold text-white">{{ $application->name }}</div> <div class="font-bold dark:text-white">{{ $application->name }}</div>
<div class="description">{{ $application->description }}</div> <div class="description">{{ $application->description }}</div>
</div> </div>
</div> </div>
@ -40,7 +40,7 @@
@foreach ($environment->databases()->sortBy('name') as $database) @foreach ($environment->databases()->sortBy('name') as $database)
<div class="cursor-default box-without-bg bg-coolgray-100 group"> <div class="cursor-default box-without-bg bg-coolgray-100 group">
<div class="flex flex-col"> <div class="flex flex-col">
<div class="font-bold text-white">{{ $database->name }}</div> <div class="font-bold dark:text-white">{{ $database->name }}</div>
<div class="description">{{ $database->description }}</div> <div class="description">{{ $database->description }}</div>
</div> </div>
</div> </div>
@ -48,7 +48,7 @@
@foreach ($environment->services->sortBy('name') as $service) @foreach ($environment->services->sortBy('name') as $service)
<div class="cursor-default box-without-bg bg-coolgray-100 group"> <div class="cursor-default box-without-bg bg-coolgray-100 group">
<div class="flex flex-col"> <div class="flex flex-col">
<div class="font-bold text-white">{{ $service->name }}</div> <div class="font-bold dark:text-white">{{ $service->name }}</div>
<div class="description">{{ $service->description }}</div> <div class="description">{{ $service->description }}</div>
</div> </div>
</div> </div>

View File

@ -13,45 +13,45 @@
</x-modal> </x-modal>
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex h-full pt-6"> <div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex h-full pt-6">
<div class="flex flex-col gap-4 min-w-fit"> <div class="flex flex-col gap-4 min-w-fit">
<a :class="activeTab === 'general' && 'text-white'" <a :class="activeTab === 'general' && 'dark:text-white'"
@click.prevent="activeTab = 'general'; @click.prevent="activeTab = 'general';
window.location.hash = 'general'" window.location.hash = 'general'"
href="#">General</a> href="#">General</a>
<a :class="activeTab === 'environment-variables' && 'text-white'" <a :class="activeTab === 'environment-variables' && 'dark:text-white'"
@click.prevent="activeTab = 'environment-variables'; window.location.hash = 'environment-variables'" @click.prevent="activeTab = 'environment-variables'; window.location.hash = 'environment-variables'"
href="#">Environment href="#">Environment
Variables</a> Variables</a>
<a :class="activeTab === 'servers' && 'text-white'" <a :class="activeTab === 'servers' && 'dark:text-white'"
@click.prevent="activeTab = 'servers'; @click.prevent="activeTab = 'servers';
window.location.hash = 'servers'" window.location.hash = 'servers'"
href="#">Servers href="#">Servers
</a> </a>
<a :class="activeTab === 'storages' && 'text-white'" <a :class="activeTab === 'storages' && 'dark:text-white'"
@click.prevent="activeTab = 'storages'; @click.prevent="activeTab = 'storages';
window.location.hash = 'storages'" window.location.hash = 'storages'"
href="#">Storages href="#">Storages
</a> </a>
<a :class="activeTab === 'import' && 'text-white'" <a :class="activeTab === 'import' && 'dark:text-white'"
@click.prevent="activeTab = 'import'; @click.prevent="activeTab = 'import';
window.location.hash = 'import'" href="#">Import window.location.hash = 'import'" href="#">Import
Backup Backup
</a> </a>
<a :class="activeTab === 'webhooks' && 'text-white'" <a :class="activeTab === 'webhooks' && 'dark:text-white'"
@click.prevent="activeTab = 'webhooks'; window.location.hash = 'webhooks'" href="#">Webhooks @click.prevent="activeTab = 'webhooks'; window.location.hash = 'webhooks'" href="#">Webhooks
</a> </a>
<a :class="activeTab === 'resource-limits' && 'text-white'" <a :class="activeTab === 'resource-limits' && 'dark:text-white'"
@click.prevent="activeTab = 'resource-limits'; @click.prevent="activeTab = 'resource-limits';
window.location.hash = 'resource-limits'" window.location.hash = 'resource-limits'"
href="#">Resource Limits href="#">Resource Limits
</a> </a>
<a :class="activeTab === 'resource-operations' && 'text-white'" <a :class="activeTab === 'resource-operations' && 'dark:text-white'"
@click.prevent="activeTab = 'resource-operations'; window.location.hash = 'resource-operations'" @click.prevent="activeTab = 'resource-operations'; window.location.hash = 'resource-operations'"
href="#">Resource Operations href="#">Resource Operations
</a> </a>
<a :class="activeTab === 'tags' && 'text-white'" <a :class="activeTab === 'tags' && 'dark:text-white'"
@click.prevent="activeTab = 'tags'; window.location.hash = 'tags'" href="#">Tags @click.prevent="activeTab = 'tags'; window.location.hash = 'tags'" href="#">Tags
</a> </a>
<a :class="activeTab === 'danger' && 'text-white'" <a :class="activeTab === 'danger' && 'dark:text-white'"
@click.prevent="activeTab = 'danger'; @click.prevent="activeTab = 'danger';
window.location.hash = 'danger'" window.location.hash = 'danger'"
href="#">Danger Zone href="#">Danger Zone

View File

@ -7,15 +7,15 @@
</x-slot:content> </x-slot:content>
</x-slide-over> </x-slide-over>
<div class="navbar-main"> <div class="navbar-main">
<a class="{{ request()->routeIs('project.database.configuration') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('project.database.configuration') ? 'dark:text-white' : '' }}"
href="{{ route('project.database.configuration', $parameters) }}"> href="{{ route('project.database.configuration', $parameters) }}">
<button>Configuration</button> <button>Configuration</button>
</a> </a>
<a class="{{ request()->routeIs('project.database.command') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('project.database.command') ? 'dark:text-white' : '' }}"
href="{{ route('project.database.command', $parameters) }}"> href="{{ route('project.database.command', $parameters) }}">
<button>Execute Command</button> <button>Execute Command</button>
</a> </a>
<a class="{{ request()->routeIs('project.database.logs') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('project.database.logs') ? 'dark:text-white' : '' }}"
href="{{ route('project.database.logs', $parameters) }}"> href="{{ route('project.database.logs', $parameters) }}">
<button>Logs</button> <button>Logs</button>
</a> </a>
@ -24,7 +24,7 @@
$database->getMorphClass() === 'App\Models\StandaloneMongodb' || $database->getMorphClass() === 'App\Models\StandaloneMongodb' ||
$database->getMorphClass() === 'App\Models\StandaloneMysql' || $database->getMorphClass() === 'App\Models\StandaloneMysql' ||
$database->getMorphClass() === 'App\Models\StandaloneMariadb') $database->getMorphClass() === 'App\Models\StandaloneMariadb')
<a class="{{ request()->routeIs('project.database.backup.index') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('project.database.backup.index') ? 'dark:text-white' : '' }}"
href="{{ route('project.database.backup.index', $parameters) }}"> href="{{ route('project.database.backup.index', $parameters) }}">
<button>Backups</button> <button>Backups</button>
</a> </a>

View File

@ -31,7 +31,7 @@
@endif @endif
</div> </div>
<x-forms.textarea <x-forms.textarea
helper="<a target='_blank' class='text-white underline' href='https://raw.githubusercontent.com/redis/redis/7.2/redis.conf'>Redis Default Configuration</a>" helper="<a target='_blank' class='dark:text-white underline' href='https://raw.githubusercontent.com/redis/redis/7.2/redis.conf'>Redis Default Configuration</a>"
label="Custom Redis Configuration" rows="10" id="database.redis_conf" /> label="Custom Redis Configuration" rows="10" id="database.redis_conf" />
<h3 class="pt-4">Advanced</h3> <h3 class="pt-4">Advanced</h3>
<div class="flex flex-col"> <div class="flex flex-col">

View File

@ -27,7 +27,7 @@
</div> </div>
<div class="flex items-center gap-2 pb-4">You can use these variables anywhere with <span <div class="flex items-center gap-2 pb-4">You can use these variables anywhere with <span
class="dark:text-warning text-coollabs">@{{ project.VARIABLENAME }}</span><x-helper class="dark:text-warning text-coollabs">@{{ project.VARIABLENAME }}</span><x-helper
helper="More info <a class='text-white underline' href='https://coolify.io/docs/environment-variables#shared-variables' target='_blank'>here</a>."></x-helper> helper="More info <a class='dark:text-white underline' href='https://coolify.io/docs/environment-variables#shared-variables' target='_blank'>here</a>."></x-helper>
</div> </div>
<div class="flex flex-col gap-2"> <div class="flex flex-col gap-2">
@forelse ($project->environment_variables->sort()->sortBy('real_value') as $env) @forelse ($project->environment_variables->sort()->sortBy('real_value') as $env)

View File

@ -55,7 +55,7 @@
</x-slide-over> </x-slide-over>
</div> </div>
<div class="flex items-center gap-2 pb-4">You can use these variables anywhere with <span class="text-warning">@{{environment.VARIABLENAME}}</span><x-helper <div class="flex items-center gap-2 pb-4">You can use these variables anywhere with <span class="text-warning">@{{environment.VARIABLENAME}}</span><x-helper
helper="More info <a class='text-white underline' href='https://coolify.io/docs/environment-variables#shared-variables' target='_blank'>here</a>."></x-helper> helper="More info <a class='dark:text-white underline' href='https://coolify.io/docs/environment-variables#shared-variables' target='_blank'>here</a>."></x-helper>
</div> </div>
<div class="flex flex-col gap-2"> <div class="flex flex-col gap-2">
@forelse ($environment->environment_variables->sort()->sortBy('real_value') as $env) @forelse ($environment->environment_variables->sort()->sortBy('real_value') as $env)

View File

@ -12,21 +12,14 @@
x-on:click="goto('{{ $project->uuid }}')"> x-on:click="goto('{{ $project->uuid }}')">
<a class="flex flex-col flex-1 mx-6 hover:no-underline" <a class="flex flex-col flex-1 mx-6 hover:no-underline"
href="{{ route('project.show', ['project_uuid' => data_get($project, 'uuid')]) }}"> href="{{ route('project.show', ['project_uuid' => data_get($project, 'uuid')]) }}">
<div class="font-bold text-white">{{ $project->name }}</div> <div class="box-title">{{ $project->name }}</div>
<div class="description "> <div class="box-description ">
{{ $project->description }}</div> {{ $project->description }}</div>
</a> </a>
<div class="flex items-center"> <div class="flex items-center">
<a class="mx-4 on-box" <a class="mx-4 font-bold hover:underline dark:hover:no-underline"
href="{{ route('project.edit', ['project_uuid' => data_get($project, 'uuid')]) }}"> href="{{ route('project.edit', ['project_uuid' => data_get($project, 'uuid')]) }}">
<svg xmlns="http://www.w3.org/2000/svg" class="icon on-box" viewBox="0 0 24 24" Settings
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path
d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z" />
<path d="M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0" />
</svg>
</a> </a>
</div> </div>
</div> </div>

View File

@ -13,7 +13,7 @@
<div class="gap-2 py-4 cursor-pointer group hover:bg-coollabs bg-coolgray-200" <div class="gap-2 py-4 cursor-pointer group hover:bg-coollabs bg-coolgray-200"
wire:click.defer="setPrivateKey('{{ $key->id }}')" wire:key="{{ $key->id }}"> wire:click.defer="setPrivateKey('{{ $key->id }}')" wire:key="{{ $key->id }}">
<div class="flex gap-4 mx-6"> <div class="flex gap-4 mx-6">
<div class="group-hover:text-white"> <div class="group-hover:dark:text-white">
{{ $key->name }} {{ $key->name }}
</div> </div>
<span wire:target="loadRepositories" wire:loading.delay <span wire:target="loadRepositories" wire:loading.delay
@ -24,7 +24,7 @@
<div class="gap-2 py-4 cursor-pointer group hover:bg-coollabs bg-coolgray-200" <div class="gap-2 py-4 cursor-pointer group hover:bg-coollabs bg-coolgray-200"
wire:click.defer="setPrivateKey('{{ $key->id }}')" wire:key="{{ $key->id }}"> wire:click.defer="setPrivateKey('{{ $key->id }}')" wire:key="{{ $key->id }}">
<div class="flex gap-4 mx-6"> <div class="flex gap-4 mx-6">
<div class="group-hover:text-white"> <div class="group-hover:dark:text-white">
{{ $key->name }} {{ $key->name }}
</div> </div>
<span wire:target="loadRepositories" wire:loading.delay <span wire:target="loadRepositories" wire:loading.delay

View File

@ -1,7 +1,7 @@
<div> <div>
<div class="flex items-end gap-2"> <div class="flex items-end gap-2">
<h1>Create a new Application</h1> <h1>Create a new Application</h1>
<x-forms.button wire:click="saveFromRedirect('source.new')" class="group-hover:text-white"> <x-forms.button wire:click="saveFromRedirect('source.new')" class="group-hover:dark:text-white">
+ Add New GitHub App + Add New GitHub App
</x-forms.button> </x-forms.button>
@if ($repositories->count() > 0) @if ($repositories->count() > 0)
@ -27,10 +27,10 @@
wire:click.prevent="loadRepositories({{ $ghapp->id }})" wire:key="{{ $ghapp->id }}"> wire:click.prevent="loadRepositories({{ $ghapp->id }})" wire:key="{{ $ghapp->id }}">
<div class="flex mr-4"> <div class="flex mr-4">
<div class="flex flex-col mx-6"> <div class="flex flex-col mx-6">
<div class="group-hover:text-white"> <div class="group-hover:dark:text-white">
{{ data_get($ghapp, 'name') }} {{ data_get($ghapp, 'name') }}
</div> </div>
<div class="text-xs text-gray-400 group-hover:text-white"> <div class="text-xs text-gray-400 group-hover:dark:text-white">
{{ data_get($ghapp, 'html_url') }}</div> {{ data_get($ghapp, 'html_url') }}</div>
</div> </div>

View File

@ -25,7 +25,7 @@
<div class='text-helper'>https://github.com/coollabsio/coolify-examples/tree/main</div> <div class='text-helper'>https://github.com/coollabsio/coolify-examples/tree/main</div>
</div> </div>
<div> <div>
For example application deployments, checkout <a class="text-white underline" For example application deployments, checkout <a class="dark:text-white underline"
href="https://github.com/coollabsio/coolify-examples/" target="_blank">Coolify href="https://github.com/coollabsio/coolify-examples/" target="_blank">Coolify
Examples</a>. Examples</a>.
</div> </div>

View File

@ -151,10 +151,10 @@
{{-- <div class="box group" wire="setType('existing-postgresql')"> {{-- <div class="box group" wire="setType('existing-postgresql')">
<div class="flex flex-col mx-6"> <div class="flex flex-col mx-6">
<div class="group-hover:text-white"> <div class="group-hover:dark:text-white">
Backup Existing PostgreSQL Backup Existing PostgreSQL
</div> </div>
<div class="text-xs group-hover:text-white"> <div class="text-xs group-hover:dark:text-white">
Schedule a backup of an existing PostgreSQL database. Schedule a backup of an existing PostgreSQL database.
</div> </div>
</div> </div>
@ -231,7 +231,7 @@
{{-- <button class="text-left box group" wire:loading.attr="disabled" {{-- <button class="text-left box group" wire:loading.attr="disabled"
wire:click="setType('one-click-service-{{ $serviceName }}')"> wire:click="setType('one-click-service-{{ $serviceName }}')">
<div class="flex flex-col mx-2"> <div class="flex flex-col mx-2">
<div class="font-bold text-white group-hover:text-white"> <div class="font-bold dark:text-white group-hover:dark:text-white">
{{ Str::headline($serviceName) }} {{ Str::headline($serviceName) }}
</div> </div>
@if (data_get($service, 'slogan')) @if (data_get($service, 'slogan'))
@ -256,16 +256,16 @@
@forelse($servers as $server) @forelse($servers as $server)
<div class="w-64 box group" wire:click="setServer({{ $server }})"> <div class="w-64 box group" wire:click="setServer({{ $server }})">
<div class="flex flex-col mx-6"> <div class="flex flex-col mx-6">
<div class="font-bold group-hover:text-white"> <div class="font-bold group-hover:dark:text-white">
{{ $server->name }} {{ $server->name }}
</div> </div>
<div class="text-xs group-hover:text-white"> <div class="text-xs group-hover:dark:text-white">
{{ $server->description }}</div> {{ $server->description }}</div>
</div> </div>
</div> </div>
@empty @empty
<div> <div>
<div>No validated & reachable servers found. <a class="text-white underline" href="/servers"> <div>No validated & reachable servers found. <a class="dark:text-white underline" href="/servers">
Go to servers page Go to servers page
</a></div> </a></div>
</div> </div>
@ -285,7 +285,7 @@
@foreach ($swarmDockers as $swarmDocker) @foreach ($swarmDockers as $swarmDocker)
<div class="box group" wire:click="setDestination('{{ $swarmDocker->uuid }}')"> <div class="box group" wire:click="setDestination('{{ $swarmDocker->uuid }}')">
<div class="flex flex-col mx-6"> <div class="flex flex-col mx-6">
<div class="font-bold group-hover:text-white"> <div class="font-bold group-hover:dark:text-white">
Swarm Docker <span class="text-xs">({{ $swarmDocker->name }})</span> Swarm Docker <span class="text-xs">({{ $swarmDocker->name }})</span>
</div> </div>
</div> </div>
@ -295,10 +295,10 @@
@foreach ($standaloneDockers as $standaloneDocker) @foreach ($standaloneDockers as $standaloneDocker)
<div class="box group" wire:click="setDestination('{{ $standaloneDocker->uuid }}')"> <div class="box group" wire:click="setDestination('{{ $standaloneDocker->uuid }}')">
<div class="flex flex-col mx-6"> <div class="flex flex-col mx-6">
<div class="font-bold group-hover:text-white"> <div class="font-bold group-hover:dark:text-white">
Standalone Docker <span class="text-xs">({{ $standaloneDocker->name }})</span> Standalone Docker <span class="text-xs">({{ $standaloneDocker->name }})</span>
</div> </div>
<div class="text-xs group-hover:text-white"> <div class="text-xs group-hover:dark:text-white">
Network: {{ $standaloneDocker->network }}</div> Network: {{ $standaloneDocker->network }}</div>
</div> </div>
</div> </div>

View File

@ -107,7 +107,7 @@
<div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300" <div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300"
@click.prevent="gotoTag(tag.name)" x-text="tag.name"></div> @click.prevent="gotoTag(tag.name)" x-text="tag.name"></div>
</template> </template>
<div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:text-white hover:bg-coolgray-300" <div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:dark:text-white hover:bg-coolgray-300"
@click.prevent="goto(item)">Add tag</div> @click.prevent="goto(item)">Add tag</div>
</div> </div>
</span> </span>
@ -117,7 +117,7 @@
<a class="h-24 box group" :href="item.hrefLink"> <a class="h-24 box group" :href="item.hrefLink">
<div class="flex flex-col px-4 mx-2"> <div class="flex flex-col px-4 mx-2">
<div class="flex gap-2"> <div class="flex gap-2">
<div class="pb-2 font-bold text-white" x-text="item.name"></div> <div class="pb-2 font-bold dark:text-white" x-text="item.name"></div>
<template x-if="item.status.startsWith('running')"> <template x-if="item.status.startsWith('running')">
<div title="running" class="mt-1 bg-success badge "></div> <div title="running" class="mt-1 bg-success badge "></div>
</template> </template>
@ -134,12 +134,12 @@
<div class="max-w-full truncate description" x-text="item.description"></div> <div class="max-w-full truncate description" x-text="item.description"></div>
</div> </div>
</a> </a>
<div class="flex gap-1 pt-1 group-hover:text-white group min-h-6"> <div class="flex gap-1 pt-1 group-hover:dark:text-white group min-h-6">
<template x-for="tag in item.tags"> <template x-for="tag in item.tags">
<div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300" <div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300"
@click.prevent="gotoTag(tag.name)" x-text="tag.name"></div> @click.prevent="gotoTag(tag.name)" x-text="tag.name"></div>
</template> </template>
<div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:text-white hover:bg-coolgray-300" <div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:dark:text-white hover:bg-coolgray-300"
@click.prevent="goto(item)">Add tag</div> @click.prevent="goto(item)">Add tag</div>
</div> </div>
</span> </span>
@ -149,7 +149,7 @@
<a class="h-24 box group" :href="item.hrefLink"> <a class="h-24 box group" :href="item.hrefLink">
<div class="flex flex-col px-4 mx-2"> <div class="flex flex-col px-4 mx-2">
<div class="flex gap-2"> <div class="flex gap-2">
<div class="pb-2 font-bold text-white" x-text="item.name"></div> <div class="pb-2 font-bold dark:text-white" x-text="item.name"></div>
<template x-if="item.status.startsWith('running')"> <template x-if="item.status.startsWith('running')">
<div title="running" class="mt-1 bg-success badge "></div> <div title="running" class="mt-1 bg-success badge "></div>
</template> </template>
@ -166,12 +166,12 @@
<div class="max-w-full truncate description" x-text="item.description"></div> <div class="max-w-full truncate description" x-text="item.description"></div>
</div> </div>
</a> </a>
<div class="flex gap-1 pt-1 group-hover:text-white group min-h-6"> <div class="flex gap-1 pt-1 group-hover:dark:text-white group min-h-6">
<template x-for="tag in item.tags"> <template x-for="tag in item.tags">
<div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300" <div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300"
@click.prevent="gotoTag(tag.name)" x-text="tag.name"></div> @click.prevent="gotoTag(tag.name)" x-text="tag.name"></div>
</template> </template>
<div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:text-white hover:bg-coolgray-300" <div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:dark:text-white hover:bg-coolgray-300"
@click.prevent="goto(item)">Add tag</div> @click.prevent="goto(item)">Add tag</div>
</div> </div>
</span> </span>
@ -181,7 +181,7 @@
<a class="h-24 box group" :href="item.hrefLink"> <a class="h-24 box group" :href="item.hrefLink">
<div class="flex flex-col px-4 mx-2"> <div class="flex flex-col px-4 mx-2">
<div class="flex gap-2"> <div class="flex gap-2">
<div class="pb-2 font-bold text-white" x-text="item.name"></div> <div class="pb-2 font-bold dark:text-white" x-text="item.name"></div>
<template x-if="item.status.startsWith('running')"> <template x-if="item.status.startsWith('running')">
<div title="running" class="mt-1 bg-success badge "></div> <div title="running" class="mt-1 bg-success badge "></div>
</template> </template>
@ -198,12 +198,12 @@
<div class="max-w-full truncate description" x-text="item.description"></div> <div class="max-w-full truncate description" x-text="item.description"></div>
</div> </div>
</a> </a>
<div class="flex gap-1 pt-1 group-hover:text-white group min-h-6"> <div class="flex gap-1 pt-1 group-hover:dark:text-white group min-h-6">
<template x-for="tag in item.tags"> <template x-for="tag in item.tags">
<div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300" <div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300"
@click.prevent="gotoTag(tag.name)" x-text="tag.name"></div> @click.prevent="gotoTag(tag.name)" x-text="tag.name"></div>
</template> </template>
<div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:text-white hover:bg-coolgray-300" <div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:dark:text-white hover:bg-coolgray-300"
@click.prevent="goto(item)">Add tag</div> @click.prevent="goto(item)">Add tag</div>
</div> </div>
</span> </span>
@ -213,7 +213,7 @@
<a class="h-24 box group" :href="item.hrefLink"> <a class="h-24 box group" :href="item.hrefLink">
<div class="flex flex-col px-4 mx-2"> <div class="flex flex-col px-4 mx-2">
<div class="flex gap-2"> <div class="flex gap-2">
<div class="pb-2 font-bold text-white" x-text="item.name"></div> <div class="pb-2 font-bold dark:text-white" x-text="item.name"></div>
<template x-if="item.status.startsWith('running')"> <template x-if="item.status.startsWith('running')">
<div title="running" class="mt-1 bg-success badge "></div> <div title="running" class="mt-1 bg-success badge "></div>
</template> </template>
@ -230,12 +230,12 @@
<div class="max-w-full truncate description" x-text="item.description"></div> <div class="max-w-full truncate description" x-text="item.description"></div>
</div> </div>
</a> </a>
<div class="flex gap-1 pt-1 group-hover:text-white group min-h-6"> <div class="flex gap-1 pt-1 group-hover:dark:text-white group min-h-6">
<template x-for="tag in item.tags"> <template x-for="tag in item.tags">
<div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300" <div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300"
@click.prevent="gotoTag(tag.name)" x-text="tag.name"></div> @click.prevent="gotoTag(tag.name)" x-text="tag.name"></div>
</template> </template>
<div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:text-white hover:bg-coolgray-300" <div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:dark:text-white hover:bg-coolgray-300"
@click.prevent="goto(item)">Add tag</div> @click.prevent="goto(item)">Add tag</div>
</div> </div>
</span> </span>
@ -245,7 +245,7 @@
<a class="h-24 box group" :href="item.hrefLink"> <a class="h-24 box group" :href="item.hrefLink">
<div class="flex flex-col px-4 mx-2"> <div class="flex flex-col px-4 mx-2">
<div class="flex gap-2"> <div class="flex gap-2">
<div class="pb-2 font-bold text-white" x-text="item.name"></div> <div class="pb-2 font-bold dark:text-white" x-text="item.name"></div>
<template x-if="item.status.startsWith('running')"> <template x-if="item.status.startsWith('running')">
<div title="running" class="mt-1 bg-success badge "></div> <div title="running" class="mt-1 bg-success badge "></div>
</template> </template>
@ -262,12 +262,12 @@
<div class="max-w-full truncate description" x-text="item.description"></div> <div class="max-w-full truncate description" x-text="item.description"></div>
</div> </div>
</a> </a>
<div class="flex gap-1 pt-1 group-hover:text-white group min-h-6"> <div class="flex gap-1 pt-1 group-hover:dark:text-white group min-h-6">
<template x-for="tag in item.tags"> <template x-for="tag in item.tags">
<div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300" <div class="px-2 py-1 cursor-pointer description bg-coolgray-100 hover:bg-coolgray-300"
@click.prevent="gotoTag(tag.name)" x-text="tag.name"></div> @click.prevent="gotoTag(tag.name)" x-text="tag.name"></div>
</template> </template>
<div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:text-white hover:bg-coolgray-300" <div class="flex items-center px-2 text-xs cursor-pointer text-neutral-500/20 group-hover:dark:text-white hover:bg-coolgray-300"
@click.prevent="goto(item)">Add tag</div> @click.prevent="goto(item)">Add tag</div>
</div> </div>
</span> </span>

View File

@ -3,37 +3,37 @@
<div class="flex h-full pt-6"> <div class="flex h-full pt-6">
<div class="flex flex-col items-start gap-4 min-w-fit"> <div class="flex flex-col items-start gap-4 min-w-fit">
<a target="_blank" href="{{ $service->documentation() }}">Documentation <x-external-link /></a> <a target="_blank" href="{{ $service->documentation() }}">Documentation <x-external-link /></a>
<a :class="activeTab === 'service-stack' && 'text-white'" <a :class="activeTab === 'service-stack' && 'dark:text-white'"
@click.prevent="activeTab = 'service-stack'; @click.prevent="activeTab = 'service-stack';
window.location.hash = 'service-stack'" window.location.hash = 'service-stack'"
href="#">Service Stack</a> href="#">Service Stack</a>
<a :class="activeTab === 'environment-variables' && 'text-white'" <a :class="activeTab === 'environment-variables' && 'dark:text-white'"
@click.prevent="activeTab = 'environment-variables'; window.location.hash = 'environment-variables'" @click.prevent="activeTab = 'environment-variables'; window.location.hash = 'environment-variables'"
href="#">Environment href="#">Environment
Variables</a> Variables</a>
<a :class="activeTab === 'storages' && 'text-white'" <a :class="activeTab === 'storages' && 'dark:text-white'"
@click.prevent="activeTab = 'storages'; @click.prevent="activeTab = 'storages';
window.location.hash = 'storages'" window.location.hash = 'storages'"
href="#">Storages</a> href="#">Storages</a>
<a :class="activeTab === 'execute-command' && 'text-white'" <a :class="activeTab === 'execute-command' && 'dark:text-white'"
@click.prevent="activeTab = 'execute-command'; @click.prevent="activeTab = 'execute-command';
window.location.hash = 'execute-command'" window.location.hash = 'execute-command'"
href="#">Execute Command</a> href="#">Execute Command</a>
<a :class="activeTab === 'logs' && 'text-white'" <a :class="activeTab === 'logs' && 'dark:text-white'"
@click.prevent="activeTab = 'logs'; @click.prevent="activeTab = 'logs';
window.location.hash = 'logs'" window.location.hash = 'logs'"
href="#">Logs</a> href="#">Logs</a>
<a :class="activeTab === 'webhooks' && 'text-white'" <a :class="activeTab === 'webhooks' && 'dark:text-white'"
@click.prevent="activeTab = 'webhooks'; window.location.hash = 'webhooks'" href="#">Webhooks @click.prevent="activeTab = 'webhooks'; window.location.hash = 'webhooks'" href="#">Webhooks
</a> </a>
<a :class="activeTab === 'resource-operations' && 'text-white'" <a :class="activeTab === 'resource-operations' && 'dark:text-white'"
@click.prevent="activeTab = 'resource-operations'; window.location.hash = 'resource-operations'" @click.prevent="activeTab = 'resource-operations'; window.location.hash = 'resource-operations'"
href="#">Resource Operations href="#">Resource Operations
</a> </a>
<a :class="activeTab === 'tags' && 'text-white'" <a :class="activeTab === 'tags' && 'dark:text-white'"
@click.prevent="activeTab = 'tags'; window.location.hash = 'tags'" href="#">Tags @click.prevent="activeTab = 'tags'; window.location.hash = 'tags'" href="#">Tags
</a> </a>
<a :class="activeTab === 'danger' && 'text-white'" <a :class="activeTab === 'danger' && 'dark:text-white'"
@click.prevent="activeTab = 'danger'; @click.prevent="activeTab = 'danger';
window.location.hash = 'danger'" window.location.hash = 'danger'"
href="#">Danger Zone href="#">Danger Zone
@ -75,7 +75,7 @@
<div class="text-xs">{{ $application->status }}</div> <div class="text-xs">{{ $application->status }}</div>
</div> </div>
<div class="flex items-center px-4"> <div class="flex items-center px-4">
<a class="flex flex-col flex-1 group-hover:text-white hover:no-underline" <a class="flex flex-col flex-1 group-hover:dark:text-white hover:no-underline"
href="{{ route('project.service.index', [...$parameters, 'stack_service_uuid' => $application->uuid]) }}"> href="{{ route('project.service.index', [...$parameters, 'stack_service_uuid' => $application->uuid]) }}">
<svg xmlns="http://www.w3.org/2000/svg" class="icon hover:text-warning" <svg xmlns="http://www.w3.org/2000/svg" class="icon hover:text-warning"
viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none"
@ -121,7 +121,7 @@
<div class="text-xs">{{ $database->status }}</div> <div class="text-xs">{{ $database->status }}</div>
</div> </div>
<div class="flex items-center px-4"> <div class="flex items-center px-4">
<a class="flex flex-col flex-1 group-hover:text-white hover:no-underline" <a class="flex flex-col flex-1 group-hover:dark:text-white hover:no-underline"
href="{{ route('project.service.index', [...$parameters, 'stack_service_uuid' => $database->uuid]) }}"> href="{{ route('project.service.index', [...$parameters, 'stack_service_uuid' => $database->uuid]) }}">
<svg xmlns="http://www.w3.org/2000/svg" class="icon hover:text-warning" <svg xmlns="http://www.w3.org/2000/svg" class="icon hover:text-warning"
viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none"

View File

@ -2,18 +2,18 @@
<livewire:project.service.navbar :service="$service" :parameters="$parameters" :query="$query" /> <livewire:project.service.navbar :service="$service" :parameters="$parameters" :query="$query" />
<div class="flex h-full pt-6"> <div class="flex h-full pt-6">
<div class="flex flex-col gap-4 min-w-fit"> <div class="flex flex-col gap-4 min-w-fit">
<a class="{{ request()->routeIs('project.service.configuration') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('project.service.configuration') ? 'dark:text-white' : '' }}"
href="{{ route('project.service.configuration', [...$parameters, 'stack_service_uuid' => null]) }}"> href="{{ route('project.service.configuration', [...$parameters, 'stack_service_uuid' => null]) }}">
<button><- Back</button> <button><- Back</button>
</a> </a>
<a :class="activeTab === 'general' && 'text-white'" <a :class="activeTab === 'general' && 'dark:text-white'"
@click.prevent="activeTab = 'general'; window.location.hash = 'general'; if(window.location.search) window.location.search = ''" @click.prevent="activeTab = 'general'; window.location.hash = 'general'; if(window.location.search) window.location.search = ''"
href="#">General</a> href="#">General</a>
<a :class="activeTab === 'storages' && 'text-white'" <a :class="activeTab === 'storages' && 'dark:text-white'"
@click.prevent="activeTab = 'storages'; window.location.hash = 'storages'; if(window.location.search) window.location.search = ''" @click.prevent="activeTab = 'storages'; window.location.hash = 'storages'; if(window.location.search) window.location.search = ''"
href="#">Storages href="#">Storages
</a> </a>
<a :class="activeTab === 'scheduled-tasks' && 'text-white'" <a :class="activeTab === 'scheduled-tasks' && 'dark:text-white'"
@click.prevent="activeTab = 'scheduled-tasks'; window.location.hash = 'scheduled-tasks'" @click.prevent="activeTab = 'scheduled-tasks'; window.location.hash = 'scheduled-tasks'"
href="#">Scheduled Tasks href="#">Scheduled Tasks
</a> </a>
@ -21,7 +21,7 @@
$serviceDatabase?->databaseType() === 'standalone-mysql' || $serviceDatabase?->databaseType() === 'standalone-mysql' ||
$serviceDatabase?->databaseType() === 'standalone-postgresql' || $serviceDatabase?->databaseType() === 'standalone-postgresql' ||
$serviceDatabase?->databaseType() === 'standalone-mariadb') $serviceDatabase?->databaseType() === 'standalone-mariadb')
<a :class="activeTab === 'backups' && 'text-white'" <a :class="activeTab === 'backups' && 'dark:text-white'"
@click.prevent="activeTab = 'backups'; window.location.hash = 'backups'" href="#">Backups</a> @click.prevent="activeTab = 'backups'; window.location.hash = 'backups'" href="#">Backups</a>
@endif @endif
</div> </div>

View File

@ -8,7 +8,7 @@
<h1>Configuration</h1> <h1>Configuration</h1>
<x-resources.breadcrumbs :resource="$service" :parameters="$parameters" /> <x-resources.breadcrumbs :resource="$service" :parameters="$parameters" />
<div class="navbar-main" x-data> <div class="navbar-main" x-data>
<a class="{{ request()->routeIs('project.service.configuration') ? 'text-white' : '' }}" <a class="{{ request()->routeIs('project.service.configuration') ? 'dark:text-white' : '' }}"
href="{{ route('project.service.configuration', $parameters) }}"> href="{{ route('project.service.configuration', $parameters) }}">
<button>Configuration</button> <button>Configuration</button>
</a> </a>

View File

@ -19,7 +19,7 @@
</div> </div>
<div class="w-96"> <div class="w-96">
<x-forms.checkbox instantSave id="service.connect_to_docker_network" label="Connect To Predefined Network" <x-forms.checkbox instantSave id="service.connect_to_docker_network" label="Connect To Predefined Network"
helper="By default, you do not reach the Coolify defined networks.<br>Starting a docker compose based resource will have an internal network. <br>If you connect to a Coolify defined network, you maybe need to use different internal DNS names to connect to a resource.<br><br>For more information, check <a class='text-white underline' target='_blank' href='https://coolify.io/docs/docker/compose#connect-to-predefined-networks'>this</a>." /> helper="By default, you do not reach the Coolify defined networks.<br>Starting a docker compose based resource will have an internal network. <br>If you connect to a Coolify defined network, you maybe need to use different internal DNS names to connect to a resource.<br><br>For more information, check <a class='dark:text-white underline' target='_blank' href='https://coolify.io/docs/docker/compose#connect-to-predefined-networks'>this</a>." />
</div> </div>
@if ($fields) @if ($fields)
<div> <div>

View File

@ -3,7 +3,7 @@
<div class="">Server related configurations.</div> <div class="">Server related configurations.</div>
<div class="grid grid-cols-1 gap-4 py-4"> <div class="grid grid-cols-1 gap-4 py-4">
<div class="flex gap-2"> <div class="flex gap-2">
<div class="relative flex flex-col text-white cursor-default box-without-bg bg-coolgray-100 w-96"> <div class="relative flex flex-col dark:text-white cursor-default box-without-bg bg-coolgray-100 w-96">
<div class="text-xl font-bold">Primary Server</div> <div class="text-xl font-bold">Primary Server</div>
@if (str($resource->realStatus())->startsWith('running')) @if (str($resource->realStatus())->startsWith('running'))
<div title="{{ $resource->realStatus() }}" class="absolute bg-success -top-1 -left-1 badge "> <div title="{{ $resource->realStatus() }}" class="absolute bg-success -top-1 -left-1 badge ">
@ -73,7 +73,7 @@
<div class="grid grid-cols-1 gap-4"> <div class="grid grid-cols-1 gap-4">
@foreach ($networks as $network) @foreach ($networks as $network)
<div wire:click="addServer('{{ $network->id }}','{{ data_get($network, 'server.id') }}')" <div wire:click="addServer('{{ $network->id }}','{{ data_get($network, 'server.id') }}')"
class="relative flex flex-col text-white cursor-default box w-96"> class="relative flex flex-col dark:text-white cursor-default box w-96">
<div> <div>
Server: {{ data_get($network, 'server.name') }} Server: {{ data_get($network, 'server.name') }}
</div> </div>

View File

@ -1,5 +1,5 @@
<div> <div>
<form wire:submit='submit' class="flex flex-col items-center gap-4 p-4 border lg:items-start border-coolgray-300"> <form wire:submit='submit' class="flex flex-col items-center gap-4 p-4 border lg:items-start dark:border-coolgray-300">
@if ($isLocked) @if ($isLocked)
<div class="flex flex-1 w-full gap-2"> <div class="flex flex-1 w-full gap-2">
<x-forms.input disabled id="env.key" /> <x-forms.input disabled id="env.key" />

View File

@ -24,7 +24,7 @@
<x-forms.checkbox instantSave label="Include Timestamps" id="showTimeStamps"></x-forms.checkbox> <x-forms.checkbox instantSave label="Include Timestamps" id="showTimeStamps"></x-forms.checkbox>
</form> </form>
<div :class="fullscreen ? 'fullscreen' : 'relative w-full py-4 mx-auto'"> <div :class="fullscreen ? 'fullscreen' : 'relative w-full py-4 mx-auto'">
<div class="flex flex-col-reverse w-full px-4 py-2 overflow-y-auto text-white bg-coolgray-100 scrollbar border-coolgray-300" <div class="flex flex-col-reverse w-full px-4 py-2 overflow-y-auto dark:text-white bg-coolgray-100 scrollbar border-coolgray-300"
:class="fullscreen ? '' : 'max-h-96 border border-solid rounded'"> :class="fullscreen ? '' : 'max-h-96 border border-solid rounded'">
<button title="Minimize" x-show="fullscreen" class="fixed top-4 right-4" <button title="Minimize" x-show="fullscreen" class="fixed top-4 right-4"
x-on:click="makeFullscreen"><svg class="icon" viewBox="0 0 24 24" x-on:click="makeFullscreen"><svg class="icon" viewBox="0 0 24 24"

View File

@ -8,13 +8,13 @@
<h3 class="pt-4">Limit CPUs</h3> <h3 class="pt-4">Limit CPUs</h3>
<div class="flex gap-2"> <div class="flex gap-2">
<x-forms.input placeholder="1.5" <x-forms.input placeholder="1.5"
helper="0 means use all CPUs. Floating point number, like 0.002 or 1.5. More info <a class='text-white underline' target='_blank' href='https://docs.docker.com/engine/reference/run/#cpu-share-constraint'>here</a>." helper="0 means use all CPUs. Floating point number, like 0.002 or 1.5. More info <a class='dark:text-white underline' target='_blank' href='https://docs.docker.com/engine/reference/run/#cpu-share-constraint'>here</a>."
label="Number of CPUs" id="resource.limits_cpus" /> label="Number of CPUs" id="resource.limits_cpus" />
<x-forms.input placeholder="0-2" <x-forms.input placeholder="0-2"
helper="Empty means, use all CPU sets. 0-2 will use CPU 0, CPU 1 and CPU 2. More info <a class='text-white underline' target='_blank' href='https://docs.docker.com/engine/reference/run/#cpu-share-constraint'>here</a>." helper="Empty means, use all CPU sets. 0-2 will use CPU 0, CPU 1 and CPU 2. More info <a class='dark:text-white underline' target='_blank' href='https://docs.docker.com/engine/reference/run/#cpu-share-constraint'>here</a>."
label="CPU sets to use" id="resource.limits_cpuset" /> label="CPU sets to use" id="resource.limits_cpuset" />
<x-forms.input placeholder="1024" <x-forms.input placeholder="1024"
helper="More info <a class='text-white underline' target='_blank' href='https://docs.docker.com/engine/reference/run/#cpu-share-constraint'>here</a>." helper="More info <a class='dark:text-white underline' target='_blank' href='https://docs.docker.com/engine/reference/run/#cpu-share-constraint'>here</a>."
label="CPU Weight" id="resource.limits_cpu_shares" /> label="CPU Weight" id="resource.limits_cpu_shares" />
</div> </div>
<h3 class="pt-4">Limit Memory</h3> <h3 class="pt-4">Limit Memory</h3>

View File

@ -14,7 +14,7 @@
<x-modal-confirmation action="cloneTo({{ data_get($destination, 'id') }})"> <x-modal-confirmation action="cloneTo({{ data_get($destination, 'id') }})">
<x:slot name="content"> <x:slot name="content">
<div class="flex flex-col gap-2 box"> <div class="flex flex-col gap-2 box">
<div class="font-bold text-white">{{ $server->name }}</div> <div class="font-bold dark:text-white">{{ $server->name }}</div>
<div>{{ $destination->name }}</div> <div>{{ $destination->name }}</div>
</div> </div>
</x:slot> </x:slot>
@ -40,7 +40,7 @@
<x-modal-confirmation action="moveTo({{ data_get($environment, 'id') }})"> <x-modal-confirmation action="moveTo({{ data_get($environment, 'id') }})">
<x:slot name="content"> <x:slot name="content">
<div class="flex flex-col gap-2 box"> <div class="flex flex-col gap-2 box">
<div class="font-bold text-white">{{ $project->name }}</div> <div class="font-bold dark:text-white">{{ $project->name }}</div>
<div><span class="text-warning">{{ $environment->name }}</span> environment</div> <div><span class="text-warning">{{ $environment->name }}</span> environment</div>
</div> </div>
</x:slot> </x:slot>

View File

@ -13,7 +13,7 @@
@endif @endif
<a wire:click="selectTask({{ data_get($execution, 'id') }})" @class([ <a wire:click="selectTask({{ data_get($execution, 'id') }})" @class([
'flex flex-col border-l border-dashed transition-colors box-without-bg bg-coolgray-100 hover:bg-coolgray-100', 'flex flex-col border-l border-dashed transition-colors box-without-bg bg-coolgray-100 hover:bg-coolgray-100',
'bg-coolgray-200 text-white hover:bg-coolgray-200' => 'bg-coolgray-200 dark:text-white hover:bg-coolgray-200' =>
data_get($execution, 'id') == $selectedKey, data_get($execution, 'id') == $selectedKey,
'border-green-500' => data_get($execution, 'status') === 'success', 'border-green-500' => data_get($execution, 'status') === 'success',
'border-red-500' => data_get($execution, 'status') === 'failed', 'border-red-500' => data_get($execution, 'status') === 'failed',

View File

@ -2,7 +2,7 @@
<h2>Tags</h2> <h2>Tags</h2>
<div class="flex gap-2 pt-4"> <div class="flex gap-2 pt-4">
@forelse ($this->resource->tags as $tagId => $tag) @forelse ($this->resource->tags as $tagId => $tag)
<div class="px-2 py-1 text-center text-white select-none w-fit bg-coolgray-100 hover:bg-coolgray-200"> <div class="px-2 py-1 text-center dark:text-white select-none w-fit bg-coolgray-100 hover:bg-coolgray-200">
{{ $tag->name }} {{ $tag->name }}
<svg wire:click="deleteTag('{{ $tag->id }}')" <svg wire:click="deleteTag('{{ $tag->id }}')"
xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"

View File

@ -2,11 +2,11 @@
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<h2>Webhooks</h2> <h2>Webhooks</h2>
<x-helper <x-helper
helper="For more details goto our <a class='text-white underline' href='https://coolify.io/docs/api/deploy-webhook' target='_blank'>docs</a>." /> helper="For more details goto our <a class='dark:text-white underline' href='https://coolify.io/docs/api/deploy-webhook' target='_blank'>docs</a>." />
</div> </div>
<div> <div>
<x-forms.input readonly <x-forms.input readonly
helper="See details in our <a target='_blank' class='text-white underline' href='https://coolify.io/docs/api/authentication'>documentation</a>." helper="See details in our <a target='_blank' class='dark:text-white underline' href='https://coolify.io/docs/api/authentication'>documentation</a>."
label="Deploy Webhook (auth required)" id="deploywebhook"></x-forms.input> label="Deploy Webhook (auth required)" id="deploywebhook"></x-forms.input>
</div> </div>
@if ($resource->type() === 'application') @if ($resource->type() === 'application')

View File

@ -16,23 +16,16 @@
@forelse ($project->environments as $environment) @forelse ($project->environments as $environment)
<div class="gap-2 border border-transparent cursor-pointer box group" x-data <div class="gap-2 border border-transparent cursor-pointer box group" x-data
x-on:click="goto('{{ $project->uuid }}','{{ $environment->name }}')"> x-on:click="goto('{{ $project->uuid }}','{{ $environment->name }}')">
<a class="flex flex-col flex-1 mx-6 hover:no-underline" <a class="flex flex-col justify-center flex-1 mx-6 hover:no-underline"
href="{{ route('project.resource.index', [$project->uuid, $environment->name]) }}"> href="{{ route('project.resource.index', [$project->uuid, $environment->name]) }}">
<div class="font-bold text-white"> {{ $environment->name }}</div> <div class="font-bold dark:text-white"> {{ $environment->name }}</div>
<div class="description "> <div class="description">
{{ $environment->description }}</div> {{ $environment->description }}</div>
</a> </a>
<div class="flex items-center"> <div class="flex items-center">
<a class="mx-4" <a class="mx-4 font-bold hover:underline dark:hover:no-underline"
href="{{ route('project.environment.edit', ['project_uuid' => data_get($project, 'uuid'), 'environment_name' => $environment->name]) }}"> href="{{ route('project.environment.edit', ['project_uuid' => data_get($project, 'uuid'), 'environment_name' => $environment->name]) }}">
<svg xmlns="http://www.w3.org/2000/svg" class="icon on-box" viewBox="0 0 24 24" Settings
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path
d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z" />
<path d="M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0" />
</svg>
</a> </a>
</div> </div>
</div> </div>

View File

@ -34,7 +34,7 @@
</script> </script>
@endscript @endscript
<div class="toast z-[9999]" x-cloak x-show="showNotification"> <div class="toast z-[9999]" x-cloak x-show="showNotification">
<div class="flex flex-col text-white border border-red-500 border-dashed rounded alert-error bg-coolgray-200"> <div class="flex flex-col dark:text-white border border-red-500 border-dashed rounded alert-error bg-coolgray-200">
<span><span class="font-bold text-left text-red-500">WARNING: </span>Coolify could not connect to the new <span><span class="font-bold text-left text-red-500">WARNING: </span>Coolify could not connect to the new
realtime service introduced in beta.154. <br>This will cause unusual problems on the UI if not realtime service introduced in beta.154. <br>This will cause unusual problems on the UI if not
fixed!<br><br>Please check the fixed!<br><br>Please check the

View File

@ -13,14 +13,14 @@
@if (session()->has('token')) @if (session()->has('token'))
<div class="py-4 font-bold text-warning">Please copy this token now. For your security, it won't be shown again. <div class="py-4 font-bold text-warning">Please copy this token now. For your security, it won't be shown again.
</div> </div>
<div class="pb-4 font-bold text-white"> {{ session('token') }}</div> <div class="pb-4 font-bold dark:text-white"> {{ session('token') }}</div>
@endif @endif
<h4 class="py-4">Issued Tokens</h4> <h4 class="py-4">Issued Tokens</h4>
<div class="grid gap-2 lg:grid-cols-1"> <div class="grid gap-2 lg:grid-cols-1">
@forelse ($tokens as $token) @forelse ($tokens as $token)
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<div <div
class="flex items-center gap-2 group-hover:text-white p-2 border border-coolgray-200 hover:text-white hover:no-underline min-w-[24rem] cursor-default"> class="flex items-center gap-2 group-hover:dark:text-white p-2 border border-coolgray-200 hover:dark:text-white hover:no-underline min-w-[24rem] cursor-default">
<div>{{ $token->name }}</div> <div>{{ $token->name }}</div>
</div> </div>
<x-modal-confirmation isErrorButton action="revoke({{ data_get($token, 'id') }})"> <x-modal-confirmation isErrorButton action="revoke({{ data_get($token, 'id') }})">

View File

@ -22,11 +22,11 @@
<x-forms.input readonly id="public_key" /> <x-forms.input readonly id="public_key" />
<div class="flex items-end gap-2 py-2 "> <div class="flex items-end gap-2 py-2 ">
<div class="pl-1 ">Private Key <span class='text-helper'>*</span></div> <div class="pl-1 ">Private Key <span class='text-helper'>*</span></div>
<div class="text-xs text-white underline cursor-pointer" x-cloak x-show="!showPrivateKey" <div class="text-xs dark:text-white underline cursor-pointer" x-cloak x-show="!showPrivateKey"
x-on:click="showPrivateKey = true"> x-on:click="showPrivateKey = true">
Edit Edit
</div> </div>
<div class="text-xs text-white underline cursor-pointer" x-cloak x-show="showPrivateKey" <div class="text-xs dark:text-white underline cursor-pointer" x-cloak x-show="showPrivateKey"
x-on:click="showPrivateKey = false"> x-on:click="showPrivateKey = false">
Hide Hide
</div> </div>

View File

@ -83,20 +83,20 @@
@endif @endif
@if ($server->settings->is_swarm_worker) @if ($server->settings->is_swarm_worker)
<x-forms.checkbox disabled instantSave type="checkbox" id="server.settings.is_swarm_manager" <x-forms.checkbox disabled instantSave type="checkbox" id="server.settings.is_swarm_manager"
helper="For more information, please read the documentation <a class='text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>." helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>."
label="Is it a Swarm Manager?" /> label="Is it a Swarm Manager?" />
@else @else
<x-forms.checkbox instantSave type="checkbox" id="server.settings.is_swarm_manager" <x-forms.checkbox instantSave type="checkbox" id="server.settings.is_swarm_manager"
helper="For more information, please read the documentation <a class='text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>." helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>."
label="Is it a Swarm Manager?" /> label="Is it a Swarm Manager?" />
@endif @endif
@if ($server->settings->is_swarm_manager) @if ($server->settings->is_swarm_manager)
<x-forms.checkbox disabled instantSave type="checkbox" id="server.settings.is_swarm_worker" <x-forms.checkbox disabled instantSave type="checkbox" id="server.settings.is_swarm_worker"
helper="For more information, please read the documentation <a class='text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>." helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>."
label="Is it a Swarm Worker?" /> label="Is it a Swarm Worker?" />
@else @else
<x-forms.checkbox instantSave type="checkbox" id="server.settings.is_swarm_worker" <x-forms.checkbox instantSave type="checkbox" id="server.settings.is_swarm_worker"
helper="For more information, please read the documentation <a class='text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>." helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>."
label="Is it a Swarm Worker?" /> label="Is it a Swarm Worker?" />
@endif @endif
@endif @endif

View File

@ -19,7 +19,7 @@
!$server->settings->is_reachable || $server->settings->force_disabled, !$server->settings->is_reachable || $server->settings->force_disabled,
])> ])>
<div class="flex flex-col mx-6"> <div class="flex flex-col mx-6">
<div class="font-bold text-white"> <div class="font-bold dark:text-white">
{{ $server->name }} {{ $server->name }}
</div> </div>
<div class="description"> <div class="description">

View File

@ -28,25 +28,25 @@
</div> </div>
<div class="w-96"> <div class="w-96">
<h3 class="pt-6">Swarm <span class="text-xs text-neutral-500">(experimental)</span></h3> <h3 class="pt-6">Swarm <span class="text-xs text-neutral-500">(experimental)</span></h3>
<div class="pb-4">Read the docs <a class='text-white' <div class="pb-4">Read the docs <a class='dark:text-white'
href='https://coolify.io/docs/docker/swarm#deploy-with-persistent-storage' href='https://coolify.io/docs/docker/swarm#deploy-with-persistent-storage'
target='_blank'>here</a>.</div> target='_blank'>here</a>.</div>
@if ($is_swarm_worker || $is_build_server) @if ($is_swarm_worker || $is_build_server)
<x-forms.checkbox disabled instantSave type="checkbox" id="is_swarm_manager" <x-forms.checkbox disabled instantSave type="checkbox" id="is_swarm_manager"
helper="For more information, please read the documentation <a class='text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>." helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>."
label="Is it a Swarm Manager?" /> label="Is it a Swarm Manager?" />
@else @else
<x-forms.checkbox type="checkbox" instantSave id="is_swarm_manager" <x-forms.checkbox type="checkbox" instantSave id="is_swarm_manager"
helper="For more information, please read the documentation <a class='text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>." helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>."
label="Is it a Swarm Manager?" /> label="Is it a Swarm Manager?" />
@endif @endif
@if ($is_swarm_manager|| $is_build_server) @if ($is_swarm_manager|| $is_build_server)
<x-forms.checkbox disabled instantSave type="checkbox" id="is_swarm_worker" <x-forms.checkbox disabled instantSave type="checkbox" id="is_swarm_worker"
helper="For more information, please read the documentation <a class='text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>." helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>."
label="Is it a Swarm Worker?" /> label="Is it a Swarm Worker?" />
@else @else
<x-forms.checkbox type="checkbox" instantSave id="is_swarm_worker" <x-forms.checkbox type="checkbox" instantSave id="is_swarm_worker"
helper="For more information, please read the documentation <a class='text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>." helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/docker/swarm' target='_blank'>here</a>."
label="Is it a Swarm Worker?" /> label="Is it a Swarm Worker?" />
@endif @endif
@if ($is_swarm_worker && count($swarm_managers) > 0) @if ($is_swarm_worker && count($swarm_managers) > 0)

View File

@ -17,7 +17,7 @@
xmlns="http://www.w3.org/2000/svg"> xmlns="http://www.w3.org/2000/svg">
<path fill="currentColor" <path fill="currentColor"
d="M240.26 186.1L152.81 34.23a28.74 28.74 0 0 0-49.62 0L15.74 186.1a27.45 27.45 0 0 0 0 27.71A28.31 28.31 0 0 0 40.55 228h174.9a28.31 28.31 0 0 0 24.79-14.19a27.45 27.45 0 0 0 .02-27.71m-20.8 15.7a4.46 4.46 0 0 1-4 2.2H40.55a4.46 4.46 0 0 1-4-2.2a3.56 3.56 0 0 1 0-3.73L124 46.2a4.77 4.77 0 0 1 8 0l87.44 151.87a3.56 3.56 0 0 1 .02 3.73M116 136v-32a12 12 0 0 1 24 0v32a12 12 0 0 1-24 0m28 40a16 16 0 1 1-16-16a16 16 0 0 1 16 16" /> d="M240.26 186.1L152.81 34.23a28.74 28.74 0 0 0-49.62 0L15.74 186.1a27.45 27.45 0 0 0 0 27.71A28.31 28.31 0 0 0 40.55 228h174.9a28.31 28.31 0 0 0 24.79-14.19a27.45 27.45 0 0 0 .02-27.71m-20.8 15.7a4.46 4.46 0 0 1-4 2.2H40.55a4.46 4.46 0 0 1-4-2.2a3.56 3.56 0 0 1 0-3.73L124 46.2a4.77 4.77 0 0 1 8 0l87.44 151.87a3.56 3.56 0 0 1 .02 3.73M116 136v-32a12 12 0 0 1 24 0v32a12 12 0 0 1-24 0m28 40a16 16 0 1 1-16-16a16 16 0 0 1 16 16" />
</svg>Before switching proxies, please read <a class="text-white underline" </svg>Before switching proxies, please read <a class="dark:text-white underline"
href="https://coolify.io/docs/server/switching-proxies">this</a>.</div> href="https://coolify.io/docs/server/switching-proxies">this</a>.</div>
@if ($server->proxyType() === 'TRAEFIK_V2') @if ($server->proxyType() === 'TRAEFIK_V2')
<div class="pb-4">Traefik v2</div> <div class="pb-4">Traefik v2</div>

View File

@ -1,5 +1,5 @@
<div class="flex gap-2"> <div class="flex gap-2">
<h3 class="text-white">File: {{ str_replace('|', '.', $fileName) }}</h3> <h3 class="dark:text-white">File: {{ str_replace('|', '.', $fileName) }}</h3>
<div class="flex gap-2"> <div class="flex gap-2">
<x-slide-over> <x-slide-over>
<x-slot:title>Edit Configuration</x-slot:title> <x-slot:title>Edit Configuration</x-slot:title>

View File

@ -31,7 +31,7 @@
<div class="flex flex-col gap-2 py-2"> <div class="flex flex-col gap-2 py-2">
@if (str_replace('|', '.', $fileName) === 'coolify.yaml' || str_replace('|', '.', $fileName) === 'Caddyfile' || str_replace('|', '.', $fileName) === 'coolify.caddy' || str_replace('|', '.', $fileName) === 'default_redirect_404.caddy') @if (str_replace('|', '.', $fileName) === 'coolify.yaml' || str_replace('|', '.', $fileName) === 'Caddyfile' || str_replace('|', '.', $fileName) === 'coolify.caddy' || str_replace('|', '.', $fileName) === 'default_redirect_404.caddy')
<div> <div>
<h3 class="text-white">File: {{ str_replace('|', '.', $fileName) }}</h3> <h3 class="dark:text-white">File: {{ str_replace('|', '.', $fileName) }}</h3>
</div> </div>
<x-forms.textarea disabled name="proxy_settings" <x-forms.textarea disabled name="proxy_settings"
wire:model="contents.{{ $fileName }}" rows="5" /> wire:model="contents.{{ $fileName }}" rows="5" />

View File

@ -3,9 +3,9 @@
@if ($server->isFunctional()) @if ($server->isFunctional())
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'managed' }" class="flex h-full"> <div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'managed' }" class="flex h-full">
<div class="flex flex-col gap-4"> <div class="flex flex-col gap-4">
<a :class="activeTab === 'managed' && 'text-white'" <a :class="activeTab === 'managed' && 'dark:text-white'"
@click.prevent="activeTab = 'managed'; window.location.hash = 'managed'" href="#">Managed</a> @click.prevent="activeTab = 'managed'; window.location.hash = 'managed'" href="#">Managed</a>
<a :class="activeTab === 'unmanaged' && 'text-white'" <a :class="activeTab === 'unmanaged' && 'dark:text-white'"
@click.prevent="activeTab = 'unmanaged'; window.location.hash = 'unmanaged'" @click.prevent="activeTab = 'unmanaged'; window.location.hash = 'unmanaged'"
href="#">Unmanaged</a> href="#">Unmanaged</a>
</div> </div>
@ -45,7 +45,7 @@
</thead> </thead>
<tbody class="divide-y divide-coolgray-400"> <tbody class="divide-y divide-coolgray-400">
@forelse ($server->definedResources()->sortBy('name',SORT_NATURAL) as $resource) @forelse ($server->definedResources()->sortBy('name',SORT_NATURAL) as $resource)
<tr class="text-white bg-coolblack hover:bg-coolgray-100"> <tr class="dark:text-white bg-coolblack hover:bg-coolgray-100">
<td class="px-5 py-4 text-sm whitespace-nowrap"> <td class="px-5 py-4 text-sm whitespace-nowrap">
{{ data_get($resource->project(), 'name') }} {{ data_get($resource->project(), 'name') }}
</td> </td>
@ -115,7 +115,7 @@
</thead> </thead>
<tbody class="divide-y divide-coolgray-400"> <tbody class="divide-y divide-coolgray-400">
@forelse ($unmanagedContainers->sortBy('name',SORT_NATURAL) as $resource) @forelse ($unmanagedContainers->sortBy('name',SORT_NATURAL) as $resource)
<tr class="text-white bg-coolblack hover:bg-coolgray-100"> <tr class="dark:text-white bg-coolblack hover:bg-coolgray-100">
<td class="px-5 py-4 text-sm whitespace-nowrap"> <td class="px-5 py-4 text-sm whitespace-nowrap">
{{ data_get($resource, 'Names') }} {{ data_get($resource, 'Names') }}
</td> </td>

View File

@ -20,7 +20,7 @@
Currently attached Private Key: Currently attached Private Key:
<a <a
href="{{ route('security.private-key.show', ['private_key_uuid' => data_get($server, 'privateKey.uuid')]) }}"> href="{{ route('security.private-key.show', ['private_key_uuid' => data_get($server, 'privateKey.uuid')]) }}">
<button class="text-white btn-link">{{ data_get($server, 'privateKey.name') }}</button> <button class="dark:text-white btn-link">{{ data_get($server, 'privateKey.name') }}</button>
</a> </a>
</div> </div>
@else @else

View File

@ -2,14 +2,14 @@
<x-settings.navbar /> <x-settings.navbar />
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex h-full pt-1"> <div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex h-full pt-1">
<div class="flex flex-col gap-4 min-w-fit"> <div class="flex flex-col gap-4 min-w-fit">
<a :class="activeTab === 'general' && 'text-white'" <a :class="activeTab === 'general' && 'dark:text-white'"
@click.prevent="activeTab = 'general'; window.location.hash = 'general'" href="#">General</a> @click.prevent="activeTab = 'general'; window.location.hash = 'general'" href="#">General</a>
<a :class="activeTab === 'backup' && 'text-white'" <a :class="activeTab === 'backup' && 'dark:text-white'"
@click.prevent="activeTab = 'backup'; window.location.hash = 'backup'" href="#">Instance Backup</a> @click.prevent="activeTab = 'backup'; window.location.hash = 'backup'" href="#">Instance Backup</a>
<a :class="activeTab === 'smtp' && 'text-white'" <a :class="activeTab === 'smtp' && 'dark:text-white'"
@click.prevent="activeTab = 'smtp'; window.location.hash = 'smtp'" href="#">Transactional @click.prevent="activeTab = 'smtp'; window.location.hash = 'smtp'" href="#">Transactional
Email</a> Email</a>
<a :class="activeTab === 'auth' && 'text-white'" <a :class="activeTab === 'auth' && 'dark:text-white'"
@click.prevent="activeTab = 'auth'; window.location.hash = 'auth'" href="#">Authentication (OAuth)</a> @click.prevent="activeTab = 'auth'; window.location.hash = 'auth'" href="#">Authentication (OAuth)</a>
</div> </div>
<div class="w-full pl-8"> <div class="w-full pl-8">

View File

@ -123,7 +123,7 @@
</thead> </thead>
<tbody class="divide-y divide-coolgray-400"> <tbody class="divide-y divide-coolgray-400">
@forelse ($applications->sortBy('name',SORT_NATURAL) as $resource) @forelse ($applications->sortBy('name',SORT_NATURAL) as $resource)
<tr class="text-white bg-coolblack hover:bg-coolgray-100"> <tr class="dark:text-white bg-coolblack hover:bg-coolgray-100">
<td class="px-5 py-4 text-sm whitespace-nowrap"> <td class="px-5 py-4 text-sm whitespace-nowrap">
{{ data_get($resource->project(), 'name') }} {{ data_get($resource->project(), 'name') }}
</td> </td>

View File

@ -30,7 +30,7 @@
</div> </div>
</div> </div>
<div class="pt-4"> <div class="pt-4">
If you have any problem, please <a class="text-white underline" href="{{ config('coolify.contact') }}" If you have any problem, please <a class="dark:text-white underline" href="{{ config('coolify.contact') }}"
target="_blank">contact us.</a> target="_blank">contact us.</a>
</div> </div>
@endif @endif
@ -40,7 +40,7 @@
@if (currentTeam()->subscription->lemon_status === 'cancelled') @if (currentTeam()->subscription->lemon_status === 'cancelled')
<div class="pb-4">Subscriptions ends at: {{ getRenewDate() }}</div> <div class="pb-4">Subscriptions ends at: {{ getRenewDate() }}</div>
<div class="py-4">If you would like to change the subscription to a lower/higher plan, <a <div class="py-4">If you would like to change the subscription to a lower/higher plan, <a
class="text-white underline" href="{{ config('coolify.contact') }}" target="_blank">please class="dark:text-white underline" href="{{ config('coolify.contact') }}" target="_blank">please
contact contact
us.</a></div> us.</a></div>
@else @else
@ -56,10 +56,10 @@
@endif @endif
</div> </div>
<div> <div>
<x-forms.button><a class="text-white hover:no-underline" href="{{ getPaymentLink() }}">Update Payment <x-forms.button><a class="dark:text-white hover:no-underline" href="{{ getPaymentLink() }}">Update Payment
Details</a> Details</a>
</x-forms.button> </x-forms.button>
<a class="text-white hover:no-underline" <a class="dark:text-white hover:no-underline"
href="https://app.lemonsqueezy.com/my-orders"><x-forms.button>Manage My href="https://app.lemonsqueezy.com/my-orders"><x-forms.button>Manage My
Subscription</x-forms.button></a> Subscription</x-forms.button></a>
</div> </div>

View File

@ -29,7 +29,7 @@
<h1>Subscription</h1> <h1>Subscription</h1>
</div> </div>
<div>You are not an admin or have been removed from this team. If this does not make sense, please <span <div>You are not an admin or have been removed from this team. If this does not make sense, please <span
class="text-white underline cursor-pointer" wire:click="help">contact class="dark:text-white underline cursor-pointer" wire:click="help">contact
us</span>.</div> us</span>.</div>
</div> </div>
@endif @endif

View File

@ -26,16 +26,16 @@
@foreach ($applications as $application) @foreach ($applications as $application)
<a href="{{ $application->link() }}" class="flex flex-col box group"> <a href="{{ $application->link() }}" class="flex flex-col box group">
<span <span
class="font-bold text-white">{{ $application->project()->name }}/{{ $application->environment->name }}</span> class="font-bold dark:text-white">{{ $application->project()->name }}/{{ $application->environment->name }}</span>
<span class="text-white ">{{ $application->name }}</span> <span class="dark:text-white ">{{ $application->name }}</span>
<span class="description">{{ $application->description }}</span> <span class="description">{{ $application->description }}</span>
</a> </a>
@endforeach @endforeach
@foreach ($services as $service) @foreach ($services as $service)
<a href="{{ $service->link() }}" class="flex flex-col box group"> <a href="{{ $service->link() }}" class="flex flex-col box group">
<span <span
class="font-bold text-white">{{ $service->project()->name }}/{{ $service->environment->name }}</span> class="font-bold dark:text-white">{{ $service->project()->name }}/{{ $service->environment->name }}</span>
<span class="text-white ">{{ $service->name }}</span> <span class="dark:text-white ">{{ $service->name }}</span>
<span class="description">{{ $service->description }}</span> <span class="description">{{ $service->description }}</span>
</a> </a>
@endforeach @endforeach
@ -58,7 +58,7 @@
'border-yellow-500' => data_get($deployment, 'status') === 'in_progress', 'border-yellow-500' => data_get($deployment, 'status') === 'in_progress',
])> ])>
<div class="flex flex-col mx-6"> <div class="flex flex-col mx-6">
<div class="font-bold text-white"> <div class="font-bold dark:text-white">
{{ data_get($deployment, 'application_name') }} {{ data_get($deployment, 'application_name') }}
</div> </div>
<div class="description"> <div class="description">

View File

@ -30,16 +30,16 @@
@foreach ($applications as $application) @foreach ($applications as $application)
<a href="{{ $application->link() }}" class="flex flex-col box group"> <a href="{{ $application->link() }}" class="flex flex-col box group">
<span <span
class="font-bold text-white">{{ $application->project()->name }}/{{ $application->environment->name }}</span> class="font-bold dark:text-white">{{ $application->project()->name }}/{{ $application->environment->name }}</span>
<span class="text-white ">{{ $application->name }}</span> <span class="dark:text-white ">{{ $application->name }}</span>
<span class="description">{{ $application->description }}</span> <span class="description">{{ $application->description }}</span>
</a> </a>
@endforeach @endforeach
@foreach ($services as $service) @foreach ($services as $service)
<a href="{{ $service->link() }}" class="flex flex-col box group"> <a href="{{ $service->link() }}" class="flex flex-col box group">
<span <span
class="font-bold text-white">{{ $service->project()->name }}/{{ $service->environment->name }}</span> class="font-bold dark:text-white">{{ $service->project()->name }}/{{ $service->environment->name }}</span>
<span class="text-white ">{{ $service->name }}</span> <span class="dark:text-white ">{{ $service->name }}</span>
<span class="description">{{ $service->description }}</span> <span class="description">{{ $service->description }}</span>
</a> </a>
@endforeach @endforeach
@ -61,7 +61,7 @@
'border-yellow-500' => data_get($deployment, 'status') === 'in_progress', 'border-yellow-500' => data_get($deployment, 'status') === 'in_progress',
])> ])>
<div class="flex flex-col mx-6"> <div class="flex flex-col mx-6">
<div class="font-bold text-white"> <div class="font-bold dark:text-white">
{{ data_get($deployment, 'application_name') }} {{ data_get($deployment, 'application_name') }}
</div> </div>
<div class="description"> <div class="description">

View File

@ -13,7 +13,7 @@
</div> </div>
<div class="flex items-center gap-2 pb-4">You can use these variables anywhere with <span <div class="flex items-center gap-2 pb-4">You can use these variables anywhere with <span
class="text-warning">@{{ team.VARIABLENAME }}</span> <x-helper class="text-warning">@{{ team.VARIABLENAME }}</span> <x-helper
helper="More info <a class='text-white underline' href='https://coolify.io/docs/environment-variables#shared-variables' target='_blank'>here</a>."></x-helper> helper="More info <a class='underline dark:text-white' href='https://coolify.io/docs/environment-variables#shared-variables' target='_blank'>here</a>."></x-helper>
</div> </div>
<div class="flex flex-col gap-2"> <div class="flex flex-col gap-2">

View File

@ -23,7 +23,7 @@
@elseif(auth()->user()->teams()->get()->count() === 1 || auth()->user()->currentTeam()->personal_team) @elseif(auth()->user()->teams()->get()->count() === 1 || auth()->user()->currentTeam()->personal_team)
<div>You can't delete your last / personal team.</div> <div>You can't delete your last / personal team.</div>
@elseif(currentTeam()->subscription && currentTeam()->subscription?->lemon_status !== 'cancelled') @elseif(currentTeam()->subscription && currentTeam()->subscription?->lemon_status !== 'cancelled')
<div>Please cancel your subscription <a class="text-white underline" <div>Please cancel your subscription <a class="dark:text-white underline"
href="{{ route('subscription.show') }}">here</a> before delete this team.</div> href="{{ route('subscription.show') }}">here</a> before delete this team.</div>
@else @else
@if (currentTeam()->isEmpty()) @if (currentTeam()->isEmpty())

View File

@ -22,7 +22,7 @@
</thead> </thead>
<tbody class="divide-y divide-coolgray-400"> <tbody class="divide-y divide-coolgray-400">
@foreach ($invitations as $invite) @foreach ($invitations as $invite)
<tr class="text-white bg-coolblack hover:bg-coolgray-100/40"> <tr class="dark:text-white bg-coolblack hover:bg-coolgray-100/40">
<td class="px-5 py-4 text-sm whitespace-nowrap">{{ $invite->email }}</td> <td class="px-5 py-4 text-sm whitespace-nowrap">{{ $invite->email }}</td>
<td class="px-5 py-4 text-sm whitespace-nowrap">{{ $invite->via }}</td> <td class="px-5 py-4 text-sm whitespace-nowrap">{{ $invite->via }}</td>
<td class="px-5 py-4 text-sm whitespace-nowrap">{{ $invite->role }}</td> <td class="px-5 py-4 text-sm whitespace-nowrap">{{ $invite->role }}</td>

View File

@ -1,5 +1,5 @@
<tr @class([ <tr @class([
'text-white bg-coolblack hover:bg-coolgray-100', 'dark:text-white bg-coolblack hover:bg-coolgray-100',
'bg-coolgray-100' => $member->id == auth()->user()->id, 'bg-coolgray-100' => $member->id == auth()->user()->id,
])> ])>
<td class="px-5 py-4 text-sm whitespace-nowrap"> <td class="px-5 py-4 text-sm whitespace-nowrap">

View File

@ -10,17 +10,17 @@
<button @click="slideOverOpen=true" class="button">+ <button @click="slideOverOpen=true" class="button">+
Add</button> Add</button>
</x-slide-over> </x-slide-over>
{{-- <a class="text-white hover:no-underline" href="/team/storages/new"> <x-forms.button>+ Add {{-- <a class="dark:text-white hover:no-underline" href="/team/storages/new"> <x-forms.button>+ Add
</x-forms.button></a> --}} </x-forms.button></a> --}}
</div> </div>
<div class="grid gap-2 lg:grid-cols-2"> <div class="grid gap-2 lg:grid-cols-2">
@forelse ($s3 as $storage) @forelse ($s3 as $storage)
<div x-data x-on:click="goto('{{ $storage->uuid }}')" @class(['gap-2 border cursor-pointer box group border-transparent'])> <div x-data x-on:click="goto('{{ $storage->uuid }}')" @class(['gap-2 border cursor-pointer box group border-transparent'])>
<div class="flex flex-col mx-6"> <div class="flex flex-col mx-6">
<div class=" group-hover:text-white"> <div class=" group-hover:dark:text-white">
{{ $storage->name }} {{ $storage->name }}
</div> </div>
<div class="text-xs group-hover:text-white"> <div class="text-xs group-hover:dark:text-white">
{{ $storage->description }}</div> {{ $storage->description }}</div>
</div> </div>
</div> </div>

View File

@ -2,7 +2,7 @@
<div class="w-96 min-w-fit"> <div class="w-96 min-w-fit">
<div class="flex flex-col items-center pb-8"> <div class="flex flex-col items-center pb-8">
<a href="{{ route('dashboard') }}"> <a href="{{ route('dashboard') }}">
<div class="text-5xl font-bold tracking-tight text-center text-white">Coolify</div> <div class="text-5xl font-bold tracking-tight text-center dark:text-white">Coolify</div>
</a> </a>
</div> </div>
<div class="flex items-center justify-center pb-4 text-center"> <div class="flex items-center justify-center pb-4 text-center">

View File

@ -1,7 +1,7 @@
<x-layout> <x-layout>
<x-security.navbar /> <x-security.navbar />
<a class="text-center hover:no-underline group" href="{{ route('security.private-key.index') }}"> <a class="text-center hover:no-underline group" href="{{ route('security.private-key.index') }}">
<div class="group-hover:text-white"> <div class="group-hover:dark:text-white">
<div>Private Keys</div> <div>Private Keys</div>
</div> </div>
</a> </a>

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