Deploy Ladill Hosting / deploy (push) Failing after 17s
Shared web hosting extracted from the platform monolith, with CI deploy to /var/www/ladill-hosting matching Bird/Domains/Email. Co-authored-by: Cursor <cursoragent@cursor.com>
80 lines
2.4 KiB
PHP
80 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Hosting\Contracts;
|
|
|
|
use App\Models\HostedDatabase;
|
|
use App\Models\HostedSite;
|
|
use App\Models\HostingAccount;
|
|
|
|
interface PanelRuntimeInterface
|
|
{
|
|
public function key(): string;
|
|
|
|
public function label(): string;
|
|
|
|
/**
|
|
* @return array<int, string>
|
|
*/
|
|
public function capabilities(): array;
|
|
|
|
public function supports(string $capability): bool;
|
|
|
|
/**
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function executeCommand(HostingAccount $account, string $command, int $timeout = 600): array;
|
|
|
|
/**
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function executeTerminalCommand(HostingAccount $account, string $command, string $workingDirectory, int $timeout = 300): array;
|
|
|
|
/**
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function executeCommandAsRoot(HostingAccount $account, string $command): array;
|
|
|
|
/**
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function getUsageStats(HostingAccount $account): array;
|
|
|
|
public function changePassword(HostingAccount $account, string $newPassword): bool;
|
|
|
|
public function installTeamMemberSshKey(HostingAccount $account, string $marker, string $publicKey): void;
|
|
|
|
public function removeTeamMemberSshKey(HostingAccount $account, string $marker): void;
|
|
|
|
/**
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function createDatabase(HostedDatabase $database, string $password): array;
|
|
|
|
public function deleteDatabase(HostedDatabase $database): bool;
|
|
|
|
public function changeDatabasePassword(HostedDatabase $database, string $newPassword): bool;
|
|
|
|
/**
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function addSite(HostedSite $site): array;
|
|
|
|
public function removeSite(HostedSite $site): bool;
|
|
|
|
public function requestLetsEncryptCertificate(HostedSite $site): bool;
|
|
|
|
public function ensurePhpFpmPool(HostingAccount $account): void;
|
|
|
|
public function setPhpVersion(HostedSite $site, string $version): bool;
|
|
|
|
public function changeAccountPhpVersion(HostingAccount $account, string $version): bool;
|
|
|
|
public function prepareDirectoryForUser(HostingAccount $account, string $path): void;
|
|
|
|
public function setWebServerGroupOwnership(HostingAccount $account, string $path): void;
|
|
|
|
public function removeAppService(HostedSite $site): bool;
|
|
|
|
public function restoreDefaultSiteConfig(HostingAccount $account, HostedSite $site, string $docRoot): void;
|
|
}
|