feat(monitoring): add uptime-kuma for status page, see #97 #118
Loading…
Reference in a new issue
No description provided.
Delete branch "kiaragrouwstra/infra:feature-service-uptime-kuma"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds a config for a status page using uptime-kuma.
Open questions here included:
(and if a new one how to configure their network bits);
services.uptime-kuma), after which the stateless client can be re-built;
publicly access to test.
I think we should add this to public01.
That would be @raito afaik.
(btw we should document the secret management)
Isn't the passwordFile set using agenix in line 82 or does someone have to ssh onto the host and run some uptime-kuma management command? (I'm unfamiliar with uptime-kuma)
Anything with a public facing web interface, which should basically be everything.
You might not be able to access domains such as fodwatch or news at the time because we (try to) shut down the bare metal servers if the services aren't actively in use.
@ -0,0 +5,4 @@
...
}:
let
subdomains = [
It would be preferable to pull the domain information from the
terraform/dnsimple.nix
, so we avoid maintaining the list of domains twice.This should probably be injected via
specialArgs
I assume to make it available.hm. i agree, tho i'm not entirely sure yet what the best approach would here.
if the file were
import
ed (edit: / injected) i'm under the impression it would go thru amkIf
check.maybe the data-y bits could be e.g. factored out into a separate file to reuse from both
uptime-kuma
(if not also fromgandi
which has lotsa overlap withdnsimple
)?feedback welcome. 😶
Let's keep it simple for now, we can do it in a further PR. It's unclear how to extract the data-y bits, maybe Terranix could expose a data-only module we could re-import in the whole expr, unclear to me yet.
@ -0,0 +26,4 @@
# "news"
];
host = "status.forkos.org";
Please add the domain to terraform ^^
@ -0,0 +29,4 @@
host = "status.forkos.org";
port = 3001;
in
{
Please guard the config behind a mkIf with an enable option like
options.bagel.status.enable = mkEnableOption "status page";
. Currently, applying this change would enable this service on every host.@ -0,0 +31,4 @@
in
{
imports = [ "${inputs.stateless-uptime-kuma}/nixos/module.nix" ];
nixpkgs.overlays = [ (import "${inputs.stateless-uptime-kuma}/overlay.nix") ];
We maintain all the input related overlays directly in the flake.nix.
Yeah, all modules and overlays should be applied uniformly to all machines.
@ -0,0 +35,4 @@
services.uptime-kuma.enable = true;
services.nginx = {
The nginx stuff is fine for now, but we should generalize proxying a bit in the future. (having every service add their own firewall rules, and nginx config is redundant and error prone)
@kiaragrouwstra I'm available to help you get this PR to the finishline, if you need my help on anything.
status
to TF (dnsimple, gandi) feebc56f97i pushed updates to address some of the feedback now.
i thought so too.
unfortunately, as it turns out, the credential popped in there is essentially for a client thing to access the actual service so as to populate it declaratively from nix.
as such, it seems that the service itself at present still needs to manually be assigned those seemed credentials imperatively right now.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.