reverse proxy basics (#609)

This commit is contained in:
Saeed Vaziry
2025-06-10 00:14:05 +02:00
committed by GitHub
parent 4e6491a080
commit 09a9735962
7 changed files with 101 additions and 33 deletions

View File

@ -13,6 +13,7 @@
use App\Notifications\SiteInstallationSucceed;
use App\ValidationRules\DomainRule;
use Exception;
use Illuminate\Database\Query\Builder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
@ -38,6 +39,7 @@ public function create(Server $server, array $input): Site
'type' => $input['type'],
'domain' => $input['domain'],
'aliases' => $input['aliases'] ?? [],
'port' => $input['port'] ?? null,
'user' => $user,
'path' => '/home/'.$user.'/'.$input['domain'],
'status' => SiteStatus::INSTALLING,
@ -132,6 +134,14 @@ public static function rules(Server $server, array $input): array
Rule::unique('sites', 'user')->where('server_id', $server->id),
Rule::notIn($server->getSshUsers()),
],
'port' => [
'nullable',
'integer',
'min:1',
'max:65535',
Rule::unique('sites', 'port')
->where(fn (Builder $query) => $query->where('server_id', $server->id)),
],
];
return array_merge($rules, self::typeRules($server, $input));

View File

@ -0,0 +1,30 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Spatie\RouteAttributes\Attributes\Get;
use Spatie\RouteAttributes\Attributes\Middleware;
use Spatie\RouteAttributes\Attributes\Prefix;
#[Prefix('search')]
#[Middleware(['auth'])]
class SearchController extends Controller
{
#[Get('/', name: 'search')]
public function search(Request $request): JsonResponse
{
$this->validate($request, [
'query' => 'required|string|min:3',
]);
$query = $request->input('query');
$results = [
'data' => [], // Replace with actual search results
];
return response()->json($results);
}
}