This commit is contained in:
Geir Okkenhaug Jerstad 2025-06-24 09:19:33 +02:00
parent dd1f20d08d
commit fb45c41a93
4 changed files with 149 additions and 53 deletions

View file

@ -1,52 +1,99 @@
# AiderChat configuration file
##########################################################
# Aider Configuration for Home Lab Project
# Place in your home dir, or at the root of your git repo.
##########################################################
# General settings
project_name: Home Lab
language: guile
description: >
This is the configuration for AiderChat, tailored for managing and orchestrating
the Home Lab project. The project uses Guile for scripting and NixOS for system
configuration.
#############
# Main model:
# File inclusion/exclusion
include:
- "**/*.scm" # Include all Guile Scheme files
- "**/*.nix" # Include all NixOS configuration files
- "**/*.yml" # Include YAML configuration files
- "**/*.md" # Include Markdown documentation files
exclude:
- "**/node_modules/**" # Exclude Node.js dependencies
- "**/.git/**" # Exclude Git metadata
- "**/tmp/**" # Exclude temporary files
## Specify the model to use for the main chat (using Ollama with qwen2.5-coder)
model: ollama/qwen2.5-coder:7b
# Chat settings
chat:
model: ollama
endpoint: http://grey-area:11434 # Ollama service running on grey-area
temperature: 0.7
max_tokens: 2048
system_prompt: >
You are an assistant helping with the Home Lab project. Focus on Guile scripting,
NixOS configuration, and infrastructure orchestration.
########################
# API Keys and settings:
# Workflow settings
workflow:
auto_save: true
auto_commit: false
branch_name: aiderchat-updates
commit_message_template: >
[AiderChat] {description}
## Set environment variables for Ollama
set-env:
- OLLAMA_API_BASE=http://grey-area:11434
# Logging
logging:
level: info
file: aiderchat.log
#################
# Model settings:
# Extensions
extensions:
- name: nixos-helper
description: >
Provides additional support for NixOS configuration and orchestration tasks.
- name: guile-helper
description: >
Adds syntax highlighting and linting for Guile Scheme files.
## Specify a file with aider model settings for unknown models
model-settings-file: .aider.model.settings.yml
## Model aliases for convenience
alias:
- "code:ollama/qwen2.5-coder:7b"
- "chat:ollama/llama3.1:8b"
- "reason:ollama/deepseek-r1:latest"
- "task:ollama/taskmaster-qwen:latest"
- "research:ollama/research-deepseek:latest"
- "fast:ollama/qwen3:4b"
## Specify what edit format the LLM should use
edit-format: diff
## Specify the model to use for commit messages and chat history summarization
weak-model: ollama/qwen3:4b
## Verify the SSL cert when connecting to models
verify-ssl: false
## Timeout in seconds for API calls (increased for slower CPU inference)
timeout: 300
## Disable model warnings for faster startup
show-model-warnings: false
###################
# Repomap settings:
## Suggested number of tokens to use for repo map (reduced for performance)
map-tokens: 1024
## Control how often the repo map is refreshed
map-refresh: manual
######################
# File handling:
## Auto-load convention files for this project
read:
- CONVENTIONS.md
################
# History Files:
## Specify the chat input history file
input-history-file: .aider.input.history
## Specify the chat history file
chat-history-file: .aider.chat.history.md
#################
# Cache settings:
## Enable caching of prompts for better performance
cache-prompts: true
## Keep cache warm to reduce latency
cache-keepalive-pings: 2
###################
# Performance settings:
## Disable model checking for faster startup
check-model-accepts-settings: false
## Reduce chat history to save tokens
max-chat-history-tokens: 4096
###################
# UI/UX settings:
## Use dark mode
dark-mode: true
## Show model warnings
show-model-warnings: false

1
.gitignore vendored
View file

@ -130,3 +130,4 @@ node_modules/
# Task files
tasks.json
tasks/
.aider*

48
CONVENTIONS.md Normal file
View file

@ -0,0 +1,48 @@
# Home Lab Project Conventions
## Code Style Guidelines
### NixOS Configuration
- Use descriptive variable names in Nix expressions
- Comment complex expressions and configurations
- Follow the NixOS manual conventions for module structure
- Use `lib.mkOption` for configurable options
- Prefer `services.` namespace for service configurations
### Guile Scheme
- Use kebab-case for function and variable names
- Prefer pure functions when possible
- Add docstrings for public functions
- Use meaningful parameter names
- Follow GNU Guile coding standards
### Documentation
- Use Markdown for all documentation
- Include examples in code documentation
- Keep README files up to date
- Document configuration options clearly
### Project Structure
- Keep machine-specific configurations in `machines/` directory
- Use `modules/` for reusable NixOS modules
- Store documentation in `documentation/` directory
- Place scripts in `scripts/` directory
- Research and notes go in `research/` directory
### Git Workflow
- Use descriptive commit messages
- Prefix commits with area of change (e.g., "modules:", "docs:", "machines:")
- Create feature branches for significant changes
- Keep commits focused and atomic
### Security
- Never commit secrets or API keys
- Use proper file permissions for sensitive files
- Follow NixOS security best practices
- Document security considerations for services

12
flake.lock generated
View file

@ -54,11 +54,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1750365781,
"narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=",
"lastModified": 1750506804,
"narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54",
"rev": "4206c4cb56751df534751b058295ea61357bbbaa",
"type": "github"
},
"original": {
@ -70,11 +70,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1750400657,
"narHash": "sha256-3vkjFnxCOP6vm5Pm13wC/Zy6/VYgei/I/2DWgW4RFeA=",
"lastModified": 1750622754,
"narHash": "sha256-kMhs+YzV4vPGfuTpD3mwzibWUE6jotw5Al2wczI0Pv8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b2485d56967598da068b5a6946dadda8bfcbcd37",
"rev": "c7ab75210cb8cb16ddd8f290755d9558edde7ee1",
"type": "github"
},
"original": {