diff --git a/DEVICE_ARCHITECTURE.md b/DEVICE_ARCHITECTURE.md index 5c0976eb..982d37d2 100644 --- a/DEVICE_ARCHITECTURE.md +++ b/DEVICE_ARCHITECTURE.md @@ -18,7 +18,6 @@ This document provides a comprehensive overview of all devices managed by this N - **Services**: - Nextcloud (file storage and sync) - Gitea (Git hosting) - - Grafana (monitoring and dashboards) - Minecraft server - Immich (photo management) - Paperless (document management) @@ -201,7 +200,6 @@ kuro → mirai, shiro ## Monitoring and Observability -- **Grafana**: Centralized monitoring on mirai - **System metrics**: Collected across all NixOS devices - **Shell history**: Synchronized via Atuin - **File synchronization**: Syncthing for selective sync diff --git a/README.md b/README.md index beea58ec..b63a8a15 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ This repository manages **7 devices** across multiple platforms and architecture ### Server Infrastructure | Device | Architecture | Role | Services | |--------|-------------|------|----------| -| **mirai** | x86_64-linux | Main Server | Nextcloud, Gitea, Grafana, Minecraft, Immich, Paperless, +20 more | +| **mirai** | x86_64-linux | Main Server | Nextcloud, Gitea, Minecraft, Immich, Paperless, +20 more | | **deoxys** | x86_64-linux | VM Server | Testing & isolation environment | | **tsuba** | aarch64-linux | Raspberry Pi | ARM-based lightweight services | @@ -125,7 +125,7 @@ just home ### Core Services - **Nextcloud**: File storage and synchronization - **Gitea**: Self-hosted Git server -- **Grafana**: Monitoring and dashboards + - **Immich**: Photo management and AI-powered search - **Paperless**: Document management and OCR diff --git a/assets/devices-diagram.d2 b/assets/devices-diagram.d2 index 9d085db3..10b16ccb 100644 --- a/assets/devices-diagram.d2 +++ b/assets/devices-diagram.d2 @@ -22,7 +22,7 @@ servers: Server Infrastructure { services: Services { shape: cylinder style.fill: "#34d399" - label: "Services\n• Nextcloud\n• Gitea\n• Grafana\n• Minecraft\n• Immich\n• Paperless\n• Tailscale\n• And more..." + label: "Services\n• Nextcloud\n• Gitea\n• Minecraft\n• Immich\n• Paperless\n• Tailscale\n• And more..." } } diff --git a/flake.nix b/flake.nix index 224090bc..2497a63f 100644 --- a/flake.nix +++ b/flake.nix @@ -375,7 +375,7 @@ }; devShells = { default = pkgs.mkShell { - packages = with pkgs; [sops just clang]; + packages = with pkgs; [sops just openssl]; }; }; } diff --git a/home/services/hyprmon.nix b/home/services/hyprmon.nix index 1a6b7206..51b696a8 100644 --- a/home/services/hyprmon.nix +++ b/home/services/hyprmon.nix @@ -1,4 +1,8 @@ -{inputs, ...}: { +{ + inputs, + device, + ... +}: { imports = [ # Import the hyprmonitors module inputs.hyprmonitors.homeManagerModules.hyprmonitors @@ -6,7 +10,7 @@ # Configure hyprmonitors service services.hyprmonitors = { - enable = true; + enable = device.is "ryu"; # Optional: customize host and port (defaults shown) host = "0.0.0.0"; diff --git a/nixos/mirai/services/default.nix b/nixos/mirai/services/default.nix index 77023a4a..e6e61750 100644 --- a/nixos/mirai/services/default.nix +++ b/nixos/mirai/services/default.nix @@ -11,6 +11,7 @@ ./llama.nix ./lldap.nix ./minecraft.nix + ./nextcloud.nix ./prowlarr.nix ./resolved.nix diff --git a/nixos/tsuba/services/default.nix b/nixos/tsuba/services/default.nix index bc76e24d..6b1a23c0 100644 --- a/nixos/tsuba/services/default.nix +++ b/nixos/tsuba/services/default.nix @@ -10,7 +10,7 @@ ./flaresolverr.nix ./caddy.nix ./monitoring.nix - # ./grafana.nix + # ./dnscrypt.nix # ./resolved.nix # ./blocky.nix diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml index c962c444..83fd5d1c 100644 --- a/secrets/secrets.yaml +++ b/secrets/secrets.yaml @@ -33,6 +33,9 @@ authelia: gitea: client_id: ENC[AES256_GCM,data:wxC4eYM=,iv:Opd7H7B5SiEiL7O8bXuy1u/mGRRMRPpxKu9aPZVK62U=,tag:SY2nwph8whqqdVnAh/vOGg==,type:str] client_secret: ENC[AES256_GCM,data:vhFs7U5KyzWe5hM+H1TFMhw/0QcBWNGE0W6qtWVkVlcL16coAmubMJvRrDEfv8wzbrSXCj6fdyZOuHFb5bTO7A==,iv:529/LBYE6+C65jDLr3IAT4tCz8wH/EG55NQ/feh2Cp0=,tag:mhMFvPatQeiB/tkPfLyZ4A==,type:str] + grafana: + client_id: ENC[AES256_GCM,data:oYnyH2Zc7ioIZxImnxf3558zLKGhN5SsIcBgMAxgZYA=,iv:zqSbcI8ZNbL+Pxv+dUCL0kwwVBb3fAsZGbqO5rZDDUE=,tag:KQqusXx27z0jvdCa5tluIA==,type:str] + client_secret: ENC[AES256_GCM,data:k5tm5H1JZp+jXq+4BcEH7XscgwABdwXpmvfStMqfRHwFL1Ztb3U1LfswrZ8i+VWl+jJJ38AKwbOPkgljekX7SA==,iv:ziRDKWVayx19SHu2qg123v2r3KdjfYH7mJJy3Ve1Iz0=,tag:M7ISr1uYVQhjDiMEfv4c4w==,type:str] jwks: ENC[AES256_GCM,data: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,iv:gGKyTUigpnqg3Fgd76INrESRT27hJRzYQ3xk8heNkWk=,tag:fVc8rg1Or63X/14neG+8Cw==,type:str] lldap: jwt: ENC[AES256_GCM,data:61dwC1ElOOGaf0CmalzXZnxImEyufKjUUWcNaEcOuv3TEODhQyHK7g==,iv:CVEJVuaCc2gDmSYWHS3fPL8FjbvblF6IladAzGoGb0o=,tag:OMm/OdKjliHjsGqJripLbg==,type:str] @@ -53,6 +56,9 @@ minecraft: craftmine: ENC[AES256_GCM,data:tzqHagpr+DTdt+/sL6xdESflydplIPFUdFRkpr5OtOU=,iv:7r5G7FrC3qExs5R14rqEt1SC+/+G+EEZ089Z2c0bj48=,tag:tkWuHkH2De4LYDcu/uuBWA==,type:str] vanilla: ENC[AES256_GCM,data:UtVlLDAfJGuhYStqz6cPUemuxxR9S4IfkwwP8WVEzKM=,iv:2s6/7/wsB5Lgb1fqeiyBierm3WeD3f9AQRg+ZqJOUHI=,tag:9uzCBMjchpD4JnLnuHlfYQ==,type:str] modded: ENC[AES256_GCM,data:6itrol9NObR3TczEeOa7wkykgqkpDus0VkHBRpU6VdQ=,iv:F56uYdHozJvkJ+m18aviTWzCrLfW2VcxkbOqpnRiniA=,tag:WLKA+uIJJtlDfMMOn0ak7Q==,type:str] +grafana: + adminPassword: ENC[AES256_GCM,data:im6FJVlVUoZg+9W6KmsqtloH4nB6AhXOcia5waRyFKj2DoQlt4jhPH1CFvw=,iv://D6aD/fGl7h4KmtQcQ0TQLWLfKdIs4+EMg2LWjPHvg=,tag:6gHu/V0V0a8GpcgA/hUwXg==,type:str] + secretKey: ENC[AES256_GCM,data:LD0x8Fa6SU1+6mwxLkKa/o+ZqeuRIr7o/AKS7EmrDYj0vzrA3/FjViVJNfkOJDch9TbVyjIpk2ZLwxHXOZx7MA==,iv:t6UwZj2JZpMIDsDDeJ4rZah4aBoMIKaoiu9VU2VhViE=,tag:MIz/b8JWYtOpUCcg6gYhJg==,type:str] sops: age: - recipient: age1pw7kluxp7872c63ne4jecq75glj060jkmqwzkk6esatuyck9egfswufdpk @@ -64,7 +70,7 @@ sops: VGZKdHpVeFRpQUxtSEkyaEhLMlBJcGsKLb0DvPNZosPBUuiX6qz1s5IO5INQh8CK ZtXTVClwMSmaUYhdSB2gKFrKVZHXTJZ4oAL5t/BpC0pOHyr+o96T3Q== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-08-13T22:05:00Z" - mac: ENC[AES256_GCM,data:AG+mAd8MwPuOj2tch2hHfFrzmtf/ccZVFB4uX/zSST0NQLDERw4u1YdGTparzYzQZMSC0ncnjLvTd9h92XVx5ze/RlSb/4yfSG9Kod8cbgQyY/rxOr7nVkysk7TMYuVDH2aWjD58IdNZ4jmgfYv/S7okI2YNnG2rdFjXZ7DmL5g=,iv:a2qj+lGfOxvZsUWwNrFqLSCCh908w6NOsPWIPXR4W8s=,tag:TDPRlxFzlzVF6LEF1BQI6w==,type:str] + lastmodified: "2025-08-16T20:44:40Z" + mac: ENC[AES256_GCM,data:0gc+ETJSGoiHpOQ28GhEkXRS8x/SaX7HphQVnfNcRkH4r8SaIBuxh1QltlBH1lo6yKbzf3ZRRgG/bEoxkL8fvpcAjjv/N0xfINafWjdfYehoVvAN3GBJwrEOKJH99GjE8WJ0NHINnjZL6XUK/1FrhDnuZ8km0Lk5BcdvI2Syjw0=,iv:kYPNAOQnbZ43H7oEsxE95pE5rWynB3ZbVZT5EKHVAY8=,tag:uqqK1SanYGjJgAFXNwPDMQ==,type:str] unencrypted_suffix: _unencrypted version: 3.10.2