diff --git a/app/Http/Controllers/VitoSettingController.php b/app/Http/Controllers/VitoSettingController.php index 14987eed..0538a0ff 100644 --- a/app/Http/Controllers/VitoSettingController.php +++ b/app/Http/Controllers/VitoSettingController.php @@ -109,7 +109,9 @@ public function import(Request $request): RedirectResponse // Replace files File::move($extractPath.'/database.sqlite', storage_path('database.sqlite')); - File::copy($extractPath.'/.env', base_path('.env')); + if (File::exists($extractPath.'/.env')) { + File::move($extractPath.'/.env', base_path('.env')); + } File::move($extractPath.'/ssh-public.key', storage_path('ssh-public.key')); File::move($extractPath.'/ssh-private.pem', storage_path('ssh-private.pem')); File::moveDirectory($extractPath.'/key-pairs', storage_path('app/key-pairs')); diff --git a/app/Plugins/Plugins.php b/app/Plugins/Plugins.php index b8a4e0d2..c30910c4 100644 --- a/app/Plugins/Plugins.php +++ b/app/Plugins/Plugins.php @@ -54,7 +54,7 @@ public function install(string $url, ?string $branch = null, ?string $tag = null $command .= " --tag $tag"; } $command .= ' --single-branch'; - $result = Process::timeout(0)->run($command); + $result = Process::env(['PATH' => dirname(git_path())])->timeout(0)->run($command); $output = $result->output(); if ($result->failed()) { diff --git a/app/Support/helpers.php b/app/Support/helpers.php index 3f6fbbae..103a9cd8 100755 --- a/app/Support/helpers.php +++ b/app/Support/helpers.php @@ -265,3 +265,15 @@ function php_path(): ?string return array_find($paths, fn ($path) => is_executable($path)); } + +function git_path(): ?string +{ + $paths = [ + '/usr/local/bin/git', + '/usr/bin/git', + '/opt/homebrew/bin/git', + trim((string) shell_exec('which git')), + ]; + + return array_find($paths, fn ($path) => is_executable($path)); +} diff --git a/config/log-viewer.php b/config/log-viewer.php index c1053b72..a01e01eb 100644 --- a/config/log-viewer.php +++ b/config/log-viewer.php @@ -87,7 +87,6 @@ 'middleware' => [ 'web', - \Opcodes\LogViewer\Http\Middleware\AuthorizeLogViewer::class, 'auth', \App\Http\Middleware\MustBeAdminMiddleware::class, ], @@ -103,7 +102,8 @@ 'api_middleware' => [ \Opcodes\LogViewer\Http\Middleware\EnsureFrontendRequestsAreStateful::class, - \Opcodes\LogViewer\Http\Middleware\AuthorizeLogViewer::class, + 'auth', + \App\Http\Middleware\MustBeAdminMiddleware::class, ], 'api_stateful_domains' => env('LOG_VIEWER_API_STATEFUL_DOMAINS') ? explode(',', env('LOG_VIEWER_API_STATEFUL_DOMAINS')) : null, diff --git a/docker/Dockerfile b/docker/Dockerfile index fbdc7d81..724f8226 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -8,7 +8,7 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get upgrade -y && apt-get autoremove -y # requirements -RUN apt-get install -y software-properties-common curl zip unzip gcc nginx \ +RUN apt-get install -y software-properties-common curl zip unzip gcc nginx git \ cron gnupg gosu curl ca-certificates zip unzip supervisor libcap2-bin libpng-dev \ dnsutils librsvg2-bin fswatch wget openssh-client \ && add-apt-repository ppa:ondrej/php -y \ diff --git a/docker/nginx.conf b/docker/nginx.conf index 6eea9eb0..74853c28 100644 --- a/docker/nginx.conf +++ b/docker/nginx.conf @@ -7,6 +7,8 @@ server { add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; + client_max_body_size 100M; + index index.php; charset utf-8;