Sites statique #5
2 changed files with 42 additions and 7 deletions
15
hosts/hackens-org/2048.nix
Normal file
15
hosts/hackens-org/2048.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
staticWebsites.sites = {
|
||||||
|
"2048" = {
|
||||||
|
root = pkgs.fetchFromGitHub {
|
||||||
|
owner = "hackEns";
|
||||||
|
repo = "2048NdS";
|
||||||
|
rev = "1df6db154ca22c380eb52844c7a6a7f888fb5610";
|
||||||
|
sha256 = "087471kpbpcg5920wy6fgcx6jz613zbyy0jn5iiimwjk1im1wa4q";
|
||||||
|
};
|
||||||
|
hostname = config.my.subZone;
|
||||||
|
location = "/2048";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config , ... }:
|
{ lib, config , ... }:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
eachSite = config.services.staticWebsites;
|
eachSite = config.services.staticWebsites.sites;
|
||||||
website = { name, ... }: {
|
website = { name, ... }: {
|
||||||
options = {
|
options = {
|
||||||
root = mkOption {
|
root = mkOption {
|
||||||
|
@ -14,6 +14,11 @@ let
|
||||||
default = name;
|
default = name;
|
||||||
description = "Website hostname";
|
description = "Website hostname";
|
||||||
};
|
};
|
||||||
|
location = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
description = "Add a location rule if not null";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
@ -31,12 +36,27 @@ in
|
||||||
config = mkIf (eachSite != {}) {
|
config = mkIf (eachSite != {}) {
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
virtualHosts = mapAttrs ( hostName: conf: {
|
virtualHosts = mapAttrs ( hostName: conf: (mkMerge [
|
||||||
|
{
|
||||||
serverName = conf.hostname;
|
serverName = conf.hostname;
|
||||||
root = conf.root;
|
|
||||||
forceSSL = if debug then false else true;
|
forceSSL = if debug then false else true;
|
||||||
enableACME = if debug then false else true;
|
enableACME = if debug then false else true;
|
||||||
}) eachSite;
|
}
|
||||||
|
|
||||||
|
(mkIf (conf.location == null) {
|
||||||
|
root = conf.root;
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf (conf.location != null) {
|
||||||
|
location = {
|
||||||
|
"~ ^${conf.location}" = {
|
||||||
|
alias = conf.root;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
])
|
||||||
|
) eachSite;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue