2023-10-24 10:33:49 +00:00
< div x - data x - init = " $wire .loadServers " >
2024-02-08 12:10:29 +00:00
< div class = " flex gap-4 " >
2023-10-11 08:19:03 +00:00
< h1 > New Resource </ h1 >
< div class = " w-96 " >
< x - forms . select wire : model = " selectedEnvironment " >
@ foreach ( $environments as $environment )
< option value = " { { $environment->name }} " > Environment : {{ $environment -> name }} </ option >
@ endforeach
</ x - forms . select >
</ div >
</ div >
2023-08-07 17:25:32 +00:00
< div class = " pb-4 " > Deploy resources , like Applications , Databases , Services ...</ div >
2024-02-08 12:10:29 +00:00
< div class = " flex flex-col gap-4 pt-10 " >
2023-07-26 11:23:47 +00:00
@ if ( $current_step === 'type' )
< ul class = " pb-10 steps " >
2023-09-22 10:08:51 +00:00
< li class = " step step-secondary " > Select Resource Type </ li >
2023-07-26 11:23:47 +00:00
< li class = " step " > Select a Server </ li >
< li class = " step " > Select a Destination </ li >
</ ul >
2023-08-11 20:41:47 +00:00
< h2 > Applications </ h2 >
2024-02-08 12:10:29 +00:00
< div class = " grid justify-start grid-cols-1 gap-4 text-left xl:grid-cols-3 " >
2023-09-05 10:14:31 +00:00
< div class = " box group " wire : click = " setType('public') " >
2023-07-26 11:23:47 +00:00
< div class = " flex flex-col mx-6 " >
2023-09-27 20:39:10 +00:00
< div class = " font-bold text-white group-hover:text-white " >
2023-07-26 11:23:47 +00:00
Public Repository
</ div >
2023-10-20 07:29:09 +00:00
< div class = " description " >
2023-10-11 10:56:57 +00:00
You can deploy any kind of public repositories from the supported git providers .
2023-08-08 09:51:36 +00:00
</ div >
2023-07-26 11:23:47 +00:00
</ div >
</ div >
2023-09-05 10:14:31 +00:00
< div class = " box group " wire : click = " setType('private-gh-app') " >
2023-07-26 11:23:47 +00:00
< div class = " flex flex-col mx-6 " >
2023-09-27 20:39:10 +00:00
< div class = " font-bold text-white group-hover:text-white " >
2023-10-06 12:39:30 +00:00
Private Repository ( with GitHub App )
2023-07-26 11:23:47 +00:00
</ div >
2023-10-20 07:29:09 +00:00
< div class = " description " >
2023-08-08 09:51:36 +00:00
You can deploy public & private repositories through your GitHub Apps .
</ div >
2023-07-26 11:23:47 +00:00
</ div >
</ div >
2023-09-05 10:14:31 +00:00
< div class = " box group " wire : click = " setType('private-deploy-key') " >
2023-07-26 11:23:47 +00:00
< div class = " flex flex-col mx-6 " >
2023-09-27 20:39:10 +00:00
< div class = " font-bold text-white group-hover:text-white " >
2023-07-26 11:23:47 +00:00
Private Repository ( with deploy key )
</ div >
2023-10-20 07:29:09 +00:00
< div class = " description " >
2023-10-06 12:51:50 +00:00
You can deploy public & private repositories with a simple deploy key ( SSH key ) .
2023-08-08 09:51:36 +00:00
</ div >
2023-07-26 11:23:47 +00:00
</ div >
</ div >
</ div >
2024-02-08 12:10:29 +00:00
< div class = " grid justify-start grid-cols-1 gap-4 text-left xl:grid-cols-3 " >
2023-09-05 10:14:31 +00:00
< div class = " box group " wire : click = " setType('dockerfile') " >
2023-08-11 20:41:47 +00:00
< div class = " flex flex-col mx-6 " >
2023-09-27 20:39:10 +00:00
< div class = " font-bold text-white group-hover:text-white " >
2023-08-11 20:41:47 +00:00
Based on a Dockerfile
</ div >
2023-10-20 07:29:09 +00:00
< div class = " description " >
2023-08-11 20:41:47 +00:00
You can deploy a simple Dockerfile , without Git .
</ div >
</ div >
</ div >
2023-09-25 13:48:43 +00:00
< div class = " box group " wire : click = " setType('docker-compose-empty') " >
< div class = " flex flex-col mx-6 " >
2023-09-27 20:39:10 +00:00
< div class = " font-bold text-white group-hover:text-white " >
2023-09-25 13:48:43 +00:00
Based on a Docker Compose
</ div >
2023-10-20 07:29:09 +00:00
< div class = " description " >
2023-11-24 14:48:23 +00:00
You can deploy complex application easily with Docker Compose , without Git .
2023-09-19 13:51:13 +00:00
</ div >
</ div >
2023-09-25 13:48:43 +00:00
</ div >
2023-10-09 13:49:48 +00:00
< div class = " box group " wire : click = " setType('docker-image') " >
< div class = " flex flex-col mx-6 " >
< div class = " font-bold text-white group-hover:text-white " >
Based on an existing Docker Image
</ div >
2023-10-20 07:29:09 +00:00
< div class = " description " >
2024-01-05 14:10:30 +00:00
You can deploy an existing Docker Image from any Registry , without Git .
2023-10-09 13:49:48 +00:00
</ div >
</ div >
</ div >
2023-08-11 20:41:47 +00:00
</ div >
< h2 class = " py-4 " > Databases </ h2 >
2024-02-08 12:10:29 +00:00
< div class = " grid justify-start grid-cols-1 gap-4 text-left xl:grid-cols-5 " >
2023-09-05 10:14:31 +00:00
< div class = " box group " wire : click = " setType('postgresql') " >
2023-08-07 17:25:32 +00:00
< div class = " flex flex-col mx-6 " >
2023-09-27 20:39:10 +00:00
< div class = " font-bold text-white group-hover:text-white " >
2023-09-05 10:14:31 +00:00
New PostgreSQL
2023-08-07 17:25:32 +00:00
</ div >
2023-10-20 07:29:09 +00:00
< div class = " description " >
2023-12-07 18:06:32 +00:00
PostgreSQL is an open - source , object - relational database management system known for its
robustness , advanced features , and strong standards compliance .
2023-08-08 09:51:36 +00:00
</ div >
2023-08-07 17:25:32 +00:00
</ div >
</ div >
2023-10-12 15:18:33 +00:00
< div class = " box group " wire : click = " setType('redis') " >
< div class = " flex flex-col mx-6 " >
< div class = " font-bold text-white group-hover:text-white " >
New Redis
</ div >
2023-10-20 07:29:09 +00:00
< div class = " description " >
2023-12-07 18:06:32 +00:00
Redis is an open - source , in - memory data structure store used as a database , cache , and
message broker , known for its high performance , flexibility , and rich data structures .
2023-10-12 15:18:33 +00:00
</ div >
</ div >
2023-10-20 07:29:09 +00:00
</ div >
< div class = " box group " wire : click = " setType('mongodb') " >
2023-10-19 11:32:03 +00:00
< div class = " flex flex-col mx-6 " >
< div class = " font-bold text-white group-hover:text-white " >
New MongoDB
</ div >
2023-10-20 07:29:09 +00:00
< div class = " description " >
2023-12-07 18:06:32 +00:00
MongoDB is a source - available , NoSQL database program that uses JSON - like documents with
optional schemas , known for its flexibility , scalability , and wide range of application use
cases .
2023-10-19 11:32:03 +00:00
</ div >
</ div >
2023-10-12 15:18:33 +00:00
</ div >
2023-10-24 12:31:28 +00:00
< div class = " box group " wire : click = " setType('mysql') " >
< div class = " flex flex-col mx-6 " >
< div class = " font-bold text-white group-hover:text-white " >
New MySQL
</ div >
< div class = " description " >
2023-12-07 18:06:32 +00:00
MySQL is an open - source relational database management system known for its speed ,
reliability , and flexibility in managing and accessing data .
2023-10-24 12:31:28 +00:00
</ div >
</ div >
</ div >
< div class = " box group " wire : click = " setType('mariadb') " >
< div class = " flex flex-col mx-6 " >
< div class = " font-bold text-white group-hover:text-white " >
New Mariadb
</ div >
< div class = " description " >
2023-12-07 18:06:32 +00:00
MariaDB is an open - source relational database management system that serves as a drop - in
replacement for MySQL , offering more robust , scalable , and reliable SQL server capabilities .
2023-10-24 12:31:28 +00:00
</ div >
</ div >
</ div >
2023-09-05 10:14:31 +00:00
{{ -- < div class = " box group " wire : click = " setType('existing-postgresql') " >
< div class = " flex flex-col mx-6 " >
< div class = " group-hover:text-white " >
Backup Existing PostgreSQL
</ div >
< div class = " text-xs group-hover:text-white " >
Schedule a backup of an existing PostgreSQL database .
</ div >
</ div >
</ div > -- }}
2023-08-07 17:25:32 +00:00
</ div >
2024-02-08 12:10:29 +00:00
< div class = " flex items-center gap-4 " wire : init = 'loadServices' >
2023-09-25 13:48:43 +00:00
< h2 class = " py-4 " > Services </ h2 >
2023-11-23 10:49:49 +00:00
< x - forms . button wire : click = 'loadServices' > Reload Services List </ x - forms . button >
2023-10-24 10:33:49 +00:00
< input
class = " w-full text-white rounded input input-sm bg-coolgray-200 disabled:bg-coolgray-200/50 disabled:border-none placeholder:text-coolgray-500 read-only:text-neutral-500 read-only:bg-coolgray-200/50 "
2023-12-07 23:16:22 +00:00
wire : model . live . debounce . 200 ms = " search " placeholder = " Search... " >
2023-09-25 13:48:43 +00:00
</ div >
2024-02-08 12:10:29 +00:00
< div class = " grid justify-start grid-cols-1 gap-4 text-left xl:grid-cols-5 " >
2023-09-25 13:48:43 +00:00
@ if ( $loadingServices )
< span class = " loading loading-xs loading-spinner " ></ span >
@ else
2023-10-24 10:33:49 +00:00
@ forelse ( $services as $serviceName => $service )
2023-10-05 08:58:08 +00:00
@ if ( data_get ( $service , 'disabled' ))
2023-10-20 07:29:09 +00:00
< button class = " text-left cursor-not-allowed bg-coolgray-200/20 box-without-bg " disabled >
2023-10-05 08:58:08 +00:00
< div class = " flex flex-col mx-6 " >
2023-10-20 07:29:09 +00:00
< div class = " font-bold " >
2023-10-05 08:58:08 +00:00
{{ Str :: headline ( $serviceName ) }}
</ div >
You need to upgrade to {{ data_get ( $service , 'minVersion' ) }} to use this service .
2023-09-25 13:48:43 +00:00
</ div >
2023-10-05 08:58:08 +00:00
</ button >
@ else
< button class = " text-left box group " wire : loading . attr = " disabled "
wire : click = " setType('one-click-service- { { $serviceName }}') " >
2023-10-20 07:29:09 +00:00
< div class = " flex flex-col mx-2 " >
2023-10-05 08:58:08 +00:00
< div class = " font-bold text-white group-hover:text-white " >
{{ Str :: headline ( $serviceName ) }}
2023-09-27 19:51:06 +00:00
</ div >
2023-10-05 08:58:08 +00:00
@ if ( data_get ( $service , 'slogan' ))
2023-10-20 07:29:09 +00:00
< div class = " description " >
2023-10-05 08:58:08 +00:00
{{ data_get ( $service , 'slogan' ) }}
</ div >
@ endif
</ div >
</ button >
@ endif
2023-12-07 18:06:32 +00:00
@ empty
2023-11-13 11:59:59 +00:00
< div > No service found . Please try to reload the list !</ div >
2023-10-24 10:33:49 +00:00
@ endforelse
2023-09-25 13:48:43 +00:00
@ endif
2023-09-11 11:52:54 +00:00
</ div >
2023-10-17 08:37:26 +00:00
< div class = " py-4 pb-10 " > Trademarks Policy : The respective trademarks mentioned here are owned by the
respective
companies , and use of them does not imply any affiliation or endorsement .</ div >
2023-07-26 11:23:47 +00:00
@ endif
@ if ( $current_step === 'servers' )
< ul class = " pb-10 steps " >
2023-09-22 10:08:51 +00:00
< li class = " step step-secondary " > Select Resource Type </ li >
2023-07-26 11:23:47 +00:00
< li class = " step step-secondary " > Select a Server </ li >
< li class = " step " > Select a Destination </ li >
</ ul >
2024-01-12 14:41:46 +00:00
2023-12-20 13:45:47 +00:00
{{ -- @ if ( $isDatabase )
2023-12-18 13:01:25 +00:00
< div class = " flex items-center justify-center pt-4 " >
< x - forms . checkbox instantSave wire : model = " includeSwarm "
2023-12-19 12:47:12 +00:00
helper = " Swarm clusters are excluded from this list by default. For database, services or complex compose deployments with databases to work with Swarm,
2024-03-02 02:37:31 +00:00
you need to set a few things on the server . Read more in upstream docs < a class = 'text-white underline' href = 'https://coolify.io/docs/docker/swarm#database-requirements' target = '_blank' > here </ a >. "
2023-12-18 13:01:25 +00:00
label = " Include Swarm Clusters " />
</ div >
2023-12-20 13:45:47 +00:00
@ endif -- }}
2024-02-08 12:10:29 +00:00
< div class = " flex flex-col justify-center gap-4 text-left xl:flex-row xl:flex-wrap " >
2023-08-21 08:18:11 +00:00
@ forelse ( $servers as $server )
2024-02-12 10:46:36 +00:00
< div class = " w-64 box group " wire : click = " setServer( { { $server }}) " >
2023-07-26 11:23:47 +00:00
< div class = " flex flex-col mx-6 " >
2024-02-12 10:46:36 +00:00
< div class = " font-bold group-hover:text-white " >
2023-07-26 11:23:47 +00:00
{{ $server -> name }}
</ div >
< div class = " text-xs group-hover:text-white " >
{{ $server -> description }} </ div >
</ div >
</ div >
2023-08-21 08:18:11 +00:00
@ empty
< div >
2023-09-05 10:14:31 +00:00
< div > No validated & reachable servers found . < a class = " text-white underline " href = " /servers " >
Go to servers page
</ a ></ div >
2023-08-21 08:18:11 +00:00
< x - use - magic - bar link = " /server/new " />
</ div >
@ endforelse
2023-07-26 11:23:47 +00:00
</ div >
2024-01-12 14:41:46 +00:00
@ if ( $isDatabase )
< div class = " text-center " > Swarm clusters are excluded from this type of resource at the moment . It will
be activated soon . Stay tuned .</ div >
@ endif
2023-07-26 11:23:47 +00:00
@ endif
@ if ( $current_step === 'destinations' )
< ul class = " pb-10 steps " >
2023-09-22 10:08:51 +00:00
< li class = " step step-secondary " > Select Resource Type </ li >
2023-07-26 11:23:47 +00:00
< li class = " step step-secondary " > Select a Server </ li >
< li class = " step step-secondary " > Select a Destination </ li >
</ ul >
2023-12-15 09:24:02 +00:00
2024-02-08 12:10:29 +00:00
< div class = " flex flex-col justify-center gap-4 text-left xl:flex-row xl:flex-wrap " >
2023-12-15 14:48:01 +00:00
@ if ( $server -> isSwarm ())
@ foreach ( $swarmDockers as $swarmDocker )
< div class = " box group " wire : click = " setDestination(' { { $swarmDocker->uuid }}') " >
< div class = " flex flex-col mx-6 " >
< div class = " font-bold group-hover:text-white " >
Swarm Docker < span class = " text-xs " > ({{ $swarmDocker -> name }}) </ span >
</ div >
2023-07-26 11:23:47 +00:00
</ div >
</ div >
2023-12-15 14:48:01 +00:00
@ endforeach
@ else
@ foreach ( $standaloneDockers as $standaloneDocker )
< div class = " box group " wire : click = " setDestination(' { { $standaloneDocker->uuid }}') " >
< div class = " flex flex-col mx-6 " >
< div class = " font-bold group-hover:text-white " >
Standalone Docker < span class = " text-xs " > ({{ $standaloneDocker -> name }}) </ span >
</ div >
< div class = " text-xs group-hover:text-white " >
2024-02-12 10:46:36 +00:00
Network : {{ $standaloneDocker -> network }} </ div >
2023-09-05 10:14:31 +00:00
</ div >
2023-08-30 09:26:46 +00:00
</ div >
2023-12-15 14:48:01 +00:00
@ endforeach
@ endif
2024-01-12 14:41:46 +00:00
< a href = " { { route('destination.new', ['server_id' => $server_id ]) }} "
2024-02-12 10:46:36 +00:00
class = " items-center justify-center text-center box-without-bg group bg-coollabs hover:bg-coollabs-100 " >
2023-12-15 09:24:02 +00:00
< div class = " flex flex-col mx-6 " >
< div class = " font-bold text-white " >
+ Add New
</ div >
</ div >
</ a >
2023-07-26 11:23:47 +00:00
</ div >
@ endif
2023-09-05 10:14:31 +00:00
@ if ( $current_step === 'existing-postgresql' )
2024-02-08 12:10:29 +00:00
< form wire : submit = 'addExistingPostgresql' class = " flex items-end gap-4 " >
2023-09-11 11:52:54 +00:00
< x - forms . input placeholder = " postgres://username:password@database:5432 " label = " Database URL "
id = " existingPostgresqlUrl " />
< x - forms . button type = " submit " > Add Database </ x - forms . button >
</ form >
2023-09-05 10:14:31 +00:00
@ endif
2023-07-26 11:23:47 +00:00
</ div >
</ div >