Files
puppet-frankenphp/manifests/vhost.pp
2025-10-28 14:35:40 +01:00

41 lines
1.2 KiB
Puppet

# modules/frankenphp/manifests/vhost.pp
define frankenphp::vhost (
String $server_name,
Stdlib::Absolutepath $root_dir = '/var/www/default',
Optional[String] $proxy_target = undef,
Optional[String] $fpm_socket = undef,
Enum['php_server', 'proxy', 'fastcgi'] $mode = 'php_server',
String $extra_config = '',
Enum['present', 'absent'] $ensure = 'present',
String $order = '10',
) {
$caddyfile_path = $frankenphp::params::caddyfile_path
# Valider que les bons paramètres sont passés
# if $mode == 'php_server' and $root_dir == '/var/www/default' {
# }
if $mode == 'proxy' and !$proxy_target {
fail('Le mode proxy nécessite un $proxy_target (ex: "localhost:9001")')
}
if $mode == 'fastcgi' and !$fpm_socket {
fail('Le mode fastcgi nécessite un $fpm_socket (ex: "unix//run/php/php.sock")')
}
$vhost_content = epp('frankenphp/vhost.epp', {
server_name => $server_name,
root_dir => $root_dir,
mode => $mode,
proxy_target => $proxy_target,
fpm_socket => $fpm_socket,
extra_config => $extra_config,
})
concat::fragment { "caddyfile-vhost-${server_name}":
target => $caddyfile_path,
order => $order,
content => $vhost_content,
}
}