Commit graph

23 commits

Author SHA1 Message Date
4b3a0b226e some plans 2025-07-12 18:49:19 +02:00
Geir Okkenhaug Jerstad
db9fadcb0a moved some files to archive 2025-07-07 14:20:29 +02:00
2fdf7e4b0c regressed lab-tool to 0.10-dev to make it again 2025-07-04 19:31:48 +02:00
646c8bbc20 refactor: apply functional programming to SSH module
- Split complex nested functions into focused, single-responsibility helpers
- Created io/ directory with pure command builders and impure executors
- Eliminated parentheses complexity that was causing compilation errors
- SSH module now compiles and runs successfully with cleaner architecture

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-04 17:09:49 +02:00
043817f7d5 fix: ensure consistent sma user for all SSH operations
- Add 'user' field mapping in get-ssh-config for compatibility
- Add default identity-file (~/.ssh/id_ed25519_admin) for sma user
- Fix update-flake function syntax error in deployment.scm
- All SSH operations (deploy, status, health, ssh command) now use sma user consistently
2025-07-04 16:47:53 +02:00
3599f278a7 feat: implement SSH + rsync deployment method
- Extract deploy-rs code into separate module (lab/deploy-rs.scm)
- Create new SSH + rsync deployment module (lab/ssh-deploy.scm)
- Make SSH + rsync the default deployment method
- Update help text and examples
- Add options: --boot, --test, --use-deploy-rs
- Supports same workflow as manual: rsync + nixos-rebuild --flake

This provides a faster, simpler deployment method that matches
the manual workflow: sudo nixos-rebuild --flake /path#machine
2025-07-04 16:44:49 +02:00
59d287a543 fix: reduce excess parentheses in lab-tool SSH module
- Remove one excess closing parenthesis causing compilation warning
- Lab tool core functionality now works properly
2025-07-04 16:01:52 +02:00
250ba5e2ea feat: switch to incus-lts and fix lab-tool SSH syntax
- Use incus-lts (6.0.4) instead of latest incus to avoid cowsql build issues
- Re-enable incus on congenital-optimist with LTS version
- Restore incus-admin group membership for users
- Fix missing parentheses in lab-tool SSH module
- This provides stable containerization without build failures
2025-07-04 15:57:32 +02:00
add2152e3a disabled incus 2025-07-04 15:09:23 +02:00
f0a93f457e updated the lab-tool to use correct keys 2025-07-03 23:09:43 +02:00
62fabf835d updated the lab-tool to use correct keys 2025-07-03 22:49:35 +02:00
649f0f3b2c fix: resolve emacs claude-code errors and optimize lab-tool deployments
- Fix claude-code.el quelpa installation with correct Git URL
- Make auto-compile and flycheck conditional for little-rascal
- Auto-skip checks for local machines in lab-tool for faster deployments
- Prevent emacs "Cannot load auto-compile" and "arrayp, nil" errors

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-03 18:31:37 +02:00
47c2961033 Refactor emacs configuration and clean up lab-tool project
- Reorganized emacs configuration with profiles in modules/development/emacs.nix
- Updated machine configurations to use new emacs module structure
- Cleaned up lab-tool project by removing archive, research, testing, and utils directories
- Streamlined lab-tool to focus on core deployment functionality with deploy-rs
- Added DEVELOPMENT.md documentation for lab-tool

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-03 17:45:34 +02:00
bff56e4ffc We have made an emacs conf with profiles. And refactored lab tool to use deploy-rs 2025-07-03 15:09:33 +02:00
Geir Okkenhaug Jerstad
5f65abc2cc feat: implement orchestrated auto-update system and fix deployment
- Add sma user module to little-rascal configuration for passwordless deployment
- Replace cosmic-greeter with greetd on both congenital-optimist and little-rascal
- Implement staggered auto-update system that updates remote machines first
- Add proper SSH user configuration for secure deployments
- Fix deployment permission issues by configuring admin user access
- Ensure orchestrator machine (congenital-optimist) reboots last to prevent SSH disconnection
- Add comprehensive error handling and update reporting
- Successfully tested lab tool deployment and auto-update on all machines

Fixes the critical issue where orchestrator reboot could break SSH connections
during multi-machine updates.
2025-06-30 14:35:21 +02:00
Geir Okkenhaug Jerstad
f42bae513c feat(lab-tool): integrate little-rascal laptop into Home Lab management
- Add little-rascal to lab-tool configuration with proper attributes
- Include little-rascal in machine management, SSH connectivity, and deployment targets
- Update README.md with examples including little-rascal
- Verify full integration: machines listing, status monitoring, SSH access, deployment ready

The little-rascal laptop is now fully managed through the unified lab-tool interface
alongside other Home Lab machines (congenital-optimist, sleeper-service, grey-area, reverse-proxy).
2025-06-30 11:40:10 +02:00
6eac143f57 feat: Add little-rascal laptop config and lab-tool auto-update system
## New Machine: little-rascal
- Add Lenovo Yoga Slim 7 14ARE05 configuration (AMD Ryzen 7 4700U)
- Niri desktop with CLI login (greetd + tuigreet)
- zram swap configuration (25% of RAM with zstd)
- AMD-optimized hardware support and power management
- Based on congenital-optimist structure with laptop-specific additions

## Lab Tool Auto-Update System
- Implement Guile Scheme auto-update module (lab/auto-update.scm)
- Add health checks, logging, and safety features
- Integrate with existing deployment and machine management
- Update main CLI with auto-update and auto-update-status commands
- Create NixOS service module for automated updates
- Document complete implementation in simple-auto-update-plan.md

## MCP Integration
- Configure Task Master AI and Context7 MCP servers
- Set up local Ollama integration for AI processing
- Add proper environment configuration for existing models

## Infrastructure Updates
- Add little-rascal to flake.nix with deploy-rs support
- Fix common user configuration issues
- Create missing emacs.nix module
- Update package integrations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-27 22:03:54 +02:00
Geir Okkenhaug Jerstad
6306a05d64 Fix lab deploy command to properly handle switch/test/boot modes
- Updated cmd-deploy function to accept and parse mode arguments
- Added validation for deployment modes with helpful error messages
- Updated command dispatcher to pass all arguments to deploy function
- Enhanced help text with mode documentation and examples
- Fixes issue where deploy always used 'boot' mode regardless of flags

Examples now working:
- lab deploy machine switch  # Deploy and activate immediately
- lab deploy machine test    # Deploy temporarily for testing
- lab deploy machine boot    # Deploy for next boot (default)
2025-06-26 13:39:46 +02:00
Geir Okkenhaug Jerstad
9d8952c4ce feat: Complete Ollama CPU optimization for TaskMaster AI
- Optimize Ollama service configuration for maximum CPU performance
  - Increase OLLAMA_NUM_PARALLEL from 2 to 4 workers
  - Increase OLLAMA_CONTEXT_LENGTH from 4096 to 8192 tokens
  - Add OLLAMA_KV_CACHE_TYPE=q8_0 for memory efficiency
  - Set OLLAMA_LLM_LIBRARY=cpu_avx2 for optimal CPU performance
  - Configure OpenMP threading with 8 threads and core binding
  - Add comprehensive systemd resource limits and CPU quotas
  - Remove incompatible NUMA policy setting

- Upgrade TaskMaster AI model ecosystem
  - Main model: qwen3:4b → qwen2.5-coder:7b (specialized coding model)
  - Research model: deepseek-r1:1.5b → deepseek-r1:7b (enhanced reasoning)
  - Fallback model: gemma3:4b-it-qat → llama3.3:8b (reliable general purpose)

- Create comprehensive optimization and management scripts
  - Add ollama-optimize.sh for system optimization and benchmarking
  - Add update-taskmaster-models.sh for TaskMaster configuration management
  - Include model installation, performance testing, and system info functions

- Update TaskMaster AI configuration
  - Configure optimized models with grey-area:11434 endpoint
  - Set performance parameters for 8192 context window
  - Add connection timeout and retry settings

- Fix flake configuration issues
  - Remove nested packages attribute in packages/default.nix
  - Fix package references in modules/users/geir.nix
  - Clean up obsolete package files

- Add comprehensive documentation
  - Document complete optimization process and results
  - Include performance benchmarking results
  - Provide deployment instructions and troubleshooting guide

Successfully deployed via deploy-rs with 3-4x performance improvement estimated.
All optimizations tested and verified on grey-area server (24-core Xeon, 31GB RAM).
2025-06-18 13:08:24 +02:00
Geir Okkenhaug Jerstad
74142365eb cleaned up and maybe finished the guile lab tool 2025-06-16 21:09:41 +02:00
Geir Okkenhaug Jerstad
819ab7cafb grokking simplicity and refactoring 2025-06-16 19:59:26 +02:00
Geir Okkenhaug Jerstad
564faaa479 feat: implement modular lab tool structure with working CLI
- Add lab/ module structure (core, machines, deployment, monitoring)
- Add mcp/ server stub for future MCP integration
- Update main.scm to use new modular architecture
- Fix utils/config.scm to export get-current-config function
- Create comprehensive test suite with all modules passing
- Update TODO.md with completed high priority tasks

Key improvements:
- Modular design following K.I.S.S principles
- Working CLI interface for status, machines, deploy commands
- Infrastructure status checking functional
- All module tests passing
- Clean separation of pure/impure functions

CLI now works: ./main.scm status, ./main.scm machines, ./main.scm deploy <machine>
2025-06-16 14:29:00 +02:00
Geir Okkenhaug Jerstad
fb4361d938 grokking simplicity and refactoring 2025-06-16 13:43:21 +02:00