wip
This commit is contained in:
parent
982f5beaf5
commit
931664c0c0
@ -3,12 +3,14 @@
|
|||||||
namespace App\Actions\Proxy;
|
namespace App\Actions\Proxy;
|
||||||
|
|
||||||
use App\Enums\ActivityTypes;
|
use App\Enums\ActivityTypes;
|
||||||
|
use App\Enums\ProxyTypes;
|
||||||
use App\Models\Server;
|
use App\Models\Server;
|
||||||
|
use Spatie\Activitylog\Models\Activity;
|
||||||
use Symfony\Component\Yaml\Yaml;
|
use Symfony\Component\Yaml\Yaml;
|
||||||
|
|
||||||
class InstallProxy
|
class InstallProxy
|
||||||
{
|
{
|
||||||
public function __invoke(Server $server)
|
public function __invoke(Server $server): Activity
|
||||||
{
|
{
|
||||||
$docker_compose_yml_base64 = base64_encode(
|
$docker_compose_yml_base64 = base64_encode(
|
||||||
$this->getDockerComposeContents()
|
$this->getDockerComposeContents()
|
||||||
@ -30,6 +32,10 @@ public function __invoke(Server $server)
|
|||||||
'docker ps',
|
'docker ps',
|
||||||
], $server, ActivityTypes::INLINE->value);
|
], $server, ActivityTypes::INLINE->value);
|
||||||
|
|
||||||
|
// Persist to Database
|
||||||
|
$server->extra_attributes->proxy = ProxyTypes::TRAEFIK_V2->value;
|
||||||
|
$server->save();
|
||||||
|
|
||||||
return $activity;
|
return $activity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,8 +53,6 @@ protected function getComposeData(): array
|
|||||||
? config('proxy.project_path_on_host') . '/_testing_hosts/host_2_proxy'
|
? config('proxy.project_path_on_host') . '/_testing_hosts/host_2_proxy'
|
||||||
: '.';
|
: '.';
|
||||||
|
|
||||||
ray($cwd);
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
"version" => "3.7",
|
"version" => "3.7",
|
||||||
"networks" => [
|
"networks" => [
|
||||||
|
@ -13,6 +13,11 @@ class Proxy extends Component
|
|||||||
|
|
||||||
protected string $selectedProxy = '';
|
protected string $selectedProxy = '';
|
||||||
|
|
||||||
|
public $is_proxy_installed;
|
||||||
|
|
||||||
|
public $is_check_proxy_complete = false;
|
||||||
|
public $is_proxy_settings_in_sync = false;
|
||||||
|
|
||||||
public function mount(Server $server)
|
public function mount(Server $server)
|
||||||
{
|
{
|
||||||
$this->server = $server;
|
$this->server = $server;
|
||||||
@ -25,6 +30,14 @@ public function runInstallProxy()
|
|||||||
$this->emit('newMonitorActivity', $activity->id);
|
$this->emit('newMonitorActivity', $activity->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function checkProxySettingsInSync()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
$this->is_check_proxy_complete = true;
|
||||||
|
$this->is_proxy_settings_in_sync = true;
|
||||||
|
}
|
||||||
|
|
||||||
public function render()
|
public function render()
|
||||||
{
|
{
|
||||||
return view('livewire.server.proxy');
|
return view('livewire.server.proxy');
|
||||||
|
@ -5,4 +5,9 @@ RUN apt-get -y autoremove \
|
|||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
|
||||||
|
|
||||||
|
RUN echo "alias ll='ls -al'" >> /etc/bash.bashrc
|
||||||
|
RUN echo "alias a='php artisan'" >> /etc/bash.bashrc
|
||||||
|
RUN echo "alias mfs='php artisan migrate:fresh --seed'" >> /etc/bash.bashrc
|
||||||
|
RUN echo "alias cda='composer dump-autoload'" >> /etc/bash.bashrc
|
||||||
|
|
||||||
# COPY --chmod=755 docker/dev-ssu/etc/s6-overlay/ /etc/s6-overlay/
|
# COPY --chmod=755 docker/dev-ssu/etc/s6-overlay/ /etc/s6-overlay/
|
||||||
|
12
resources/views/livewire/server/_proxy/loading.blade.php
Normal file
12
resources/views/livewire/server/_proxy/loading.blade.php
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<div class="absolute w-full h-full bg-sky-600 rounded-lg">
|
||||||
|
<div class="w-full mt-32 text-center animate-pulse">
|
||||||
|
Loading
|
||||||
|
</div>
|
||||||
|
<div class="mt-20 w-full flex justify-center">
|
||||||
|
<span class="relative flex h-28 w-28">
|
||||||
|
<span
|
||||||
|
class="animate-ping absolute inline-flex h-full w-full rounded-full bg-sky-400 opacity-75"></span>
|
||||||
|
<span class="relative inline-flex rounded-full h-28 w-28 bg-sky-500"></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
48
resources/views/livewire/server/_proxy/options.blade.php
Normal file
48
resources/views/livewire/server/_proxy/options.blade.php
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
|
||||||
|
<div class="mt-4">
|
||||||
|
<label>
|
||||||
|
<div>Edit config file</div>
|
||||||
|
<textarea cols="45" rows="25"></textarea>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-4">
|
||||||
|
<label>
|
||||||
|
Enable dashboard?
|
||||||
|
<input type="checkbox" />
|
||||||
|
(auto-save)
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-4">
|
||||||
|
<a href="#">Visit Dashboard</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-4">
|
||||||
|
<label>
|
||||||
|
<div>Setup hostname for Dashboard</div>
|
||||||
|
<div class="mt-2"></div>
|
||||||
|
<label>
|
||||||
|
<div>Hostname <span class="text-xs"> Eg: dashboard.example.com </span></div>
|
||||||
|
<input type="text" />
|
||||||
|
</label>
|
||||||
|
<button>Update</button>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-4">
|
||||||
|
<label>
|
||||||
|
<div>Dashboard credentials</div>
|
||||||
|
<div class="mt-2"></div>
|
||||||
|
<label>
|
||||||
|
Username
|
||||||
|
<input type="text" />
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
Password
|
||||||
|
<input type="password" />
|
||||||
|
</label>
|
||||||
|
<button>Update</button>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
@ -0,0 +1,5 @@
|
|||||||
|
<div class="absolute w-full h-full bg-orange-700 rounded-lg">
|
||||||
|
<div class="w-full mt-32 text-center animate-pulse">
|
||||||
|
Problems!
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -2,20 +2,29 @@
|
|||||||
<h2> Proxy </h2>
|
<h2> Proxy </h2>
|
||||||
|
|
||||||
@if($this->server->extra_attributes->proxy)
|
@if($this->server->extra_attributes->proxy)
|
||||||
<div class="mt-12">
|
<div class="mt-6">
|
||||||
<div>
|
<div>
|
||||||
Proxy type: {{ $this->server->extra_attributes->proxy }}
|
Proxy type: {{ $this->server->extra_attributes->proxy }}
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-12"> Features in W11.</div>
|
|
||||||
<ul>
|
<div id="proxy_options" x-init="$wire.checkProxySettingsInSync()" class="relative w-fit">
|
||||||
<li>Edit config file</li>
|
|
||||||
<li>Enable dashboard (blocking port by firewall)</li>
|
{{-- Proxy is being checked against DB information --}}
|
||||||
<li>Dashboard access - login/password</li>
|
@if(! $this->is_check_proxy_complete)
|
||||||
<li>Setup host for Traefik Dashboard</li>
|
@include('livewire.server._proxy.loading')
|
||||||
<li>Visit (nav to traefik dashboard)</li>
|
@endif
|
||||||
</ul>
|
|
||||||
|
@if($this->is_check_proxy_complete && (! $this->is_proxy_settings_in_sync) )
|
||||||
|
@include('livewire.server._proxy.problems')
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@include('livewire.server._proxy.options')
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
|
{{-- There is no Proxy installed --}}
|
||||||
|
|
||||||
No proxy installed.
|
No proxy installed.
|
||||||
<select wire:model="selectedProxy">
|
<select wire:model="selectedProxy">
|
||||||
<option value="{{ \App\Enums\ProxyTypes::TRAEFIK_V2 }}">
|
<option value="{{ \App\Enums\ProxyTypes::TRAEFIK_V2 }}">
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
<p>Network: {{ data_get($docker, 'network') }}</p>
|
<p>Network: {{ data_get($docker, 'network') }}</p>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
<h1> {{ $server->name }}</h1>
|
|
||||||
|
|
||||||
<livewire:server.proxy :server="$server"/>
|
<livewire:server.proxy :server="$server"/>
|
||||||
</x-layout>
|
</x-layout>
|
||||||
|
@ -35,6 +35,9 @@ function schedule-run {
|
|||||||
function reset-db {
|
function reset-db {
|
||||||
bash vendor/bin/spin exec -u webuser coolify php artisan migrate:fresh --seed
|
bash vendor/bin/spin exec -u webuser coolify php artisan migrate:fresh --seed
|
||||||
}
|
}
|
||||||
|
function mfs {
|
||||||
|
reset-db
|
||||||
|
}
|
||||||
function coolify {
|
function coolify {
|
||||||
bash vendor/bin/spin exec -u webuser coolify bash
|
bash vendor/bin/spin exec -u webuser coolify bash
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user