2024-08-06 12:02:24 +00:00
< div x - data = " { activeTab: window.location.hash ? window.location.hash.substring(1) : 'service-stack' } " x - init = " $wire .check_status " >
2024-06-07 09:01:10 +00:00
< x - slot : title >
{{ data_get_str ( $service , 'name' ) -> limit ( 10 ) }} > Configuration | Coolify
</ x - slot >
2024-01-07 15:23:41 +00:00
< livewire : project . service . navbar : service = " $service " : parameters = " $parameters " : query = " $query " />
2024-09-16 13:35:44 +00:00
< div class = " flex flex-col gap-8 pt-6 h-full sm:flex-row " >
< div class = " flex flex-col gap-2 items-start min-w-fit " >
2024-05-06 12:28:16 +00:00
< a class = " menu-item sm:min-w-fit " target = " _blank " href = " { { $service->documentation () }} " > Documentation
< x - external - link /></ a >
< a class = " menu-item sm:min-w-fit " : class = " activeTab === 'service-stack' && 'menu-item-active' "
2024-01-07 15:23:41 +00:00
@ click . prevent = " activeTab = 'service-stack';
window . location . hash = 'service-stack' "
href = " # " > Service Stack </ a >
2024-05-06 12:28:16 +00:00
< a class = " menu-item sm:min-w-fit " : class = " activeTab === 'environment-variables' && 'menu-item-active' "
2024-01-16 11:20:40 +00:00
@ click . prevent = " activeTab = 'environment-variables'; window.location.hash = 'environment-variables' "
href = " # " > Environment
Variables </ a >
2024-05-06 12:28:16 +00:00
< a class = " menu-item sm:min-w-fit " : class = " activeTab === 'storages' && 'menu-item-active' "
2024-01-16 11:20:40 +00:00
@ click . prevent = " activeTab = 'storages';
window . location . hash = 'storages' "
href = " # " > Storages </ a >
2024-05-14 13:19:28 +00:00
< a class = " menu-item " : class = " activeTab === 'scheduled-tasks' && 'menu-item-active' "
@ click . prevent = " activeTab = 'scheduled-tasks'; window.location.hash = 'scheduled-tasks' "
href = " # " > Scheduled Tasks
</ a >
2024-05-06 12:28:16 +00:00
< a class = " menu-item sm:min-w-fit " : class = " activeTab === 'logs' && 'menu-item-active' "
2024-01-07 15:23:41 +00:00
@ click . prevent = " activeTab = 'logs';
window . location . hash = 'logs' "
href = " # " > Logs </ a >
2024-05-06 12:28:16 +00:00
< a class = " menu-item sm:min-w-fit " : class = " activeTab === 'webhooks' && 'menu-item-active' "
2024-01-07 15:23:41 +00:00
@ click . prevent = " activeTab = 'webhooks'; window.location.hash = 'webhooks' " href = " # " > Webhooks
</ a >
2024-05-06 12:28:16 +00:00
< a class = " menu-item sm:min-w-fit " : class = " activeTab === 'resource-operations' && 'menu-item-active' "
2024-01-22 15:08:18 +00:00
@ click . prevent = " activeTab = 'resource-operations'; window.location.hash = 'resource-operations' "
href = " # " > Resource Operations
</ a >
2024-05-06 12:28:16 +00:00
< a class = " menu-item sm:min-w-fit " : class = " activeTab === 'tags' && 'menu-item-active' "
2024-02-02 10:50:28 +00:00
@ click . prevent = " activeTab = 'tags'; window.location.hash = 'tags' " href = " # " > Tags
</ a >
2024-05-06 12:28:16 +00:00
< a class = " menu-item sm:min-w-fit " : class = " activeTab === 'danger' && 'menu-item-active' "
2024-01-07 15:23:41 +00:00
@ click . prevent = " activeTab = 'danger';
window . location . hash = 'danger' "
href = " # " > Danger Zone
</ a >
</ div >
2024-05-05 15:23:25 +00:00
< div class = " w-full " >
2024-01-07 15:23:41 +00:00
< div x - cloak x - show = " activeTab === 'service-stack' " >
< livewire : project . service . stack - form : service = " $service " />
2024-04-15 14:54:03 +00:00
< h3 > Services </ h3 >
2024-01-07 15:23:41 +00:00
< div class = " grid grid-cols-1 gap-2 pt-4 xl:grid-cols-1 " >
@ foreach ( $applications as $application )
< div @ class ([
2024-06-25 08:37:10 +00:00
'border-l border-dashed border-red-500 ' => str (
2024-01-07 15:23:41 +00:00
$application -> status ) -> contains ([ 'exited' ]),
2024-06-25 08:37:10 +00:00
'border-l border-dashed border-success' => str (
2024-01-07 15:23:41 +00:00
$application -> status ) -> contains ([ 'running' ]),
2024-06-25 08:37:10 +00:00
'border-l border-dashed border-warning' => str (
2024-01-07 15:23:41 +00:00
$application -> status ) -> contains ([ 'starting' ]),
2024-04-11 13:42:37 +00:00
'flex gap-2 box-without-bg-without-border dark:bg-coolgray-100 bg-white dark:hover:text-neutral-300 group' ,
2024-01-07 15:23:41 +00:00
]) >
< div class = " flex flex-row w-full " >
< div class = " flex flex-col flex-1 " >
< div class = " pb-2 " >
@ if ( $application -> human_name )
{{ Str :: headline ( $application -> human_name ) }}
@ else
{{ Str :: headline ( $application -> name ) }}
@ endif
< span class = " text-xs " > ({{ $application -> image }}) </ span >
</ div >
@ if ( $application -> configuration_required )
< span class = " text-xs text-error " > ( configuration required ) </ span >
@ endif
@ if ( $application -> description )
< span class = " text-xs " > {{ Str :: limit ( $application -> description , 60 ) }} </ span >
@ endif
@ if ( $application -> fqdn )
2024-04-11 13:42:37 +00:00
< span class = " flex gap-1 text-xs " > {{ Str :: limit ( $application -> fqdn , 60 ) }}
< x - modal - input title = " Edit Domains " >
< x - slot : content >
< span class = " cursor-pointer " >
2024-04-17 13:16:08 +00:00
< svg xmlns = " http://www.w3.org/2000/svg "
class = " w-4 h-4 dark:text-warning text-coollabs "
2024-04-11 13:42:37 +00:00
viewBox = " 0 0 24 24 " >
< g fill = " none " stroke = " currentColor "
stroke - linecap = " round " stroke - linejoin = " round "
stroke - width = " 2 " >
< path
d = " m12 15l8.385-8.415a2.1 2.1 0 0 0-2.97-2.97L9 12v3h3zm4-10l3 3 " />
< path d = " M9 7.07A7 7 0 0 0 10 21a7 7 0 0 0 6.929-6 " />
</ g >
</ svg >
</ span >
</ x - slot : content >
< livewire : project . service . edit - domain
2024-04-17 13:16:08 +00:00
applicationId = " { { $application->id }} "
wire : key = " edit-domain- { { $application->id }} " />
2024-04-11 13:42:37 +00:00
</ x - modal - input >
</ span >
2024-01-07 15:23:41 +00:00
@ endif
2024-04-16 08:50:28 +00:00
< div class = " pt-2 text-xs " > {{ $application -> status }} </ div >
2024-01-07 15:23:41 +00:00
</ div >
< div class = " flex items-center px-4 " >
2024-03-26 12:50:44 +00:00
< a class = " mx-4 text-xs font-bold hover:underline "
2024-02-11 14:44:02 +00:00
href = " { { route('project.service.index', [... $parameters , 'stack_service_uuid' => $application->uuid ]) }} " >
2024-03-25 10:33:38 +00:00
Settings
2024-01-07 15:23:41 +00:00
</ a >
2024-05-14 13:19:28 +00:00
@ if ( str ( $application -> status ) -> contains ( 'running' ))
2024-09-03 14:59:51 +00:00
< x - modal - confirmation
title = " Confirm Service Application Restart? "
buttonTitle = " Restart "
submitAction = " restartApplication( { { $application->id }}) "
: actions = " ['The selected service application will be unavailable during the restart.', 'If the service application is currently in use data could be lost.'] "
: confirmWithText = " false "
: confirmWithPassword = " false "
step2ButtonText = " Restart Service Container "
/>
2024-05-14 13:19:28 +00:00
@ endif
2024-01-07 15:23:41 +00:00
</ div >
</ div >
</ div >
@ endforeach
@ foreach ( $databases as $database )
< div @ class ([
2024-06-25 08:37:10 +00:00
'border-l border-dashed border-red-500' => str ( $database -> status ) -> contains (
[ 'exited' ]),
'border-l border-dashed border-success' => str ( $database -> status ) -> contains (
[ 'running' ]),
'border-l border-dashed border-warning' => str ( $database -> status ) -> contains (
[ 'restarting' ]),
2024-04-11 13:42:37 +00:00
'flex gap-2 box-without-bg-without-border dark:bg-coolgray-100 bg-white dark:hover:text-neutral-300 group' ,
2024-01-07 15:23:41 +00:00
]) >
< div class = " flex flex-row w-full " >
< div class = " flex flex-col flex-1 " >
< div class = " pb-2 " >
@ if ( $database -> human_name )
{{ Str :: headline ( $database -> human_name ) }}
@ else
{{ Str :: headline ( $database -> name ) }}
@ endif
< span class = " text-xs " > ({{ $database -> image }}) </ span >
</ div >
@ if ( $database -> configuration_required )
< span class = " text-xs text-error " > ( configuration required ) </ span >
@ endif
@ if ( $database -> description )
< span class = " text-xs " > {{ Str :: limit ( $database -> description , 60 ) }} </ span >
@ endif
< div class = " text-xs " > {{ $database -> status }} </ div >
</ div >
< div class = " flex items-center px-4 " >
2024-03-26 12:50:44 +00:00
< a class = " mx-4 text-xs font-bold hover:underline "
2024-02-11 14:44:02 +00:00
href = " { { route('project.service.index', [... $parameters , 'stack_service_uuid' => $database->uuid ]) }} " >
2024-03-25 10:33:38 +00:00
Settings
2024-01-07 15:23:41 +00:00
</ a >
2024-05-22 17:09:58 +00:00
@ if ( str ( $database -> status ) -> contains ( 'running' ))
2024-09-03 14:59:51 +00:00
< x - modal - confirmation
title = " Confirm Service Database Restart? "
buttonTitle = " Restart "
submitAction = " restartDatabase( { { $database->id }}) "
: actions = " ['This service database will be unavailable during the restart.', 'If the service database is currently in use data could be lost.'] "
: confirmWithText = " false "
: confirmWithPassword = " false "
step2ButtonText = " Restart Database "
/>
2024-05-22 17:09:58 +00:00
@ endif
2024-01-07 15:23:41 +00:00
</ div >
</ div >
</ div >
@ endforeach
</ div >
</ div >
< div x - cloak x - show = " activeTab === 'storages' " >
2024-09-16 13:35:44 +00:00
< div class = " flex gap-2 items-center " >
2024-01-07 15:23:41 +00:00
< h2 > Storages </ h2 >
</ div >
< div class = " pb-4 " > Persistent storage to preserve data between deployments .</ div >
2024-06-13 08:18:35 +00:00
< div class = " pb-4 dark:text-warning text-coollabs " > If you would like to add a volume , you must add it to
your compose file ( General tab ) .</ div >
2024-01-07 15:23:41 +00:00
@ foreach ( $applications as $application )
2024-07-19 15:06:30 +00:00
< livewire : project . service . storage wire : key = " application- { { $application->id }} " : resource = " $application "
lazy />
2024-01-07 15:23:41 +00:00
@ endforeach
@ foreach ( $databases as $database )
2024-07-19 15:06:30 +00:00
< livewire : project . service . storage wire : key = " database- { { $database->id }} " : resource = " $database " lazy />
2024-01-07 15:23:41 +00:00
@ endforeach
</ div >
2024-05-14 13:19:28 +00:00
< div x - cloak x - show = " activeTab === 'scheduled-tasks' " >
2024-08-05 09:30:48 +00:00
< livewire : project . shared . scheduled - task . all : resource = " $service " />
2024-05-14 13:19:28 +00:00
</ div >
2024-01-07 15:23:41 +00:00
< div x - cloak x - show = " activeTab === 'webhooks' " >
2024-04-17 13:16:08 +00:00
< livewire : project . shared . webhooks : resource = " $service " />
2024-01-07 15:23:41 +00:00
</ div >
< div x - cloak x - show = " activeTab === 'logs' " >
2024-04-17 13:16:08 +00:00
< livewire : project . shared . logs : resource = " $service " />
2024-01-07 15:23:41 +00:00
</ div >
< div x - cloak x - show = " activeTab === 'environment-variables' " >
2024-04-17 13:16:08 +00:00
< livewire : project . shared . environment - variable . all : resource = " $service " />
2024-01-07 15:23:41 +00:00
</ div >
2024-01-22 15:08:18 +00:00
< div x - cloak x - show = " activeTab === 'resource-operations' " >
2024-04-17 13:16:08 +00:00
< livewire : project . shared . resource - operations : resource = " $service " />
2024-01-22 14:12:38 +00:00
</ div >
2024-02-02 10:50:28 +00:00
< div x - cloak x - show = " activeTab === 'tags' " >
2024-04-17 13:16:08 +00:00
< livewire : project . shared . tags : resource = " $service " />
2024-02-02 10:50:28 +00:00
</ div >
2024-01-07 15:23:41 +00:00
< div x - cloak x - show = " activeTab === 'danger' " >
< livewire : project . shared . danger : resource = " $service " />
</ div >
</ div >
</ div >
</ div >