Wire the offline-first todo app (github: local /home/alex/code/todo) into manatee, following the app-module convention: - flake input `todo` (local git checkout for now; gitea URL commented) with nixpkgs following. - hosts/manatee/modules/todo: mod.todo option importing the app's NixOS module; runs on 127.0.0.1:8091, secureCookies, token from agenix; the host owns the nginx vhost (todo.ppp.pm, forceSSL + useACMEHost) and homepage card. - mod.todo.enable = true. - certs: todo.ppp.pm DNS-01 cert via hetzner. - home-assistant DNS updater: add `todo` to the Hetzner subdomain list. - secrets: todo-token.age (encrypted access token) + recipients in secrets.nix.
84 lines
2.0 KiB
Nix
84 lines
2.0 KiB
Nix
{ config, ... }:
|
|
{
|
|
security.acme = {
|
|
acceptTerms = true;
|
|
|
|
defaults = {
|
|
email = "acme@ppp.pm";
|
|
};
|
|
|
|
certs = {
|
|
"ha.ppp.pm" = {
|
|
dnsProvider = "hetzner";
|
|
environmentFile = config.age.secrets.hetzner-dns.path;
|
|
group = "nginx";
|
|
|
|
extraLegoFlags = [
|
|
"--dns.resolvers=1.1.1.1:53,8.8.8.8:53"
|
|
"--dns.propagation-wait=60s" # Wait for 60 seconds for DNS propagation
|
|
"--dns-timeout=60"
|
|
"--http-timeout=60"
|
|
];
|
|
};
|
|
|
|
"komga.ppp.pm" = {
|
|
dnsProvider = "hetzner";
|
|
environmentFile = config.age.secrets.hetzner-dns.path;
|
|
group = "nginx";
|
|
|
|
extraLegoFlags = [
|
|
"--dns.resolvers=1.1.1.1:53,8.8.8.8:53"
|
|
"--dns.propagation-wait=60s"
|
|
"--dns-timeout=60"
|
|
"--http-timeout=60"
|
|
];
|
|
};
|
|
|
|
"romm.ppp.pm" = {
|
|
dnsProvider = "hetzner";
|
|
environmentFile = config.age.secrets.hetzner-dns.path;
|
|
group = "nginx";
|
|
|
|
extraLegoFlags = [
|
|
"--dns.resolvers=1.1.1.1:53,8.8.8.8:53"
|
|
"--dns.propagation-wait=60s"
|
|
"--dns-timeout=60"
|
|
"--http-timeout=60"
|
|
];
|
|
};
|
|
|
|
"puppy.ppp.pm" = {
|
|
dnsProvider = "hetzner";
|
|
environmentFile = config.age.secrets.hetzner-dns.path;
|
|
group = "nginx";
|
|
|
|
extraLegoFlags = [
|
|
"--dns.resolvers=1.1.1.1:53,8.8.8.8:53"
|
|
"--dns.propagation-wait=60s"
|
|
"--dns-timeout=60"
|
|
"--http-timeout=60"
|
|
];
|
|
};
|
|
|
|
"todo.ppp.pm" = {
|
|
dnsProvider = "hetzner";
|
|
environmentFile = config.age.secrets.hetzner-dns.path;
|
|
group = "nginx";
|
|
|
|
extraLegoFlags = [
|
|
"--dns.resolvers=1.1.1.1:53,8.8.8.8:53"
|
|
"--dns.propagation-wait=60s"
|
|
"--dns-timeout=60"
|
|
"--http-timeout=60"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
age = {
|
|
secrets = {
|
|
"hetzner-dns".file = ../../../../secrets/manatee/hetzner-dns.age;
|
|
};
|
|
};
|
|
}
|