45 lines
1.4 KiB
PHP
45 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Providers;
|
|
|
|
use App\Provisioning\PipelineRegistry;
|
|
use App\Services\Dns\HetznerDnsClient;
|
|
use App\Services\Dns\HttpHetznerDnsClient;
|
|
use App\Services\Proxmox\HttpProxmoxClient;
|
|
use App\Services\Proxmox\ProxmoxClient;
|
|
use App\Services\Ssh\PhpseclibRemoteShell;
|
|
use App\Services\Ssh\RemoteShell;
|
|
use App\Services\Traefik\SshTraefikWriter;
|
|
use App\Services\Traefik\TraefikWriter;
|
|
use App\Services\Wireguard\LocalWireguardHub;
|
|
use App\Services\Wireguard\WireguardHub;
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
class AppServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* Register any application services.
|
|
*/
|
|
public function register(): void
|
|
{
|
|
$this->app->singleton(PipelineRegistry::class, fn () => new PipelineRegistry(
|
|
config('provisioning.pipelines', []),
|
|
));
|
|
|
|
// Real I/O implementations; tests swap in fakes via app()->instance().
|
|
$this->app->bind(RemoteShell::class, PhpseclibRemoteShell::class);
|
|
$this->app->bind(WireguardHub::class, LocalWireguardHub::class);
|
|
$this->app->bind(ProxmoxClient::class, HttpProxmoxClient::class);
|
|
$this->app->bind(HetznerDnsClient::class, HttpHetznerDnsClient::class);
|
|
$this->app->bind(TraefikWriter::class, SshTraefikWriter::class);
|
|
}
|
|
|
|
/**
|
|
* Bootstrap any application services.
|
|
*/
|
|
public function boot(): void
|
|
{
|
|
//
|
|
}
|
|
}
|