Nix valet working
This commit is contained in:
parent
065a363242
commit
d336c8bf9c
@ -9,7 +9,7 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../common-config.nix
|
../common-config.nix
|
||||||
# ../../modules/system/nix-valet.nix
|
../../modules/system/nix-valet.nix
|
||||||
../../modules/system/device-management/logitech.nix
|
../../modules/system/device-management/logitech.nix
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
@ -11,18 +11,7 @@
|
|||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
customCaddy = pkgs.xcaddy {
|
|
||||||
pname = "caddy-frankenphp";
|
|
||||||
version = "2.7.6";
|
|
||||||
|
|
||||||
subPackages = [ "cmd/caddy" ];
|
|
||||||
|
|
||||||
plugins = [
|
|
||||||
"github.com/dunglas/frankenphp/caddy"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
# Enable dnsmasq
|
# Enable dnsmasq
|
||||||
@ -47,44 +36,92 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Enable PHP-FPM
|
# Enable PHP-FPM
|
||||||
phpfpm = {
|
# phpfpm = {
|
||||||
pools.www = {
|
# pools.www = {
|
||||||
user = "javi";
|
# user = "javi";
|
||||||
group = "users";
|
# group = "users";
|
||||||
settings = {
|
# settings = {
|
||||||
"listen.owner" = "javi";
|
# "listen.owner" = "javi";
|
||||||
"listen.group" = "users";
|
# "listen.group" = "users";
|
||||||
"listen.mode" = "0660";
|
# "listen.mode" = "0660";
|
||||||
"pm" = "dynamic";
|
# "pm" = "dynamic";
|
||||||
"pm.max_children" = 32;
|
# "pm.max_children" = 32;
|
||||||
"pm.start_servers" = 2;
|
# "pm.start_servers" = 2;
|
||||||
"pm.min_spare_servers" = 2;
|
# "pm.min_spare_servers" = 2;
|
||||||
"pm.max_spare_servers" = 4;
|
# "pm.max_spare_servers" = 4;
|
||||||
"pm.max_requests" = 500;
|
# "pm.max_requests" = 500;
|
||||||
};
|
# };
|
||||||
phpEnv."PATH" = lib.makeBinPath [ pkgs.php ];
|
# phpEnv."PATH" = lib.makeBinPath [ pkgs.php ];
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
|
|
||||||
# Enable Caddy
|
# Enable Caddy
|
||||||
caddy = {
|
caddy = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = customCaddy;
|
package = pkgs.frankenphp;
|
||||||
globalConfig = ''
|
globalConfig = ''
|
||||||
auto_https off
|
auto_https off
|
||||||
frankenphp
|
frankenphp
|
||||||
|
debug
|
||||||
order php_server before file_server
|
order php_server before file_server
|
||||||
'';
|
'';
|
||||||
|
/*
|
||||||
|
WORKING CONFIG
|
||||||
|
map {host} {pname} {
|
||||||
|
~^(.+)\.test$ $1
|
||||||
|
default "unknown"
|
||||||
|
}
|
||||||
|
root * /home/javi/projects/{pname}/public
|
||||||
|
|
||||||
|
# Add file server directive with browse enabled for debugging
|
||||||
|
file_server browse
|
||||||
|
|
||||||
|
# Or for PHP apps, add try_files
|
||||||
|
try_files {path} {path}/ /index.php?{query}
|
||||||
|
|
||||||
|
php_server
|
||||||
|
*/
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
# Specific subdomain first (more specific routes come first)
|
# Specific subdomain first (more specific routes come first)
|
||||||
http://caddytest.test {
|
http://caddytest.test {
|
||||||
respond "We in caddyland"
|
respond "fuck"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Wildcard for other .test domains
|
http://*.test, http://*.*.test {
|
||||||
http://*.test {
|
map {host} {project_dir} {
|
||||||
root * /home/javi/projects/{labels.1}/public
|
~^(.+)\.test$ $1
|
||||||
|
default "unknown"
|
||||||
|
}
|
||||||
|
|
||||||
|
vars base_path "/home/javi/projects/{project_dir}"
|
||||||
|
|
||||||
|
@laravel file {
|
||||||
|
root {vars.base_path}/public
|
||||||
|
try_files index.php
|
||||||
|
}
|
||||||
|
|
||||||
|
@jigsaw file {
|
||||||
|
root {vars.base_path}/build_local
|
||||||
|
try_files index.html
|
||||||
|
}
|
||||||
|
|
||||||
|
handle @laravel {
|
||||||
|
root * {vars.base_path}/public
|
||||||
php_server
|
php_server
|
||||||
|
file_server
|
||||||
|
|
||||||
|
try_files {path} {path}/ /index.php?{query}
|
||||||
|
}
|
||||||
|
|
||||||
|
handle @jigsaw {
|
||||||
|
root * {vars.base_path}/build_local
|
||||||
|
try_files {path} {path}/ /index.html
|
||||||
|
file_server
|
||||||
|
}
|
||||||
|
|
||||||
|
handle {
|
||||||
|
respond "Unknown project type"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -132,6 +169,11 @@ in
|
|||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
User = lib.mkForce "javi";
|
User = lib.mkForce "javi";
|
||||||
Group = lib.mkForce "users";
|
Group = lib.mkForce "users";
|
||||||
|
|
||||||
|
ProtectHome = lib.mkForce false; # This is key!
|
||||||
|
ProtectSystem = lib.mkForce false;
|
||||||
|
PrivateTmp = lib.mkForce false;
|
||||||
|
|
||||||
# More comprehensive capabilities
|
# More comprehensive capabilities
|
||||||
AmbientCapabilities = [
|
AmbientCapabilities = [
|
||||||
"CAP_NET_BIND_SERVICE"
|
"CAP_NET_BIND_SERVICE"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user