Commit graph

90 commits

Author SHA1 Message Date
Geir Okkenhaug Jerstad
a17326a72e Add Claude Task Master AI package and documentation
- Add Nix package for task-master-ai in packages/claude-task-master-ai.nix
- Update packages/default.nix to export the new package
- Add comprehensive documentation for packaging and MCP integration
- Add guile scripting solution documentation
2025-06-14 15:40:23 +02:00
Geir Okkenhaug Jerstad
acb6a0b6ce tweaks to ollama upped the cpu limit 2025-06-14 09:57:40 +02:00
Geir Okkenhaug Jerstad
e7ff1ae9d0 tweaks to ollama upped the cpu limit 2025-06-14 09:43:34 +02:00
Geir Okkenhaug Jerstad
d4436fe7f3 tweaks to ollama 2025-06-14 09:38:10 +02:00
Geir Okkenhaug Jerstad
fe96f9fb7c tweaks to ollama 2025-06-14 09:37:47 +02:00
Geir Okkenhaug Jerstad
c81f5b5282 📝 Document successful Ollama + Open WebUI deployment
- Add deployment success update to OLLAMA_DEPLOYMENT_SUMMARY.md
- Include service status verification and connectivity tests
- Document resolved deployment issues and final configuration
- Confirm production-ready status with access URLs
- Both services tested and confirmed working on grey-area
2025-06-14 08:47:04 +02:00
Geir Okkenhaug Jerstad
2e62c6f3bf Update Ollama configuration and add Open WebUI support
- Fix ollama module by removing invalid meta section
- Update grey-area ollama service configuration:
  - Change host binding to 0.0.0.0 for external access
  - Remove invalid rsyslog configuration
  - Enable firewall access
- Add Open WebUI module with proper configuration:
  - Integrate with Ollama API at localhost:11434
  - Disable authentication for development
  - Open firewall on port 8080
- Successful test build of grey-area configuration
2025-06-14 08:24:41 +02:00
Geir Okkenhaug Jerstad
cf11d447f4 🤖 Implement RAG + MCP + Task Master AI Integration for Intelligent Development Environment
MAJOR INTEGRATION: Complete implementation of Retrieval Augmented Generation (RAG) + Model Context Protocol (MCP) + Claude Task Master AI system for the NixOS home lab, creating an intelligent development environment with AI-powered fullstack web development assistance.

🏗️ ARCHITECTURE & CORE SERVICES:
• modules/services/rag-taskmaster.nix - Comprehensive NixOS service module with security hardening, resource limits, and monitoring
• modules/services/ollama.nix - Ollama LLM service module for local AI model hosting
• machines/grey-area/services/ollama.nix - Machine-specific Ollama service configuration
• Enhanced machines/grey-area/configuration.nix with Ollama service enablement

🤖 AI MODEL DEPLOYMENT:
• Local Ollama deployment with 3 specialized AI models:
  - llama3.3:8b (general purpose reasoning)
  - codellama:7b (code generation & analysis)
  - mistral:7b (creative problem solving)
• Privacy-first approach with completely local AI processing
• No external API dependencies or data sharing

📚 COMPREHENSIVE DOCUMENTATION:
• research/RAG-MCP.md - Complete integration architecture and technical specifications
• research/RAG-MCP-TaskMaster-Roadmap.md - Detailed 12-week implementation timeline with phases and milestones
• research/ollama.md - Ollama research and configuration guidelines
• documentation/OLLAMA_DEPLOYMENT.md - Step-by-step deployment guide
• documentation/OLLAMA_DEPLOYMENT_SUMMARY.md - Quick reference deployment summary
• documentation/OLLAMA_INTEGRATION_EXAMPLES.md - Practical integration examples and use cases

🛠️ MANAGEMENT & MONITORING TOOLS:
• scripts/ollama-cli.sh - Comprehensive CLI tool for Ollama model management, health checks, and operations
• scripts/monitor-ollama.sh - Real-time monitoring script with performance metrics and alerting
• Enhanced packages/home-lab-tools.nix with AI tool references and utilities

👤 USER ENVIRONMENT ENHANCEMENTS:
• modules/users/geir.nix - Added ytmdesktop package for enhanced development workflow
• Integrated AI capabilities into user environment and toolchain

🎯 KEY CAPABILITIES IMPLEMENTED:
 Intelligent code analysis and generation across multiple languages
 Infrastructure-aware AI that understands NixOS home lab architecture
 Context-aware assistance for fullstack web development workflows
 Privacy-preserving local AI processing with enterprise-grade security
 Automated project management and task orchestration
 Real-time monitoring and health checks for AI services
 Scalable architecture supporting future AI model additions

🔒 SECURITY & PRIVACY FEATURES:
• Complete local processing - no external API calls
• Security hardening with restricted user permissions
• Resource limits and isolation for AI services
• Comprehensive logging and monitoring for security audit trails

📈 IMPLEMENTATION ROADMAP:
• Phase 1: Foundation & Core Services (Weeks 1-3)  COMPLETED
• Phase 2: RAG Integration (Weeks 4-6) - Ready for implementation
• Phase 3: MCP Integration (Weeks 7-9) - Architecture defined
• Phase 4: Advanced Features (Weeks 10-12) - Roadmap established

This integration transforms the home lab into an intelligent development environment where AI understands infrastructure, manages complex projects, and provides expert assistance while maintaining complete privacy through local processing.

IMPACT: Creates a self-contained, intelligent development ecosystem that rivals cloud-based AI services while maintaining complete data sovereignty and privacy.
2025-06-13 08:44:40 +02:00
Geir Okkenhaug Jerstad
4cb3852039 expanded lab script maybe we need to switvh to smoething other than bash soon 2025-06-12 21:42:00 +02:00
Geir Okkenhaug Jerstad
9274ab1e17 Improve SSH diagnostics in lab status command 2025-06-12 21:26:59 +02:00
Geir Okkenhaug Jerstad
38bc909c6a Fix SSH user in lab status command 2025-06-12 21:25:37 +02:00
Geir Okkenhaug Jerstad
53480c72bc Improve lab status command to check both LAN and Tailscale connectivity 2025-06-12 21:21:59 +02:00
Geir Okkenhaug Jerstad
07903ac9e3 Remove duplicate hardware module import 2025-06-12 21:18:55 +02:00
Geir Okkenhaug Jerstad
fc26b3f7f2 Fix lib import in hardware-co.nix 2025-06-12 21:18:20 +02:00
Geir Okkenhaug Jerstad
253b05b45e Renamed hardware and disk configuration files for congenital-optimist 2025-06-12 21:17:44 +02:00
Geir Okkenhaug Jerstad
1a4e7fd3f6 made script for steam on xwayland satelite 2025-06-12 17:37:12 +02:00
Geir Okkenhaug Jerstad
fc1482494f steam xwayland 2025-06-12 15:20:48 +02:00
Geir Okkenhaug Jerstad
1b915a7610 feat: implement NFS with NFSv4 ID mapping across home lab
- Add NFSv4 ID mapping configuration using services.nfs.idmapd.settings
- Configure consistent domain 'home.lab' for ID mapping across all machines
- Update sleeper-service NFS server with proper security (root_squash, all_squash)
- Create reusable NFS client module (modules/services/nfs-client.nix)
- Deploy NFS client configuration to grey-area and congenital-optimist
- Maintain consistent media group GID (993) across all machines
- Support both local (10.0.0.0/24) and Tailscale (100.64.0.0/10) networks
- Test and verify NFS connectivity and ID mapping functionality

Resolves permission management issues and enables secure file sharing
across the home lab infrastructure.
2025-06-11 10:45:08 +02:00
Geir Okkenhaug Jerstad
edcf3220a0 testing idmap for nfs 2025-06-11 10:33:07 +02:00
Geir Okkenhaug Jerstad
c3d1333538 Fix NFS configuration: Remove ZFS mount point conflict with tmpfiles
- Remove /mnt/storage/media from systemd.tmpfiles.rules (it's a ZFS dataset mount point)
- Add ExecStartPost to set proper permissions on ZFS-mounted media directory
- Update NFS research documentation with ZFS integration best practices
- Add section explaining ZFS mount point vs tmpfiles.rules conflicts

This resolves the potential conflict where tmpfiles tries to create a directory
that ZFS wants to use as a mount point for the storage/media dataset.
2025-06-11 10:12:51 +02:00
Geir Okkenhaug Jerstad
3f93a85469 testing fix for nfs shares 2025-06-11 09:51:36 +02:00
Geir Okkenhaug Jerstad
e440585a8c typo 2025-06-11 09:36:29 +02:00
Geir Okkenhaug Jerstad
967ba38411 Implement media group for NFS permission management
- Create shared media-group.nix module with fixed GID (993)
- Add both geir and sma users to media group for shared NFS access
- Update NFS server configuration to use root:media ownership with 0775 permissions
- Convert all media services to use media group instead of users group:
  - Jellyfin, Calibre-web, Audiobookshelf, Transmission
- Enable group write access to all NFS shares (/mnt/storage/*)
- Maintain security with root ownership while allowing group collaboration

This resolves NFS permission issues by providing consistent group-based access
control across all media services and storage directories.
2025-06-11 09:33:24 +02:00
Geir Okkenhaug Jerstad
2276dd59cd added starship to sma user 2025-06-11 09:21:19 +02:00
Geir Okkenhaug Jerstad
2a25c42063 fixed ssh forwarding to git.geokkjer.eu 2025-06-10 23:03:23 +02:00
Geir Okkenhaug Jerstad
f6eb588ccd Update instruction file with corrected Git SSH configuration
- Change port from 1337 to 2222
- Update user from forgejo to git for SSH compatibility
- Fix URL and remote configuration examples
2025-06-10 22:43:49 +02:00
Geir Okkenhaug Jerstad
1f222f2997 Change Git SSH port from 1337 to 2222
- Port 1337 appears to be blocked by VPS provider
- Port 2222 is more commonly allowed for SSH services
- Update both reverse-proxy and Forgejo configurations
- This should resolve the SSH timeout issues
2025-06-10 22:42:13 +02:00
Geir Okkenhaug Jerstad
f2c9eed794 Fix Forgejo SSH user configuration
- Set explicit git user for Forgejo service
- Add SSH_USER configuration for proper SSH handling
- Ensure compatibility with system SSH server
2025-06-10 22:40:01 +02:00
Geir Okkenhaug Jerstad
1fd6de2551 remember to import the fonts also 2025-06-10 21:59:00 +02:00
Geir Okkenhaug Jerstad
aea88565bd moar fonts 2025-06-10 21:51:41 +02:00
Geir Okkenhaug Jerstad
8029d93a84 added niri 2025-06-10 20:33:54 +02:00
Geir Okkenhaug Jerstad
cdbce471ba updated README 2025-06-10 11:08:43 +02:00
Geir Okkenhaug Jerstad
8884c42cf2 Consolidate CLI tools and fix git aliases
- Consolidated 25+ common CLI tools into modules/common/base.nix
- Added modern rust-based tools (eza, bat, ripgrep, etc.) system-wide
- Removed duplicated packages from user and machine configs
- Added consistent shell aliases for modern CLI tools
- Fixed gpa alias to properly push to all remotes
- Removed duplicate git-push-all alias from geir.nix
- Added comprehensive documentation in CLI_TOOLS_CONSOLIDATION.md

Benefits:
- Single source of truth for common CLI tools
- Reduced duplication across 7+ configuration files
- Improved git workflow with flexible multi-remote pushing
- Better maintainability and consistency
2025-06-08 09:28:10 +00:00
Geir Okkenhaug Jerstad
73c3ac9386 fixed typo 2025-06-08 08:31:16 +00:00
Geir Okkenhaug Jerstad
cd43292cfd feat: add NixOS logo to README and assets
- Add nixos_logo.svg to assets/ directory with optimized viewBox
- Integrate logo into README header with centered layout
- Add inline logos in Technology Stack and Configuration Philosophy sections
- Include footer logo for consistent branding
- Enhance visual identity and professional presentation

The logo uses SVG format for crisp display at all resolutions and
includes gradient styling consistent with NixOS branding.
2025-06-08 08:29:39 +00:00
Geir Okkenhaug Jerstad
b781252847 Add congenital-optimist support to lab tool
- Add congenital-optimist as local deployment target
- Use direct nixos-rebuild for local deployment (no SSH)
- Update all machine arrays and help text to include 4th machine
- Optimize deployment handling for local vs remote machines
2025-06-07 18:06:25 +00:00
Geir Okkenhaug Jerstad
7ac9c0fc98 fix(tools): remove duplicate update-all command from lab tool
Clean up redundant command case that was accidentally left in during
the addition of the update command functionality.
2025-06-07 17:50:51 +00:00
Geir Okkenhaug Jerstad
1b97799701 feat(tools): add update command to lab tool
- Add update_all_machines function to deploy to all remote machines
- Support all deployment modes: boot, test, switch
- Provide detailed progress feedback and error reporting
- Update help text with new command and examples

Usage: lab update [mode]
Example: lab update switch  # Update all machines immediately
2025-06-07 17:49:47 +00:00
Geir Okkenhaug Jerstad
7a43630bc6 feat: infrastructure updates and documentation improvements
- Update Forgejo service configuration on grey-area
- Refine reverse-proxy network configuration
- Add README_new.md with enhanced documentation structure
- Update instruction.md with latest workflow guidelines
- Enhance plan.md with additional deployment considerations
- Complete PR template restructuring for professional tone

These changes improve service reliability and documentation clarity
while maintaining infrastructure consistency across all machines.
2025-06-07 17:45:47 +00:00
Geir Okkenhaug Jerstad
fed1c5a1f8 docs: update templates and documentation to professional tone
- Add git commit message template with comprehensive guidelines
- Update PR template to remove emojis and casual language
- Rewrite README.md with professional, technical approach
- Update BRANCHING_STRATEGY.md to match new tone
- Backup original README as README_old.md

Templates now align with infrastructure documentation standards
and provide clear guidance for contributions.
2025-06-07 17:39:39 +00:00
Geir Okkenhaug Jerstad
7aafd4cdd8 docs: Add Forgejo Git configuration instructions
- Correct SSH URL format: forgejo@git.geokkjer.eu:1337
- Document SSH port forwarding setup (1337 -> grey-area:22)
- Add remote configuration examples
- Clarify primary vs backup repository roles
2025-06-07 16:46:09 +00:00
Geir Okkenhaug Jerstad
c8bee48ee3 Update plan.md: GNU Stow + literate Emacs approach, deploy-rs migration planning
- Phase 4: Restructured to use GNU Stow for regular dotfiles + literate programming for Emacs only
- Added comprehensive package structure for Stow deployment
- Elevated deploy-rs migration to high priority with detailed configuration examples
- Updated status to reflect 4/4 machines fully operational with complete service stack
- Added recent critical issue resolution documentation
- Updated next phase priorities to reflect new dotfiles approach
2025-06-07 16:44:11 +00:00
Geir Okkenhaug Jerstad
4a57978f45 fixed nfs 2025-06-07 16:33:34 +00:00
Geir Okkenhaug Jerstad
9bfddf14ce treying to get nfs to work 2025-06-07 15:29:28 +00:00
Geir Okkenhaug Jerstad
2d3728f28b feat: create shared extraHosts module with Tailscale IPs
- Create modules/network/extraHosts.nix with Tailscale IP mappings
- Replace hardcoded networking.extraHosts in all machine configs
- Add extraHosts module import to all machines
- Enable Tailscale service by default in the module
- Use Tailscale mesh network IPs for reliable connectivity
2025-06-07 15:07:17 +00:00
Geir Okkenhaug Jerstad
fa2b84cf65 fix: resolve sma user definition conflict between modules
- Remove duplicate sma user definition from incus.nix module
- The sma user is properly defined in modules/users/sma.nix with incus-admin group
- This resolves the isNormalUser/isSystemUser assertion failure blocking congenital-optimist rebuild
- Clean up grey-area configuration and modularize services
- Update SSH keys with correct IP addresses for grey-area and reverse-proxy
2025-06-07 16:58:22 +02:00
Geir Okkenhaug Jerstad
a35d9ff420 Implement SSH forwarding for Forgejo Git access
- Add nginx stream configuration on reverse-proxy to forward port 2222 to apps:22
- Update firewall rules to allow port 2222 for Git SSH access
- Configure Forgejo to use SSH_PORT = 2222 for Git operations
- Add comprehensive SSH forwarding research documentation
- Enable Git operations via git@git.geokkjer.eu:2222

Phase 1 implementation using nginx stream module complete.
Ready for testing and potential Phase 2 migration to HAProxy.
2025-06-07 15:21:11 +02:00
Geir Okkenhaug Jerstad
1e75db5f15 Update testing methodology: Add git staging before flake check
This ensures Nix can access all files during testing, preventing
path not found errors when testing configurations.
2025-06-07 12:11:49 +02:00
Geir Okkenhaug Jerstad
9837d82199 Refactor: Simplify module structure and reorganize services
- Removed system/ directory, merged applications into users/geir.nix
- Simplified fonts.nix to bare minimum (users can add more)
- Moved transmission.nix to sleeper-service/services/ (machine-specific)
- Organized grey-area services into services/ directory
- Updated import paths and tested all configurations
- Added research documentation for deploy-rs and GNU Stow
2025-06-07 12:11:20 +02:00
Geir Okkenhaug Jerstad
e976b14d19 refactor: Move network configurations to machine directories
- Move network-congenital-optimist.nix to machines/congenital-optimist/
- Move network-sleeper-service.nix to machines/sleeper-service/
- Update import paths in machine configurations
- Clean up modules/network/common.nix to remove SSH duplication
- Consolidate SSH configuration in modules/security/ssh-keys.nix
- Remove machine-specific networking from shared common module

This improves dependency tracking by co-locating machine-specific
network configurations with their respective machines.
2025-06-06 18:08:45 +02:00