From f9526236344c2086848ec009fdfb9f0107cead2f Mon Sep 17 00:00:00 2001 From: uttarayan21 Date: Sun, 16 Nov 2025 21:30:05 +0530 Subject: [PATCH] docs: remove DEVICE_ARCHITECTURE.md file --- DEVICE_ARCHITECTURE.md | 208 ----------------------------------------- 1 file changed, 208 deletions(-) delete mode 100644 DEVICE_ARCHITECTURE.md diff --git a/DEVICE_ARCHITECTURE.md b/DEVICE_ARCHITECTURE.md deleted file mode 100644 index 66231fcf..00000000 --- a/DEVICE_ARCHITECTURE.md +++ /dev/null @@ -1,208 +0,0 @@ -# Device Architecture Overview - -This document provides a comprehensive overview of all devices managed by this NixOS/nix-darwin dotfiles repository. - -> **Visual Diagram**: See [assets/devices-diagram.svg](assets/devices-diagram.svg) for a visual representation of this architecture. - -## Device Categories - -### 🖥️ Server Infrastructure (Headless) - -#### mirai (Main Server) -- **Architecture**: x86_64-linux -- **User**: fs0c131y -- **Role**: Primary server hosting various services -- **Configuration**: NixOS + Home Manager -- **Hardware**: AMD CPU with NVME storage -- **Location**: Local network -- **Services**: - - Nextcloud (file storage and sync) - - Gitea (Git hosting) - - Minecraft server - - Immich (photo management) - - Paperless (document management) - - Tailscale VPN node - - ZeroTier network node - - Atuin (shell history sync) - - LLDAP (LDAP server) - - Navidrome (music streaming) - - Searxng (search engine) - - Syncthing - - And many more services - -#### tsuba (Raspberry Pi) -- **Architecture**: aarch64-linux -- **User**: servius -- **Role**: ARM-based server for lightweight services -- **Configuration**: NixOS + Home Manager (using stable channel) -- **Hardware**: Raspberry Pi -- **Access**: External via tsuba.darksailor.dev -- **Special**: Uses nixos-raspberrypi input for hardware support - -### 💻 Development Workstations - -#### ryu (Main Desktop) -- **Architecture**: x86_64-linux -- **User**: servius -- **Role**: Primary development workstation -- **Configuration**: NixOS + Home Manager -- **Desktop Environment**: Hyprland (primary) + GNOME (fallback) -- **Features**: - - Multi-monitor setup: - - Primary: HDMI-A-1 (Gigabyte FO27Q3) - - Secondary: DP-3 (Acer XV272U) - - Tertiary: DP-1 (Gigabyte M27Q) - - Audio production setup (musnix) - - Gaming support (Wine, Steam) - - Virtualization (virt-manager) - - Hardware acceleration (CUDA support) - - Secure boot with Lanzaboote - - TPM2 support - -#### shiro (Mac Mini) -- **Architecture**: aarch64-darwin (Apple Silicon) -- **User**: servius -- **Role**: macOS desktop and build server -- **Configuration**: nix-darwin + Home Manager -- **Features**: - - ARM64 build server for distributed builds - - Samba file sharing - - Colima container runtime - - Aerospace window management - -### 📱 Portable/Mobile Devices - -#### kuro (MacBook) -- **Architecture**: aarch64-darwin (Apple Silicon) -- **User**: fs0c131y -- **Role**: macOS development machine -- **Configuration**: nix-darwin + Home Manager -- **Features**: - - Touch ID for sudo authentication - - Custom keyboard mappings - - Homebrew integration - -#### SteamDeck (Gaming Handheld) -- **Architecture**: x86_64-linux -- **User**: deck -- **Role**: Portable gaming device -- **Configuration**: Home Manager only (no NixOS) -- **Special**: Uses SteamOS with Home Manager overlay - -## Network Architecture - -### VPN Networks -- **Tailscale**: Primary VPN connecting most devices - - Devices: mirai, tsuba, deck -- **ZeroTier**: Secondary network layer - - Devices: mirai, ryu - -### Local Network -- **Primary connection**: ryu (main desktop) -- **Wake-on-LAN**: Enabled for ryu (eno1 interface) - -## Configuration Management - -### NixOS Flake -- **Manages**: mirai, tsuba, ryu -- **Features**: Unified configuration across Linux devices -- **Inputs**: Multiple flake inputs for extended functionality - -### nix-darwin -- **Manages**: kuro, shiro -- **Features**: macOS system configuration - -### Home Manager -- **Standalone**: deck (SteamDeck) -- **Integrated**: All other devices -- **Stable channel**: Used for tsuba - -## Build Infrastructure - -### Distributed Building -- **Build machines**: - - mirai (primary build server) - - shiro (macOS builds) - - tsuba (ARM builds, commented out) -- **Consumers**: - - ryu (uses remote builders) - - kuro (uses remote builders) - -### Cache Strategy -- **Substituters**: - - nix-community.cachix.org - - nixos-raspberrypi.cachix.org (for ARM builds) -- **Build optimization**: Auto-optimise-store enabled - -## Deployment Strategy - -### SSH-based Deployment -Using deploy-rs for automated deployments: - -``` -ryu → mirai, tsuba, deck -kuro → mirai, shiro -``` - -### Special Access -- **tsuba**: Accessed via external domain (tsuba.darksailor.dev) -- **All servers**: SSH key authentication with authorized_keys - -## Hardware-Specific Features - -### ryu (Desktop) -- **Graphics**: NVIDIA with CUDA support -- **Audio**: Professional audio setup with musnix -- **Input devices**: QMK keyboard support -- **Monitors**: DDC/CI control with ddcutil -- **Security**: TPM2, secure boot (Lanzaboote) - -### mirai (Server) -- **CPU**: AMD with virtualization support -- **Storage**: Custom disk layout with disko -- **Containers**: Docker with custom mount points -- **Emulation**: aarch64-linux binfmt support - -### macOS Devices (kuro - MacBook, shiro - Mac Mini) -- **Authentication**: Touch ID integration (kuro) -- **Keyboard**: Custom modifier key mappings -- **Package management**: Homebrew + Nix hybrid approach -- **Build server**: shiro provides ARM64 builds for the network - -## Security Features - -- **SOPS**: Secrets management across all devices -- **SSH keys**: Centralized key management -- **Fail2ban**: Enabled on mirai -- **Secure boot**: Implemented on ryu -- **TPM**: Hardware security on ryu - -## Development Environment - -### Shared Tools -- **Editor**: Nixvim (custom Neovim configuration) -- **Shell**: Fish + Nushell support -- **Terminal**: Various per-device preferences -- **Version control**: Git with shared configuration - -### Language Support -- **Rust**: Custom overlay with latest toolchain -- **Python**: Python 3 with development tools -- **Nix**: Latest Nix with flakes enabled -- **Web**: Node.js and web development tools - -## Monitoring and Observability - -- **System metrics**: Collected across all NixOS devices -- **Shell history**: Synchronized via Atuin -- **File synchronization**: Syncthing for selective sync - -## Backup and Data Management - -- **Nextcloud**: Primary cloud storage on mirai -- **Syncthing**: Decentralized file sync -- **Git repositories**: Self-hosted on Gitea (mirai) -- **Photos**: Immich for photo management -- **Documents**: Paperless for document archival - -This architecture provides a robust, scalable, and maintainable infrastructure for development, gaming, media consumption, and server hosting across multiple platforms and architectures. \ No newline at end of file