A gentle, web-based interface for NixOS that transforms system administration from anxiety to peace. Built with consciousness-first principles and universal accessibility.
π Quick Start Guide | π Philosophy | π Demo
# One-line install
curl -sL https://infin.love/nixos-gui/install.sh | bash
# Open in browser
xdg-open http://localhost:7778
Default login created during install (check output for password).
-
π¦ Package Management
- Search and install packages from nixpkgs
- Remove installed packages with confirmation
- View package details and dependencies
- System rollback capabilities
- Update checker for outdated packages
- Real-time installation progress
-
βοΈ Configuration Editor
- Edit
/etc/nixos/configuration.nix
with syntax highlighting - Live validation of Nix expressions
- Visual diff before applying changes
- Safe staging with rollback options
- Real-time error detection
- CodeMirror integration
- Edit
-
π§ Service Manager
- Start, stop, restart, and reload services
- Real-time service status monitoring
- Live log streaming with Server-Sent Events
- Service configuration editing
- Health metrics and performance data
- Systemd unit file viewer
-
π» Hardware Configuration
- Comprehensive hardware detection (CPU, GPU, disks, network)
- Driver recommendations and installation
- Kernel module management
- Hardware-specific NixOS configurations
- PCI/USB device information
- BIOS/UEFI settings display
-
π₯ User & Permissions Manager
- Create and manage users with full options
- Group management and membership
- Sudo permissions configuration
- Shell selection (bash, zsh, fish)
- Password management
- Home directory configuration
- JWT-based authentication with secure tokens
- Role-based access control
- Secure token management with expiry
- CORS protection
- Audit logging for all operations
- Session management
- Add to your
/etc/nixos/configuration.nix
:
{ config, pkgs, ... }:
{
imports = [
/path/to/nixos-gui/nixos-module.nix
];
services.nixos-gui = {
enable = true;
openFirewall = true; # For local network access
};
}
- Rebuild your system:
sudo nixos-rebuild switch
- Access the GUI at: http://localhost:8080
Default credentials:
- Username:
admin
- Password:
nixos123
git clone https://github.com/yourusername/nixos-gui.git
cd nixos-gui
sudo ./install.sh
# Clone the repository
git clone https://github.com/yourusername/nixos-gui.git
cd nixos-gui
# Install dependencies
cd backend
npm install
# Start the backend
CORS_ORIGIN="*" node nixos-gui-api-enhanced-fixed.js
# In another terminal, serve the frontend
cd ../mvp
python3 -m http.server 8000
Access at: http://localhost:8000
- Installation Guide - Detailed setup instructions
- Quick Start Guide - Get running in 5 minutes
- API Documentation - REST API reference
- Architecture Overview - System design
- Contributing Guide - Development guidelines
βββββββββββββββββββββββββββββββββββββββββββββββ
β Web Frontend (HTML/JS) β
β Dashboard β Packages β Config β Services β
βββββββββββββββββββ¬ββββββββββββββββββββββββββββ
β REST API + SSE
βββββββββββββββββββ΄ββββββββββββββββββββββββββββ
β Node.js Backend (Express) β
β Auth β Nix Ops β System Mgmt β Real-time β
βββββββββββββββββββ¬ββββββββββββββββββββββββββββ
β System Calls
βββββββββββββββββββ΄ββββββββββββββββββββββββββββ
β NixOS System Layer β
β Nix β Systemd β Hardware β Users/Groups β
βββββββββββββββββββββββββββββββββββββββββββββββ
- Backend API: Node.js/Express server with JWT authentication
- Frontend: Pure HTML/CSS/JavaScript (no framework dependencies)
- Real-time Updates: Server-Sent Events for logs and status
- System Integration: Direct Nix and systemd command execution
- Security: JWT tokens, CORS protection, secure command execution
-
Frontend:
- Vanilla JavaScript (ES6+)
- HTML5, CSS3
- CodeMirror for code editing
- No framework dependencies
-
Backend:
- Node.js 18+
- Express.js
- JWT for authentication
- Server-Sent Events
-
System Integration:
- Child process execution
- Nix commands (search, install, query)
- Systemd control
- Hardware detection tools
- NixOS (tested on 23.11 and unstable)
- Node.js 18+
- npm or yarn
- Modern web browser (Chrome, Firefox, Safari)
- For development: Python 3 (for simple HTTP server)
services.nixos-gui = {
enable = true;
apiPort = 7778; # Backend API port
frontendPort = 8080; # Frontend web server port
openFirewall = false; # Open ports in firewall
# CORS configuration for security
allowedOrigins = [
"http://localhost:8080"
"http://192.168.1.100:8080" # Your LAN IP
];
# JWT secret (auto-generated if empty)
jwtSecret = "";
# State directory for persistent data
stateDir = "/var/lib/nixos-gui";
# Service user/group
user = "nixos-gui";
group = "nixos-gui";
};
For manual setup:
# API Server
PORT=7778 # API port
CORS_ORIGIN="*" # CORS origins (* for dev only!)
JWT_SECRET="your-secret" # JWT secret key
NODE_ENV="production" # Environment
# Frontend
# No special config needed, just serve static files
cd backend
npm test
cd backend
npm run build
# Watch mode with auto-restart
cd backend
npm run dev
./scripts/release.sh v1.0.0
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Clone your fork
- Install dependencies:
npm install
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes
- Run tests:
npm test
- Commit:
git commit -m 'Add amazing feature'
- Push:
git push origin feature/amazing-feature
- Open a Pull Request
- Dark mode theme
- Mobile-responsive design
- WebSocket support for real-time updates
- Backup and restore functionality
- Multi-user collaboration features
- Plugin system for extensions
- Internationalization (i18n)
- Flake support
- Home-manager integration
- Container/VM management
The main dashboard provides system overview and quick actions
Search, install, and manage packages with ease
Edit NixOS configuration with syntax highlighting and validation
Monitor and control systemd services with real-time logs
MIT License - see LICENSE file for details.
- Built with consciousness-first principles from Luminous Dynamics
- Inspired by the need for accessible NixOS management
- Thanks to the NixOS community for excellent documentation
- CodeMirror for the excellent code editor
- All contributors who help make this better
- Service logs may show "permission denied" for some system services
- Package search can be slow on first run (building cache)
- Some hardware detection requires root privileges
- WebKit-based browsers may have SSE connection limits
- π Open an issue on GitHub
- π Check the FAQ
- π¬ Join our Discord
- π§ Email: [email protected]
- β Package management
- β Configuration editing
- β Service management
- β Hardware configuration
- β User management
- Dark mode
- Mobile support
- Backup/restore
- Plugin system
- Multi-system management
- Declarative GUI configuration
- Advanced monitoring
- Kubernetes integration
Made with β€οΈ for the NixOS community. May your configurations always be reproducible! π
"The future of computing is declarative, and we're here to make it accessible to everyone."