Add Caddy Server Support Alongside Nginx (#600)

* added enum

* add config for caddy

* add svg icon

* add caddy service class

* wip

* install caddy

* create base Caddyfile with common snippets

* Create a systemd service to run Caddy in the background.

* create uninstall file

* wip

* create path

* create vhost

* get vhost

* delete site

* add php version change file

* add custom ssl

* create redirect file

* add vhost for caddy site & load balancer

* update svg

* fix caddy icon

* fix style

* add systemctl reload method

* Reload systemd after modifying the Caddy service file.

* add caddy

* added tests

* format with pint

* prevent multiple web server installations

* added error log & access log

(cherry picked from commit 2318e1b1df)
This commit is contained in:
Rasel Islam Rafi
2025-05-29 15:25:36 +06:00
committed by Saeed Vaziry
parent 61506ff70e
commit 984c1f3a8e
24 changed files with 590 additions and 18 deletions

View File

@ -26,6 +26,7 @@
'webservers' => [
\App\Enums\Webserver::NONE,
\App\Enums\Webserver::NGINX,
\App\Enums\Webserver::CADDY,
],
'php_versions' => [
\App\Enums\PHP::NONE,
@ -180,6 +181,7 @@
*/
'service_types' => [
'nginx' => 'webserver',
'caddy' => 'webserver',
'mysql' => 'database',
'mariadb' => 'database',
'postgresql' => 'database',
@ -193,6 +195,7 @@
],
'service_handlers' => [
'nginx' => \App\SSH\Services\Webserver\Nginx::class,
'caddy' => \App\SSH\Services\Webserver\Caddy::class,
'mysql' => \App\SSH\Services\Database\Mysql::class,
'mariadb' => \App\SSH\Services\Database\Mariadb::class,
'postgresql' => \App\SSH\Services\Database\Postgresql::class,
@ -208,6 +211,9 @@
'nginx' => [
'latest',
],
'caddy' => [
'latest',
],
'mysql' => [
'5.7',
'8.0',
@ -280,6 +286,17 @@
'latest' => 'nginx',
],
],
'caddy' => [
\App\Enums\OperatingSystem::UBUNTU20 => [
'latest' => 'caddy',
],
\App\Enums\OperatingSystem::UBUNTU22 => [
'latest' => 'caddy',
],
\App\Enums\OperatingSystem::UBUNTU24 => [
'latest' => 'caddy',
],
],
'mysql' => [
\App\Enums\OperatingSystem::UBUNTU20 => [
'5.7' => 'mysql',