{"id":28485881,"url":"https://github.com/hydepwns/nix-mox","last_synced_at":"2025-07-18T15:36:11.111Z","repository":{"id":295508397,"uuid":"990292480","full_name":"Hydepwns/nix-mox","owner":"Hydepwns","description":"Proxmox + NixOS + Windows: Automated, reproducible, and secure homelab virtualization","archived":false,"fork":false,"pushed_at":"2025-06-26T21:31:11.000Z","size":1119,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-26T22:46:18.850Z","etag":null,"topics":["declarative","elixir","erlang","gaming","gpu-passthrough","homelab","immutable-infrastructure","nix","nixos","nushell","proxmox","virtualization","windows","zfs"],"latest_commit_sha":null,"homepage":"","language":"Nushell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hydepwns.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-25T22:09:35.000Z","updated_at":"2025-06-26T21:31:15.000Z","dependencies_parsed_at":"2025-06-26T22:36:22.392Z","dependency_job_id":"3b970d53-538b-4cdd-85ac-be16251937b8","html_url":"https://github.com/Hydepwns/nix-mox","commit_stats":null,"previous_names":["hydepwns/nix-mox"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Hydepwns/nix-mox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hydepwns%2Fnix-mox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hydepwns%2Fnix-mox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hydepwns%2Fnix-mox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hydepwns%2Fnix-mox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hydepwns","download_url":"https://codeload.github.com/Hydepwns/nix-mox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hydepwns%2Fnix-mox/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265786764,"owners_count":23828330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["declarative","elixir","erlang","gaming","gpu-passthrough","homelab","immutable-infrastructure","nix","nixos","nushell","proxmox","virtualization","windows","zfs"],"created_at":"2025-06-08T01:00:15.108Z","updated_at":"2025-07-18T15:36:11.095Z","avatar_url":"https://github.com/Hydepwns.png","language":"Nushell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nix-mox\n\n\u003e Production-grade NixOS configuration framework with templates, personal data separation, and multi-host management.\n\n[![CI](https://github.com/Hydepwns/nix-mox/workflows/CI%20(Simplified)/badge.svg)](https://github.com/Hydepwns/nix-mox/actions/workflows/ci.yml)\n[![Platforms](https://img.shields.io/badge/platforms-x86_64%20%7C%20aarch64%20%7C%20Linux%20%7C%20macOS-blue.svg)](https://github.com/Hydepwns/nix-mox/actions)\n[![Tests](https://img.shields.io/badge/tests-97%25%20passing-brightgreen.svg)](https://github.com/Hydepwns/nix-mox/actions)\n\n## Quick Start\n\n```bash\ngit clone https://github.com/Hydepwns/nix-mox.git\ncd nix-mox\n\n# Quick setup\nnu scripts/core/setup.nu\n\n# Choose template\ncp config/templates/development.nix config/nixos/configuration.nix\n\n# Build and switch\nsudo nixos-rebuild switch --flake .#nixos\n```\n\n## Documentation\n\n- **[Platform Guide](docs/PLATFORM.md)** - Platform-specific setup and configuration\n- **[Quick Start](docs/QUICK_START.md)** - Detailed quick start guide\n- **[Templates](docs/TEMPLATES.md)** - Available configuration templates\n- **[Troubleshooting](docs/TROUBLESHOOTING.md)** - Common issues and solutions\n- **[Archive](docs/archive/)** - Legacy documentation and detailed guides\n\n## Maintenance Tools\n\n- **Cleanup**: `nu scripts/tools/cleanup.nu` - Comprehensive project cleanup\n- **Health Check**: `nu scripts/core/health-check.nu` - System health validation\n- **Size Analysis**: `nu scripts/tools/analyze-sizes.nu` - Repository size analysis\n\n## Templates\n\n## Multi-Host Management\n\nnix-mox supports managing multiple NixOS hosts from a single flake:\n\n```bash\n# Build specific host configurations\nnix build .#nixosConfigurations.host1.config.system.build.toplevel\nnix build .#nixosConfigurations.host2.config.system.build.toplevel\n\n# Deploy to hosts\nnixos-rebuild switch --flake .#host1\nnixos-rebuild switch --flake .#host2\n\n# See available hosts and outputs\nnix run .#dev\n```\n\n### Host Configuration\n\nEach host can have its own:\n\n- **Hardware configuration** - CPU, GPU, storage, networking\n- **Home configuration** - User environment, shell, applications\n- **Extra modules** - Host-specific services and features\n- **Special arguments** - Secrets, environment variables, host type\n\n```nix\n# config/hosts.nix\n{\n  host1 = {\n    system = \"x86_64-linux\";\n    hardware = ./hardware/host1-hardware-configuration.nix;\n    home = ./home/host1-home.nix;\n    extraModules = [ ./modules/host1-extra.nix ];\n    specialArgs = { \n      hostType = \"desktop\";\n      mySecret = \"host1-secret\";\n    };\n  };\n  \n  host2 = {\n    system = \"x86_64-linux\";\n    hardware = ./hardware/host2-hardware-configuration.nix;\n    home = ./home/host2-home.nix;\n    extraModules = [ ./modules/server-extra.nix ];\n    specialArgs = { \n      hostType = \"server\";\n      mySecret = \"host2-secret\";\n    };\n  };\n}\n```\n\n| Template | Use Case | Description |\n|----------|----------|-------------|\n| `minimal` | Basic system | Essential tools only |\n| `development` | Software development | IDEs, tools, containers |\n| `gaming` | Gaming workstation | Steam, performance optimizations |\n| `server` | Production server | Monitoring, management tools |\n| `ci-runner` | CI/CD infrastructure | Parallel job execution, monitoring, metrics |\n\n\u003e **Note**: The `desktop` template has been consolidated into the base profile. See [Templates](docs/TEMPLATES.md) for details.\n\n## Structure\n\n```bash\nconfig/\n├── personal/     # Your settings (gitignored)\n├── templates/    # Ready-to-use configs\n├── profiles/     # Shared components\n└── nixos/        # Main config\n```\n\n## Development Workflow\n\n### Quick Commands\n\n```bash\n# Format all code\nnix run .#fmt\n\n# Run tests\nnix run .#test\n\n# Update flake inputs\nnix run .#update\n\n# Enter development shell\nnix develop\n\n# Project cleanup\nnu scripts/tools/cleanup.nu\n\n# Health check\nnu scripts/core/health-check.nu\n```\n\n### Development Shells\n\n```bash\nnix develop                    # Default environment\nnix develop .#development      # Development tools\nnix develop .#gaming           # Gaming tools\nnix develop .#testing          # Testing tools\nnix develop .#services         # Service tools (Linux)\nnix develop .#monitoring       # Monitoring tools (Linux)\n```\n\n### Code Formatting\n\nThe project uses `treefmt` for multi-language formatting:\n\n```bash\n# Format all files\nnix run .#fmt\n\n# Or use the formatter directly\nnix run .#formatter\n```\n\n**Supported formats:**\n\n| Language/Format | Extensions | Formatter |\n|----------------|------------|-----------|\n| **Nix** | `.nix` | `nixpkgs-fmt` |\n| **Shell scripts** | `.sh`, `.bash`, `.zsh` | `shfmt` + `shellcheck` |\n| **Markdown** | `.md`, `.mdx` | `prettier` |\n| **JSON/YAML** | `.json`, `.yml`, `.yaml` | `prettier` |\n| **JavaScript/TypeScript** | `.js`, `.ts`, `.jsx`, `.tsx` | `prettier` |\n| **CSS/SCSS** | `.css`, `.scss`, `.sass` | `prettier` |\n| **HTML** | `.html`, `.htm` | `prettier` |\n| **Python** | `.py` | `black` |\n| **Rust** | `.rs` | `rustfmt` |\n| **Go** | `.go` | `gofmt` |\n\n### Testing\n\n```bash\n# Run all tests\nnix run .#test\n\n# Or run specific test suites\nnix build .#checks.x86_64-linux.unit\nnix build .#checks.x86_64-linux.integration\nnix build .#checks.x86_64-linux.test-suite\n\n# Run tests with make (legacy)\nmake test\nmake unit\nmake integration\n```\n\n### Module Integration\n\n```bash\n# Add modules\nnu scripts/core/integrate-modules.nu\n\n# Available modules: infisical, tailscale, gaming, monitoring, storage\n```\n\n## Available Packages\n\n### Linux Packages\n\n```bash\n# System management\nnix run .#proxmox-update      # Update Proxmox host\nnix run .#vzdump-backup       # Backup VMs and containers\nnix run .#zfs-snapshot        # Manage ZFS snapshots\nnix run .#nixos-flake-update  # Update NixOS flake\n\n# Installation\nnix run .#install             # Install nix-mox\nnix run .#uninstall           # Uninstall nix-mox\n```\n\n### macOS Packages\n\n```bash\n# macOS management\nnix run .#homebrew-setup      # Setup Homebrew\nnix run .#macos-maintenance   # macOS maintenance\nnix run .#xcode-setup         # Setup Xcode\nnix run .#security-audit      # Security audit\n\n# Installation\nnix run .#install             # Install nix-mox\nnix run .#uninstall           # Uninstall nix-mox\n```\n\n## Documentation\n\n- **[Quick Start](docs/QUICK_START.md)** - Get started in minutes\n- **[Templates](docs/TEMPLATES.md)** - Template and profile reference\n- **[Platform Setup](docs/PLATFORM.md)** - Platform-specific guides\n- **[Troubleshooting](docs/TROUBLESHOOTING.md)** - Common issues and solutions\n- **[Contributing](docs/archive/CONTRIBUTING.md)** - Development guidelines (archived)\n\n## Features\n\n### Core Infrastructure\n\n- **Multi-host management** - Centralized configuration for multiple NixOS hosts\n- **Template system** - Pre-built configurations for development, gaming, server, desktop\n- **Module integration** - Extensible architecture with plug-and-play modules\n- **Personal data separation** - Secure separation of personal settings in `config/personal/`\n\n### Security \u0026 Hardening\n\n- **Built-in security profiles** - Pre-configured security hardening\n- **Environment-based configuration** - Different security levels per environment\n- **Secrets management** - Secure handling of sensitive data\n- **Network security** - Automated firewall and network configuration\n\n### Development Tools\n\n- **Multi-language formatting** - Consistent code style across all supported languages\n- **Comprehensive testing** - 97% test pass rate with CI/CD pipeline\n- **Development shells** - Isolated environments for different tasks\n- **Quick commands** - Streamlined development workflows\n\n### Platform Support\n\n- **Linux** - Full NixOS support with optimized configurations\n- **macOS** - Homebrew integration and macOS optimizations\n- **Windows** - Gaming and development tools\n- **Containers** - Docker and orchestration support\n\n### System Management\n\n- **Health monitoring** - System health checks and diagnostics\n- **Backup automation** - Automated VM and container backups\n- **Performance optimization** - Gaming and workstation tuning\n- **Storage management** - ZFS integration with caching and snapshots\n\n### Advanced Capabilities\n\n- **Proxmox integration** - Automated host management and updates\n- **Service orchestration** - Multi-service deployment\n- **Monitoring stack** - Built-in monitoring and alerting\n- **Gaming optimization** - Steam integration and performance tuning\n\n## License\n\nMIT — see [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhydepwns%2Fnix-mox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhydepwns%2Fnix-mox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhydepwns%2Fnix-mox/lists"}