stockholm/lass/2configs/websites/lassulus.nix

109 lines
2.7 KiB
Nix
Raw Normal View History

{ config, pkgs, lib, ... }:
with lib;
let
2016-10-20 19:40:11 +00:00
inherit (import <stockholm/lib>)
2018-12-03 08:47:35 +00:00
genid_uint31
;
in {
imports = [
2017-08-01 18:47:34 +00:00
./default.nix
../git.nix
];
security.acme = {
2020-04-21 16:14:52 +00:00
email = "acme@lassul.us";
2020-04-21 16:27:06 +00:00
acceptTerms = true;
certs."lassul.us" = {
allowKeysForGroup = true;
group = "lasscert";
};
};
krebs.tinc_graphs.enable = true;
users.groups.lasscert.members = [
"dovecot2"
"ejabberd"
"exim"
"nginx"
];
2016-12-26 13:18:08 +00:00
services.nginx.virtualHosts."lassul.us" = {
2017-10-03 21:51:11 +00:00
addSSL = true;
2017-09-17 22:04:06 +00:00
enableACME = true;
2016-12-26 13:18:08 +00:00
locations."/".extraConfig = ''
root /srv/http/lassul.us;
'';
locations."= /retiolum-hosts.tar.bz2".extraConfig = ''
alias ${config.krebs.tinc.retiolum.hostsArchive};
'';
2019-10-10 12:27:52 +00:00
locations."= /hosts".extraConfig = ''
alias ${pkgs.krebs-hosts_combined};
'';
2017-05-09 20:45:49 +00:00
locations."= /retiolum.hosts".extraConfig = ''
2019-01-31 13:40:57 +00:00
alias ${pkgs.krebs-hosts-retiolum};
2017-05-09 20:45:49 +00:00
'';
2018-12-25 13:28:41 +00:00
locations."= /wireguard-key".extraConfig = ''
alias ${pkgs.writeText "prism.wg" config.krebs.hosts.prism.nets.wiregrill.wireguard.pubkey};
'';
2019-10-10 12:27:52 +00:00
locations."/tinc/".extraConfig = ''
2020-01-11 19:51:33 +00:00
index index.html;
alias ${config.krebs.tinc_graphs.workingDir}/external/;
2016-12-26 13:18:08 +00:00
'';
2019-10-10 12:27:52 +00:00
locations."= /krebspage".extraConfig = ''
2018-09-09 10:07:13 +00:00
default_type "text/html";
alias ${pkgs.krebspage}/index.html;
'';
2019-10-10 12:27:52 +00:00
locations."= /init".extraConfig = let
2017-01-17 17:44:08 +00:00
initscript = pkgs.init.override {
pubkey = config.krebs.users.lass.pubkey;
};
in ''
alias ${initscript}/bin/init;
2017-01-17 15:24:36 +00:00
'';
2020-01-11 19:51:53 +00:00
locations."= /blue.pub".extraConfig = ''
2017-11-12 12:22:34 +00:00
alias ${pkgs.writeText "pub" config.krebs.users.lass.pubkey};
'';
2020-01-11 19:51:53 +00:00
locations."= /mors.pub".extraConfig = ''
alias ${pkgs.writeText "pub" config.krebs.users.lass-mors.pubkey};
'';
2020-09-27 13:43:33 +00:00
locations."= /yubi.pub".extraConfig = ''
alias ${pkgs.writeText "pub" config.krebs.users.lass-yubikey.pubkey};
'';
};
2017-11-12 12:23:06 +00:00
security.acme.certs."cgit.lassul.us" = {
2017-12-13 17:30:34 +00:00
email = "lassulus@lassul.us";
webroot = "/var/lib/acme/acme-challenge";
2017-11-12 12:23:06 +00:00
group = "nginx";
2017-12-13 17:30:34 +00:00
user = "nginx";
2017-11-12 12:23:06 +00:00
};
2016-12-26 13:18:08 +00:00
services.nginx.virtualHosts.cgit = {
serverName = "cgit.lassul.us";
2017-10-03 21:51:11 +00:00
addSSL = true;
2017-11-12 12:23:06 +00:00
sslCertificate = "/var/lib/acme/cgit.lassul.us/fullchain.pem";
sslCertificateKey = "/var/lib/acme/cgit.lassul.us/key.pem";
2017-12-13 17:30:34 +00:00
locations."/.well-known/acme-challenge".extraConfig = ''
root /var/lib/acme/acme-challenge;
'';
};
users.users.blog = {
2018-12-03 08:47:35 +00:00
uid = genid_uint31 "blog";
group = "nginx";
description = "lassul.us blog deployment";
home = "/srv/http/lassul.us";
useDefaultShell = true;
createHome = true;
openssh.authorizedKeys.keys = with config.krebs.users; [
lass.pubkey
lass-mors.pubkey
];
};
}