stockholm/lass/2configs/websites/lassulus.nix
2022-05-29 20:12:38 +02:00

89 lines
2.2 KiB
Nix

{ config, pkgs, lib, ... }:
with lib;
let
inherit (import <stockholm/lib>)
genid_uint31
;
in {
imports = [
./default.nix
../git.nix
./ref.ptkk.de
];
security.acme = {
email = "acme@lassul.us";
acceptTerms = true;
certs."lassul.us" = {
group = "lasscert";
};
};
users.groups.lasscert.members = [
"dovecot2"
"exim"
"nginx"
];
services.nginx.virtualHosts."lassul.us" = {
addSSL = true;
enableACME = true;
default = true;
locations."/".extraConfig = ''
root /srv/http/lassul.us;
'';
locations."= /retiolum-hosts.tar.bz2".extraConfig = ''
alias ${config.krebs.tinc.retiolum.hostsArchive};
'';
locations."= /hosts".extraConfig = ''
alias ${pkgs.krebs-hosts_combined};
'';
locations."= /retiolum.hosts".extraConfig = ''
alias ${pkgs.krebs-hosts-retiolum};
'';
locations."= /wireguard-key".extraConfig = ''
alias ${pkgs.writeText "prism.wg" config.krebs.hosts.prism.nets.wiregrill.wireguard.pubkey};
'';
locations."= /krebspage".extraConfig = ''
default_type "text/html";
alias ${pkgs.krebspage}/index.html;
'';
locations."= /init".extraConfig = let
initscript = pkgs.init.override {
pubkey = config.krebs.users.lass.pubkey;
};
in ''
alias ${initscript}/bin/init;
'';
locations."= /blue.pub".extraConfig = ''
alias ${pkgs.writeText "pub" config.krebs.users.lass-blue.pubkey};
'';
locations."= /ssh.pub".extraConfig = ''
alias ${pkgs.writeText "pub" config.krebs.users.lass-yubikey.pubkey};
'';
locations."= /gpg.pub".extraConfig = ''
alias ${pkgs.writeText "pub" config.krebs.users.lass-yubikey.pgp.pubkeys.default};
'';
};
security.acme.certs."cgit.lassul.us" = {
email = "lassulus@lassul.us";
webroot = "/var/lib/acme/acme-challenge";
group = "nginx";
};
services.nginx.virtualHosts.cgit = {
serverName = "cgit.lassul.us";
addSSL = true;
sslCertificate = "/var/lib/acme/cgit.lassul.us/fullchain.pem";
sslCertificateKey = "/var/lib/acme/cgit.lassul.us/key.pem";
locations."/.well-known/acme-challenge".extraConfig = ''
root /var/lib/acme/acme-challenge;
'';
};
}