2023-09-25 13:48:43 +00:00
|
|
|
<div x-data x-init="$wire.loadThings">
|
2023-10-11 08:19:03 +00:00
|
|
|
<div class="flex gap-2 ">
|
|
|
|
<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>
|
2023-08-11 20:41:47 +00:00
|
|
|
<div class="flex flex-col gap-2 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>
|
|
|
|
<div class="grid justify-start grid-cols-1 gap-2 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>
|
|
|
|
<div class="text-xs group-hover:text-white">
|
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>
|
|
|
|
<div class="text-xs group-hover:text-white">
|
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>
|
|
|
|
<div class="text-xs group-hover:text-white">
|
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>
|
2023-08-11 20:41:47 +00:00
|
|
|
<div class="grid justify-start grid-cols-1 gap-2 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>
|
|
|
|
<div class="text-xs group-hover:text-white">
|
|
|
|
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>
|
|
|
|
<div class="text-xs group-hover:text-white">
|
|
|
|
You can deploy complex application easily with Docker Compose.
|
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>
|
|
|
|
<div class="text-xs group-hover:text-white">
|
|
|
|
You can deploy an existing Docker Image form any Registry.
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2023-08-11 20:41:47 +00:00
|
|
|
</div>
|
|
|
|
<h2 class="py-4">Databases</h2>
|
2023-09-05 10:14:31 +00:00
|
|
|
<div class="grid justify-start grid-cols-1 gap-2 text-left xl:grid-cols-3">
|
|
|
|
<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>
|
|
|
|
<div class="text-xs group-hover:text-white">
|
2023-08-08 09:51:36 +00:00
|
|
|
The most loved relational database in the world.
|
|
|
|
</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>
|
|
|
|
<div class="text-xs group-hover:text-white">
|
|
|
|
The open source, in-memory data store for cache, streaming engine, and message broker.
|
|
|
|
</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>
|
2023-09-25 13:48:43 +00:00
|
|
|
<div class="flex items-center gap-2">
|
|
|
|
<h2 class="py-4">Services</h2>
|
2023-09-27 19:51:06 +00:00
|
|
|
<x-forms.button wire:click='loadServices(true)'>Reload Services List</x-forms.button>
|
2023-09-25 13:48:43 +00:00
|
|
|
</div>
|
2023-09-11 11:52:54 +00:00
|
|
|
<div class="grid justify-start grid-cols-1 gap-2 text-left xl:grid-cols-3">
|
2023-09-25 13:48:43 +00:00
|
|
|
@if ($loadingServices)
|
|
|
|
<span class="loading loading-xs loading-spinner"></span>
|
|
|
|
@else
|
|
|
|
@foreach ($services as $serviceName => $service)
|
2023-10-05 08:58:08 +00:00
|
|
|
@if (data_get($service, 'disabled'))
|
|
|
|
<button class="text-left bg-black cursor-not-allowed bg-coolgray-200/20 box-without-bg"
|
|
|
|
disabled>
|
|
|
|
<div class="flex flex-col mx-6">
|
|
|
|
<div class="font-bold text-coolgray-500">
|
|
|
|
{{ 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 }}')">
|
|
|
|
<div class="flex flex-col mx-6">
|
|
|
|
<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'))
|
|
|
|
<div class="text-xs">
|
|
|
|
{{ data_get($service, 'slogan') }}
|
|
|
|
</div>
|
|
|
|
@endif
|
|
|
|
</div>
|
|
|
|
</button>
|
|
|
|
@endif
|
2023-09-25 13:48:43 +00:00
|
|
|
@endforeach
|
|
|
|
@endif
|
2023-09-11 11:52:54 +00:00
|
|
|
</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>
|
2023-10-06 17:01:20 +00:00
|
|
|
<div class="flex flex-col justify-center gap-2 text-left xl:flex-row xl:flex-wrap">
|
2023-08-21 08:18:11 +00:00
|
|
|
@forelse($servers as $server)
|
2023-09-05 10:14:31 +00:00
|
|
|
<div class="box group" wire:click="setServer({{ $server }})">
|
2023-07-26 11:23:47 +00:00
|
|
|
<div class="flex flex-col mx-6">
|
|
|
|
<div class="group-hover:text-white">
|
|
|
|
{{ $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>
|
|
|
|
@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-10-06 17:01:20 +00:00
|
|
|
<div class="flex flex-col justify-center gap-2 text-left xl:flex-row xl:flex-wrap">
|
2023-08-30 09:26:46 +00:00
|
|
|
@foreach ($standaloneDockers as $standaloneDocker)
|
2023-09-05 10:14:31 +00:00
|
|
|
<div class="box group" wire:click="setDestination('{{ $standaloneDocker->uuid }}')">
|
2023-07-26 11:23:47 +00:00
|
|
|
<div class="flex flex-col mx-6">
|
2023-08-30 09:26:46 +00:00
|
|
|
<div class="font-bold group-hover:text-white">
|
2023-09-05 10:14:31 +00:00
|
|
|
Standalone Docker <span class="text-xs">({{ $standaloneDocker->name }})</span>
|
2023-07-26 11:23:47 +00:00
|
|
|
</div>
|
|
|
|
<div class="text-xs group-hover:text-white">
|
2023-08-30 09:26:46 +00:00
|
|
|
network: {{ $standaloneDocker->network }}</div>
|
2023-07-26 11:23:47 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@endforeach
|
2023-08-30 09:26:46 +00:00
|
|
|
@foreach ($swarmDockers as $swarmDocker)
|
2023-09-05 10:14:31 +00:00
|
|
|
<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-08-30 09:26:46 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
2023-09-05 10:14:31 +00:00
|
|
|
@endforeach
|
2023-07-26 11:23:47 +00:00
|
|
|
</div>
|
|
|
|
@endif
|
2023-09-05 10:14:31 +00:00
|
|
|
@if ($current_step === 'existing-postgresql')
|
2023-09-11 11:52:54 +00:00
|
|
|
<form wire:submit.prevent='addExistingPostgresql' class="flex items-end gap-2">
|
|
|
|
<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>
|