diff --git a/.beads/.gitignore b/.beads/.gitignore deleted file mode 100644 index 4a7a77d..0000000 --- a/.beads/.gitignore +++ /dev/null @@ -1,39 +0,0 @@ -# SQLite databases -*.db -*.db?* -*.db-journal -*.db-wal -*.db-shm - -# Daemon runtime files -daemon.lock -daemon.log -daemon.pid -bd.sock -sync-state.json -last-touched - -# Local version tracking (prevents upgrade notification spam after git ops) -.local_version - -# Legacy database files -db.sqlite -bd.db - -# Worktree redirect file (contains relative path to main repo's .beads/) -# Must not be committed as paths would be wrong in other clones -redirect - -# Merge artifacts (temporary files from 3-way merge) -beads.base.jsonl -beads.base.meta.json -beads.left.jsonl -beads.left.meta.json -beads.right.jsonl -beads.right.meta.json - -# NOTE: Do NOT add negation patterns (e.g., !issues.jsonl) here. -# They would override fork protection in .git/info/exclude, allowing -# contributors to accidentally commit upstream issue databases. -# The JSONL files (issues.jsonl, interactions.jsonl) and config files -# are tracked by git by default since no pattern above ignores them. diff --git a/.beads/README.md b/.beads/README.md deleted file mode 100644 index 50f281f..0000000 --- a/.beads/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# Beads - AI-Native Issue Tracking - -Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code. - -## What is Beads? - -Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git. - -**Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads) - -## Quick Start - -### Essential Commands - -```bash -# Create new issues -bd create "Add user authentication" - -# View all issues -bd list - -# View issue details -bd show - -# Update issue status -bd update --status in_progress -bd update --status done - -# Sync with git remote -bd sync -``` - -### Working with Issues - -Issues in Beads are: -- **Git-native**: Stored in `.beads/issues.jsonl` and synced like code -- **AI-friendly**: CLI-first design works perfectly with AI coding agents -- **Branch-aware**: Issues can follow your branch workflow -- **Always in sync**: Auto-syncs with your commits - -## Why Beads? - -✨ **AI-Native Design** -- Built specifically for AI-assisted development workflows -- CLI-first interface works seamlessly with AI coding agents -- No context switching to web UIs - -🚀 **Developer Focused** -- Issues live in your repo, right next to your code -- Works offline, syncs when you push -- Fast, lightweight, and stays out of your way - -🔧 **Git Integration** -- Automatic sync with git commits -- Branch-aware issue tracking -- Intelligent JSONL merge resolution - -## Get Started with Beads - -Try Beads in your own projects: - -```bash -# Install Beads -curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash - -# Initialize in your repo -bd init - -# Create your first issue -bd create "Try out Beads" -``` - -## Learn More - -- **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs) -- **Quick Start Guide**: Run `bd quickstart` -- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples) - ---- - -*Beads: Issue tracking that moves at the speed of thought* ⚡ diff --git a/.beads/config.yaml b/.beads/config.yaml deleted file mode 100644 index f242785..0000000 --- a/.beads/config.yaml +++ /dev/null @@ -1,62 +0,0 @@ -# Beads Configuration File -# This file configures default behavior for all bd commands in this repository -# All settings can also be set via environment variables (BD_* prefix) -# or overridden with command-line flags - -# Issue prefix for this repository (used by bd init) -# If not set, bd init will auto-detect from directory name -# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc. -# issue-prefix: "" - -# Use no-db mode: load from JSONL, no SQLite, write back after each command -# When true, bd will use .beads/issues.jsonl as the source of truth -# instead of SQLite database -# no-db: false - -# Disable daemon for RPC communication (forces direct database access) -# no-daemon: false - -# Disable auto-flush of database to JSONL after mutations -# no-auto-flush: false - -# Disable auto-import from JSONL when it's newer than database -# no-auto-import: false - -# Enable JSON output by default -# json: false - -# Default actor for audit trails (overridden by BD_ACTOR or --actor) -# actor: "" - -# Path to database (overridden by BEADS_DB or --db) -# db: "" - -# Auto-start daemon if not running (can also use BEADS_AUTO_START_DAEMON) -# auto-start-daemon: true - -# Debounce interval for auto-flush (can also use BEADS_FLUSH_DEBOUNCE) -# flush-debounce: "5s" - -# Git branch for beads commits (bd sync will commit to this branch) -# IMPORTANT: Set this for team projects so all clones use the same sync branch. -# This setting persists across clones (unlike database config which is gitignored). -# Can also use BEADS_SYNC_BRANCH env var for local override. -# If not set, bd sync will require you to run 'bd config set sync.branch '. -# sync-branch: "beads-sync" - -# Multi-repo configuration (experimental - bd-307) -# Allows hydrating from multiple repositories and routing writes to the correct JSONL -# repos: -# primary: "." # Primary repo (where this database lives) -# additional: # Additional repos to hydrate from (read-only) -# - ~/beads-planning # Personal planning repo -# - ~/work-planning # Work planning repo - -# Integration settings (access with 'bd config get/set') -# These are stored in the database, not in this file: -# - jira.url -# - jira.project -# - linear.url -# - linear.api-key -# - github.org -# - github.repo diff --git a/.beads/interactions.jsonl b/.beads/interactions.jsonl deleted file mode 100644 index e69de29..0000000 diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl deleted file mode 100644 index 012472c..0000000 --- a/.beads/issues.jsonl +++ /dev/null @@ -1 +0,0 @@ -{"id":"AZ-NIX-d9j","title":"Install outline-mcp-server for Outline knowledge base integration","description":"## Summary\nAdd the mcp-outline server to enable AI agents to interact with the AZ-Gruppe Outline wiki.\n\n## MCP Server Details\n- **PyPI package**: `mcp-outline`\n- **Repository**: https://github.com/Vortiago/mcp-outline\n- **License**: MIT\n- **Author**: Atle H. Havsø\n\n## Configuration\n- **OUTLINE_API_KEY**: API key from Outline (required)\n- **OUTLINE_API_URL**: `https://wiki.az-gruppe.com/api`\n- **OUTLINE_DISABLE_DELETE**: `true` (prevent accidental deletions)\n\n## Implementation\nAdd to `home/features/coding/opencode.nix`:\n\n```nix\nOutline = {\n type = \"local\";\n command = [\n \"sh\"\n \"-c\"\n \"OUTLINE_API_KEY=$(cat /run/agenix/outline-key) OUTLINE_API_URL=https://wiki.az-gruppe.com/api OUTLINE_DISABLE_DELETE=true exec uv tool run mcp-outline\"\n ];\n enabled = true;\n};\n```\n\n## Tasks\n1. Add agenix secret for OUTLINE_API_KEY\n2. Add MCP server config to opencode.nix","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-01-08T08:28:21.68774325+01:00","created_by":"sascha.koenig","updated_at":"2026-01-08T08:50:49.963659214+01:00","closed_at":"2026-01-08T08:50:49.963659214+01:00","close_reason":"Complete. Added: (1) MCP config to opencode.nix, (2) AZLT124-L system key and outline-key.age entry to secrets.nix, (3) host secrets.nix for AZLT124-L. User needs to create secrets/outline-key.age with: agenix -e secrets/outline-key.age"} diff --git a/.beads/metadata.json b/.beads/metadata.json deleted file mode 100644 index c787975..0000000 --- a/.beads/metadata.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "database": "beads.db", - "jsonl_export": "issues.jsonl" -} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..34be7fd --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.todos/ +.sidecar/ diff --git a/AGENTS.md b/AGENTS.md index df7a4af..3e421c0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,5 +1,10 @@ # Agent Instructions +## MANDATORY: Use td for Task Management + +You must run td usage --new-session at conversation start (or after /clear) to see current work. +Use td usage -q for subsequent reads. + This project uses **bd** (beads) for issue tracking. Run `bd onboard` to get started. ## Quick Reference diff --git a/flake.lock b/flake.lock index 5bdf603..f6f5594 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1762618334, - "narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=", + "lastModified": 1770165109, + "narHash": "sha256-9VnK6Oqai65puVJ4WYtCTvlJeXxMzAp/69HhQuTdl/I=", "owner": "ryantm", "repo": "agenix", - "rev": "fcdea223397448d35d9b31f798479227e80183f6", + "rev": "b027ee29d959fda4b60b57566d64c98a202e0feb", "type": "github" }, "original": { @@ -24,17 +24,14 @@ "agents": { "flake": false, "locked": { - "lastModified": 1768312204, - "narHash": "sha256-wB1pEROaXzJzxCaJwOyXmD0gq8/hv7OeEw3jNXrPwAc=", - "ref": "refs/heads/master", - "rev": "cfa0f8f942545434a825fedf0a49061d26fff73d", - "revCount": 9, - "type": "git", - "url": "https://code.m3ta.dev/m3tam3re/AGENTS" + "lastModified": 1770643785, + "narHash": "sha256-Npk+DAiOtX1rU0UFCdbjnuuzzUO50jxFhPOUxNKNBiU=", + "path": "/home/sascha.koenig/p/AI/AGENTS", + "type": "path" }, "original": { - "type": "git", - "url": "https://code.m3ta.dev/m3tam3re/AGENTS" + "path": "/home/sascha.koenig/p/AI/AGENTS", + "type": "path" } }, "base16-schemes": { @@ -62,11 +59,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1767386128, - "narHash": "sha256-BJDu7dIMauO2nYRSL4aI8wDNtEm2KOb7lDKP3hxdrpo=", + "lastModified": 1769353768, + "narHash": "sha256-zI+7cbMI4wMIR57jMjDSEsVb3grapTnURDxxJPYFIW0=", "owner": "numtide", "repo": "blueprint", - "rev": "0ed984d51a3031065925ab08812a5434f40b93d4", + "rev": "c7da5c70ad1c9b60b6f5d4f674fbe205d48d8f6c", "type": "github" }, "original": { @@ -104,11 +101,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1766051518, - "narHash": "sha256-znKOwPXQnt3o7lDb3hdf19oDo0BLP4MfBOYiWkEHoik=", + "lastModified": 1770019181, + "narHash": "sha256-hwsYgDnby50JNVpTRYlF3UR/Rrpt01OrxVuryF40CFY=", "owner": "serokell", "repo": "deploy-rs", - "rev": "d5eff7f948535b9c723d60cd8239f8f11ddc90fa", + "rev": "77c906c0ba56aabdbc72041bf9111b565cdd6171", "type": "github" }, "original": { @@ -124,11 +121,11 @@ ] }, "locked": { - "lastModified": 1766150702, - "narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=", + "lastModified": 1769524058, + "narHash": "sha256-zygdD6X1PcVNR2PsyK4ptzrVEiAdbMqLos7utrMDEWE=", "owner": "nix-community", "repo": "disko", - "rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378", + "rev": "71a3fc97d80881e91710fe721f1158d3b96ae14d", "type": "github" }, "original": { @@ -145,11 +142,11 @@ ] }, "locked": { - "lastModified": 1749200714, - "narHash": "sha256-W8KiJIrVwmf43JOPbbTu5lzq+cmdtRqaNbOsZigjioY=", + "lastModified": 1769524058, + "narHash": "sha256-zygdD6X1PcVNR2PsyK4ptzrVEiAdbMqLos7utrMDEWE=", "owner": "nix-community", "repo": "disko", - "rev": "17d08c65c241b1d65b3ddf79e3fac1ddc870b0f6", + "rev": "71a3fc97d80881e91710fe721f1158d3b96ae14d", "type": "github" }, "original": { @@ -183,11 +180,11 @@ ] }, "locked": { - "lastModified": 1748821116, - "narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=", + "lastModified": 1768135262, + "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1", + "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", "type": "github" }, "original": { @@ -245,11 +242,11 @@ ] }, "locked": { - "lastModified": 1768366276, - "narHash": "sha256-NUdsaB6H1wvbOC7oh1UZ7Ojg1I+mYBQv8ovlMB6FbHk=", + "lastModified": 1770654520, + "narHash": "sha256-mg5WZMIPGsFu9MxSrUcuJUPMbfMsF77el5yb/7rc10k=", "owner": "nix-community", "repo": "home-manager", - "rev": "4e235a8746b195e335306d898f0cc93ad6c4564c", + "rev": "6c4fdbe1ad198fac36c320fd45c5957324a80b8e", "type": "github" }, "original": { @@ -266,11 +263,11 @@ ] }, "locked": { - "lastModified": 1767910483, - "narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=", + "lastModified": 1770260404, + "narHash": "sha256-3iVX1+7YUIt23hBx1WZsUllhbmP2EnXrV8tCRbLxHc8=", "owner": "nix-community", "repo": "home-manager", - "rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c", + "rev": "0d782ee42c86b196acff08acfbf41bb7d13eed5b", "type": "github" }, "original": { @@ -282,14 +279,15 @@ }, "m3ta-nixpkgs": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_3", + "opencode": "opencode" }, "locked": { - "lastModified": 1768420390, - "narHash": "sha256-ZV+nlUWrz0Ay2+wE8smS3EdBUDNEJzLYD6zKbXwcUNY=", + "lastModified": 1770708818, + "narHash": "sha256-E7IynuqdA/0oK96uSWC6J5V4AqP3V+l79j4EbzYVrx4=", "ref": "refs/heads/master", - "rev": "52d8cdee11b797fb1dd64f0914a403b80461d79f", - "revCount": 48, + "rev": "644c7eac5d4a30d891d2ad3f982ed7936f178b23", + "revCount": 91, "type": "git", "url": "https://code.m3ta.dev/m3tam3re/nixpkgs" }, @@ -301,15 +299,15 @@ "nix-ai-tools": { "inputs": { "blueprint": "blueprint", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1768370489, - "narHash": "sha256-/tZo3ePuv6gbJ+OUAtn/vIL/NHwXmVdmTqwpRKKYuW4=", + "lastModified": 1770694022, + "narHash": "sha256-+blZO0NoxRrM4PU7s4fv/iD5juNH2LQZ65OWLjcKHfU=", "owner": "numtide", "repo": "nix-ai-tools", - "rev": "41130668102a77795069d950e001926dd7542c99", + "rev": "1210ebee485fdbd8000d790418d7855f7431493f", "type": "github" }, "original": { @@ -345,15 +343,16 @@ ] }, "locked": { - "lastModified": 1748765518, - "narHash": "sha256-vftOR+7zwnMWl5UpG32GL1VBeNGTDZZT0hv+2uNuBGw=", - "owner": "Mic92", + "lastModified": 1769079217, + "narHash": "sha256-R6qzhu+YJolxE2vUsPQWWwUKMbAG5nXX3pBtg8BNX38=", + "owner": "Enzime", "repo": "nix-vm-test", - "rev": "d6642fbaf42fc98883d84bab66cd0ec720d9dd0c", + "rev": "58c15f78947b431d6c206e0966500c7e9139bd2f", "type": "github" }, "original": { - "owner": "Mic92", + "owner": "Enzime", + "ref": "pr-105-latest", "repo": "nix-vm-test", "type": "github" } @@ -371,11 +370,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1766503044, - "narHash": "sha256-DdJ0OIngRjekqXJauSQ8y9vyDO24dX8v7DiaWmxk7PU=", + "lastModified": 1769956140, + "narHash": "sha256-D+RQ+DaIC/GVwv5lUs7e8jSmh8aPc77Kg/gRjaS25Zk=", "owner": "nix-community", "repo": "nixos-anywhere", - "rev": "e86fad431cf9161ca39747972bd255897572dc3b", + "rev": "92f82c5196a5f8588be4967e535c4cfd35e85902", "type": "github" }, "original": { @@ -396,11 +395,11 @@ ] }, "locked": { - "lastModified": 1749086071, - "narHash": "sha256-4+fY7i+q78F3t6APz0cMC4kRxsyCb+UTyfhbckkCd7Q=", + "lastModified": 1766770015, + "narHash": "sha256-kUmVBU+uBUPl/v3biPiWrk680b8N9rRMhtY97wsxiJc=", "owner": "nix-community", "repo": "nixos-images", - "rev": "aa38dbbdf0e955baef7e03dfc4265ae3fdac4808", + "rev": "e4dba54ddb6b2ad9c6550e5baaed2fa27938a5d2", "type": "github" }, "original": { @@ -411,16 +410,16 @@ }, "nixos-stable": { "locked": { - "lastModified": 1749086602, - "narHash": "sha256-DJcgJMekoxVesl9kKjfLPix2Nbr42i7cpEHJiTnBUwU=", + "lastModified": 1769598131, + "narHash": "sha256-e7VO/kGLgRMbWtpBqdWl0uFg8Y2XWFMdz0uUJvlML8o=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4792576cb003c994bd7cc1edada3129def20b27d", + "rev": "fa83fd837f3098e3e678e6cf017b2b36102c7211", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-25.05", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } @@ -458,11 +457,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1768127708, - "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=", + "lastModified": 1770562336, + "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38", + "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", "type": "github" }, "original": { @@ -490,11 +489,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1768127708, - "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=", + "lastModified": 1770562336, + "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38", + "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", "type": "github" }, "original": { @@ -506,11 +505,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1768302833, - "narHash": "sha256-h5bRFy9bco+8QcK7rGoOiqMxMbmn21moTACofNLRMP4=", + "lastModified": 1768393167, + "narHash": "sha256-n2063BRjHde6DqAz2zavhOOiLUwA3qXt7jQYHyETjX8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "61db79b0c6b838d9894923920b612048e1201926", + "rev": "2f594d5af95d4fdac67fba60376ec11e482041cb", "type": "github" }, "original": { @@ -522,11 +521,27 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1768242861, - "narHash": "sha256-F4IIxa5xDHjtrmMcayM8lHctUq1oGltfBQu2+oqDWP4=", + "lastModified": 1770537093, + "narHash": "sha256-pF1quXG5wsgtyuPOHcLfYg/ft/QMr8NnX0i6tW2187s=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fef9403a3e4d31b0a23f0bacebbec52c248fbb51", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1770464364, + "narHash": "sha256-z5NJPSBwsLf/OfD8WTmh79tlSU8XgIbwmk6qB1/TFzY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "1327e798cb055f96f92685df444e9a2c326ab5ed", + "rev": "23d72dabcb3b12469f57b37170fcbc1789bd7457", "type": "github" }, "original": { @@ -544,11 +559,11 @@ ] }, "locked": { - "lastModified": 1768380127, - "narHash": "sha256-c026Qn/mDygVsEXxmDY9RYozdAAenaR5G/v1qNtwG4M=", + "lastModified": 1770700998, + "narHash": "sha256-TgB/5dzl6x/XO1nSBeGi9sJAkr4eGA3aplwU+CAbxVg=", "owner": "nix-community", "repo": "NUR", - "rev": "dfea818ef57dc9c4035369f1839d20681ea01d47", + "rev": "819102e2f2d3bf58c2066ed45a460feb04bbd52a", "type": "github" }, "original": { @@ -557,6 +572,25 @@ "type": "github" } }, + "opencode": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1770332936, + "narHash": "sha256-VddWpvtoDJlbbesJL6VlP99/NJqkHbN8Rdv1XccNRZM=", + "owner": "anomalyco", + "repo": "opencode", + "rev": "579902ace6e9fb925f50b7d9fdf11a6b47895307", + "type": "github" + }, + "original": { + "owner": "anomalyco", + "ref": "v1.1.53", + "repo": "opencode", + "type": "github" + } + }, "root": { "inputs": { "agenix": "agenix", @@ -569,7 +603,7 @@ "nix-ai-tools": "nix-ai-tools", "nix-colors": "nix-colors", "nixos-anywhere": "nixos-anywhere", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "nixpkgs-unstable": "nixpkgs-unstable", "nur": "nur" } @@ -627,11 +661,11 @@ ] }, "locked": { - "lastModified": 1768158989, - "narHash": "sha256-67vyT1+xClLldnumAzCTBvU0jLZ1YBcf4vANRWP3+Ak=", + "lastModified": 1770228511, + "narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "e96d59dff5c0d7fddb9d113ba108f03c3ef99eca", + "rev": "337a4fe074be1042a35086f15481d763b8ddc0e7", "type": "github" }, "original": { @@ -648,11 +682,11 @@ ] }, "locked": { - "lastModified": 1749194973, - "narHash": "sha256-eEy8cuS0mZ2j/r/FE0/LYBSBcIs/MKOIVakwHVuqTfk=", + "lastModified": 1769691507, + "narHash": "sha256-8aAYwyVzSSwIhP2glDhw/G0i5+wOrren3v6WmxkVonM=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "a05be418a1af1198ca0f63facb13c985db4cb3c5", + "rev": "28b19c5844cc6e2257801d43f2772a4b4c050a1b", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 0865f77..71bd205 100644 --- a/flake.nix +++ b/flake.nix @@ -23,6 +23,7 @@ nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; m3ta-nixpkgs.url = "git+https://code.m3ta.dev/m3tam3re/nixpkgs"; + # m3ta-nixpkgs.url = "path:/home/sascha.koenig/p/NIX/nixpkgs"; nur = { url = "github:nix-community/NUR"; @@ -47,8 +48,8 @@ nix-ai-tools.url = "github:numtide/nix-ai-tools"; agents = { - # url = "path:/home/m3tam3re/p/MISC/AGENTS"; - url = "git+https://code.m3ta.dev/m3tam3re/AGENTS"; + url = "path:/home/sascha.koenig/p/AI/AGENTS"; + # url = "git+https://code.m3ta.dev/m3tam3re/AGENTS"; flake = false; }; }; @@ -138,7 +139,7 @@ inherit inputs outputs; hostname = "AZPILOGISTIK01"; }; - modules = [./home/logistik/AZPILOGISTIK01.nix]; + modules = [./home/users/logistik/AZPILOGISTIK01.nix]; }; "logistik@AZPILOGISTIK02" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."aarch64-linux"; @@ -146,7 +147,7 @@ inherit inputs outputs; hostname = "AZPILOGISTIK02"; }; - modules = [./home/logistik/AZPILOGISTIK02.nix]; + modules = [./home/users/logistik/AZPILOGISTIK02.nix]; }; "logistik@AZPILOGISTIK03" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."aarch64-linux"; @@ -154,7 +155,7 @@ inherit inputs outputs; hostname = "AZPILOGISTIK03"; }; - modules = [./home/logistik/AZPILOGISTIK03.nix]; + modules = [./home/users/logistik/AZPILOGISTIK03.nix]; }; "logistik@AZPILOGISTIK04" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."aarch64-linux"; @@ -162,7 +163,7 @@ inherit inputs outputs; hostname = "AZPILOGISTIK04"; }; - modules = [./home/logistik/AZPILOGISTIK04.nix]; + modules = [./home/users/logistik/AZPILOGISTIK04.nix]; }; "logistik@AZPILOGISTIK05" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."aarch64-linux"; @@ -170,7 +171,7 @@ inherit inputs outputs; hostname = "AZPILOGISTIK05"; }; - modules = [./home/logistik/AZPILOGISTIK05.nix]; + modules = [./home/users/logistik/AZPILOGISTIK05.nix]; }; "logistik@AZPILOGISTIKTEST" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."aarch64-linux"; @@ -178,7 +179,39 @@ inherit inputs outputs; hostname = "AZPILOGISTIKTEST"; }; - modules = [./home/logistik/AZPILOGISTIKTEST.nix]; + modules = [./home/users/logistik/AZPILOGISTIKTEST.nix]; + }; + "produktion@AZPIPRODUKTION01" = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages."aarch64-linux"; + extraSpecialArgs = { + inherit inputs outputs; + hostname = "AZPIPRODUKTION01"; + }; + modules = [./home/users/logistik/AZPIPRODUKTION01.nix]; + }; + "produktion@AZPIPRODUKTION02" = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages."aarch64-linux"; + extraSpecialArgs = { + inherit inputs outputs; + hostname = "AZPIPRODUKTION02"; + }; + modules = [./home/users/logistik/AZPIPRODUKTION02.nix]; + }; + "produktion@AZPIPRODUKTION03" = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages."aarch64-linux"; + extraSpecialArgs = { + inherit inputs outputs; + hostname = "AZPIPRODUKTION03"; + }; + modules = [./home/users/logistik/AZPIPRODUKTION03.nix]; + }; + "produktion@AZPIPRODUKTION04" = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages."aarch64-linux"; + extraSpecialArgs = { + inherit inputs outputs; + hostname = "AZPIPRODUKTION04"; + }; + modules = [./home/users/logistik/AZPIPRODUKTION04.nix]; }; }; deploy.nodes = { diff --git a/home/common/default.nix b/home/common/default.nix index 371dd0f..a25ca8b 100644 --- a/home/common/default.nix +++ b/home/common/default.nix @@ -1,5 +1,4 @@ { - config, lib, outputs, pkgs, diff --git a/home/logistik/home.nix b/home/common/pi-base.nix similarity index 98% rename from home/logistik/home.nix rename to home/common/pi-base.nix index b810586..01615bd 100644 --- a/home/logistik/home.nix +++ b/home/common/pi-base.nix @@ -367,10 +367,10 @@ echo "Using local repository..." cd /home/${config.home.username}/AZ-NIX ${pkgs.git}/bin/git pull - ${pkgs.nix}/bin/nix run home-manager/release-25.05 -- switch --flake .#${flakeConfig} + ${pkgs.nix}/bin/nix run home-manager/release-25.11 -- switch --flake .#${flakeConfig} else echo "Using remote repository..." - ${pkgs.nix}/bin/nix run home-manager/release-25.05 -- switch \ + ${pkgs.nix}/bin/nix run home-manager/release-25.11 -- switch \ --flake ${repoUrl}#${flakeConfig} fi diff --git a/home/features/coding/default.nix b/home/features/coding/default.nix index ef95bc0..6433871 100644 --- a/home/features/coding/default.nix +++ b/home/features/coding/default.nix @@ -22,6 +22,10 @@ ])) pyrefly nixd + nix-update + sidecar + td + # opencode-desktop tailwindcss tailwindcss-language-server ]; diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix index c1a3a0f..1a39117 100644 --- a/home/features/coding/opencode.nix +++ b/home/features/coding/opencode.nix @@ -1,7 +1,7 @@ {inputs, ...}: { xdg.configFile = { - "opencode/command" = { - source = "${inputs.agents}/command"; + "opencode/commands" = { + source = "${inputs.agents}/commands"; recursive = true; }; "opencode/context" = { @@ -12,8 +12,8 @@ source = "${inputs.agents}/prompts"; recursive = true; }; - "opencode/skill" = { - source = "${inputs.agents}/skill"; + "opencode/skills" = { + source = "${inputs.agents}/skills"; recursive = true; }; }; @@ -22,8 +22,8 @@ enable = true; settings = { theme = "opencode"; - plugin = ["oh-my-opencode" "opencode-beads" "opencode-anthropic-auth"]; - agent = builtins.fromJSON (builtins.readFile "${inputs.agents}/agent/agents.json"); + plugin = ["oh-my-opencode" "opencode-beads"]; + agent = builtins.fromJSON (builtins.readFile "${inputs.agents}/agents/agents.json"); formatter = { alejandra = { command = ["alejandra" "-q" "-"]; @@ -49,6 +49,19 @@ ]; enabled = true; }; + Basecamp = { + type = "local"; + command = [ + "/home/sascha.koenig/p/AI/Basecamp-MCP-Server/venv/bin/python" + "/home/sascha.koenig/p/AI/Basecamp-MCP-Server/basecamp_fastmcp.py" + ]; + environment = { + PYTHONPATH = "/home/sascha.koenig/p/AI/Basecamp-MCP-Server"; + VIRTUAL_ENV = "/home/sascha.koenig/p/AI/Basecamp-MCP-Server/venv"; + BASECAMP_ACCOUNT_ID = "5996442"; + }; + enabled = false; + }; Outline = { type = "local"; command = [ @@ -64,121 +77,57 @@ home.file.".config/opencode/oh-my-opencode.json".text = builtins.toJSON { "$schema" = "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"; + google_auth = false; agents = { - Sisyphus = { - model = "anthropic/claude-opus-4-5"; - permission = { - edit = "allow"; - bash = { - "*" = "allow"; - "rm *" = "ask"; - "rmdir *" = "ask"; - "mv *" = "ask"; - "chmod *" = "ask"; - "chown *" = "ask"; - "git *" = "ask"; - "git status*" = "allow"; - "git log*" = "allow"; - "git diff*" = "allow"; - "git branch*" = "allow"; - "git show*" = "allow"; - "git stash list*" = "allow"; - "git remote -v" = "allow"; - "git add *" = "allow"; - "git commit *" = "allow"; - "jj *" = "ask"; - "jj status" = "allow"; - "jj log*" = "allow"; - "jj diff*" = "allow"; - "jj show*" = "allow"; - "npm *" = "ask"; - "npx *" = "ask"; - "bun *" = "ask"; - "bunx *" = "ask"; - "uv *" = "ask"; - "pip *" = "ask"; - "pip3 *" = "ask"; - "yarn *" = "ask"; - "pnpm *" = "ask"; - "cargo *" = "ask"; - "go *" = "ask"; - "make *" = "ask"; - "dd *" = "deny"; - "mkfs*" = "deny"; - "fdisk *" = "deny"; - "parted *" = "deny"; - "eval *" = "deny"; - "source *" = "deny"; - "curl *|*sh" = "deny"; - "wget *|*sh" = "deny"; - "sudo *" = "deny"; - "su *" = "deny"; - "systemctl *" = "deny"; - "service *" = "deny"; - "shutdown *" = "deny"; - "reboot*" = "deny"; - "init *" = "deny"; - "> /dev/*" = "deny"; - "cat * > /dev/*" = "deny"; - }; - external_directory = "ask"; - doom_loop = "ask"; - }; - }; - librarian = { - model = "anthropic/claude-sonnet-4-5"; - permission = { - edit = "deny"; - bash = "deny"; - }; - }; - explore = { - model = "opencode/big-pickle"; - permission = { - edit = "deny"; - bash = "deny"; - }; + sisyphus = { + model = "zai-coding-plan/glm-4.7"; }; oracle = { - model = "anthropic/claude-sonnet-4-5"; - permission = { - edit = "deny"; - bash = "deny"; - }; + model = "zai-coding-plan/glm-4.7"; }; - frontend-ui-ux-engineer = { - model = "anthropic/claude-opus-4-5"; - permission = { - edit = "allow"; - bash = { - "*" = "ask"; - "npm *" = "ask"; - "npx *" = "ask"; - "bun *" = "ask"; - "bunx *" = "ask"; - "rm *" = "ask"; - "mv *" = "ask"; - "dd *" = "deny"; - "mkfs*" = "deny"; - "sudo *" = "deny"; - "curl *|*sh" = "deny"; - "wget *|*sh" = "deny"; - }; - }; + librarian = { + model = "zai-coding-plan/glm-4.7"; }; - document-writer = { - model = "anthropic/claude-opus-4-5"; - permission = { - edit = "allow"; - bash = "deny"; - }; + explore = { + model = "zai-coding-plan/glm-4.5-air"; }; multimodal-looker = { - model = "anthropic/claude-opus-4-5"; - permission = { - edit = "deny"; - bash = "deny"; - }; + model = "zai-coding-plan/glm-4.6v"; + }; + prometheus = { + model = "zai-coding-plan/glm-4.7"; + }; + metis = { + model = "zai-coding-plan/glm-4.7"; + }; + momus = { + model = "zai-coding-plan/glm-4.7"; + }; + atlas = { + model = "zai-coding-plan/glm-4.7"; + }; + }; + categories = { + visual-engineering = { + model = "zai-coding-plan/glm-4.7"; + }; + ultrabrain = { + model = "zai-coding-plan/glm-4.7"; + }; + artistry = { + model = "zai-coding-plan/glm-4.7"; + }; + quick = { + model = "zai-coding-plan/glm-4.7"; + }; + unspecified-low = { + model = "zai-coding-plan/glm-4.7"; + }; + unspecified-high = { + model = "zai-coding-plan/glm-4.7"; + }; + writing = { + model = "zai-coding-plan/glm-4.7"; }; }; disabled_mcps = ["context7" "websearch"]; diff --git a/home/features/desktop/default.nix b/home/features/desktop/default.nix index f342d2c..8677629 100644 --- a/home/features/desktop/default.nix +++ b/home/features/desktop/default.nix @@ -3,6 +3,7 @@ ./coding.nix ./fonts.nix ./hyprland.nix + ./knowledge.nix ./media.nix ./office.nix ./rofi.nix diff --git a/home/features/desktop/hyprland.nix b/home/features/desktop/hyprland.nix index 5950c24..07b31bf 100644 --- a/home/features/desktop/hyprland.nix +++ b/home/features/desktop/hyprland.nix @@ -29,7 +29,10 @@ in { "HYPRCURSOR_THEME,Bibata-Modern-Ice" "WLR_NO_HARDWARE_CURSORS,1" "GTK_THEME,Dracula" - "XDG_SESSION_TYPE,hyrland" + "XDG_CURRENT_DESKTOP,Hyprland" + "XDG_SESSION_TYPE,wayland" + "XDG_SESSION_DESKTOP,Hyprland" + "NIXOS_OZONE_WL,1" ]; ecosystem = { diff --git a/home/features/desktop/knowledge.nix b/home/features/desktop/knowledge.nix new file mode 100644 index 0000000..dd4fed5 --- /dev/null +++ b/home/features/desktop/knowledge.nix @@ -0,0 +1,19 @@ +{ + programs.obsidian = { + enable = true; + defaultSettings = { + app = { + safeMode = false; + }; + corePlugins = [ + "daily-notes" + "templates" + "tag-pane" + "outgoing-link" + "backlink" + "global-search" + "quick-switcher" + ]; + }; + }; +} diff --git a/home/features/desktop/rofi.nix b/home/features/desktop/rofi.nix index 9e2c5c1..c229458 100644 --- a/home/features/desktop/rofi.nix +++ b/home/features/desktop/rofi.nix @@ -35,7 +35,7 @@ in { theme = let inherit (config.colorScheme) palette; in - builtins.toString (pkgs.writeText "rofi-universal-theme.rasi" '' + toString (pkgs.writeText "rofi-universal-theme.rasi" '' * { /* Universal theme colors from nix-colors */ background: #${palette.base00}; @@ -182,6 +182,10 @@ in { cli.rofi-project-opener = { enable = true; projectDirs = { + AI = { + path = "~/p/AI"; + args = ""; + }; NIX = { path = "~/p/NIX"; args = ""; diff --git a/home/jannik.mueller/AZ-CLD-1.nix b/home/jannik.mueller/AZ-CLD-1.nix deleted file mode 100644 index 4d3d64c..0000000 --- a/home/jannik.mueller/AZ-CLD-1.nix +++ /dev/null @@ -1 +0,0 @@ -{config, ...}: {imports = [./home.nix ../common];} diff --git a/home/users/jannik.mueller/AZ-CLD-1.nix b/home/users/jannik.mueller/AZ-CLD-1.nix new file mode 100644 index 0000000..5bf0587 --- /dev/null +++ b/home/users/jannik.mueller/AZ-CLD-1.nix @@ -0,0 +1 @@ +{...}: {imports = [./home.nix ../../common];} diff --git a/home/users/jannik.mueller/AZ-PRM-1.nix b/home/users/jannik.mueller/AZ-PRM-1.nix new file mode 100644 index 0000000..5bf0587 --- /dev/null +++ b/home/users/jannik.mueller/AZ-PRM-1.nix @@ -0,0 +1 @@ +{...}: {imports = [./home.nix ../../common];} diff --git a/home/jannik.mueller/home-stable.nix b/home/users/jannik.mueller/home-stable.nix similarity index 100% rename from home/jannik.mueller/home-stable.nix rename to home/users/jannik.mueller/home-stable.nix diff --git a/home/jannik.mueller/home.nix b/home/users/jannik.mueller/home.nix similarity index 100% rename from home/jannik.mueller/home.nix rename to home/users/jannik.mueller/home.nix diff --git a/home/logistik/AZPILOGISTIK01.nix b/home/users/logistik/AZPILOGISTIK01.nix similarity index 87% rename from home/logistik/AZPILOGISTIK01.nix rename to home/users/logistik/AZPILOGISTIK01.nix index 71ac617..d1a7642 100644 --- a/home/logistik/AZPILOGISTIK01.nix +++ b/home/users/logistik/AZPILOGISTIK01.nix @@ -1,12 +1,7 @@ -{ - config, - lib, - inputs, - ... -}: { +{...}: { imports = [ - ../common - ./home.nix + ../../common + ../../common/pi-base.nix ]; wayland.windowManager.hyprland.settings = { env = [ diff --git a/home/logistik/AZPILOGISTIK02.nix b/home/users/logistik/AZPILOGISTIK02.nix similarity index 86% rename from home/logistik/AZPILOGISTIK02.nix rename to home/users/logistik/AZPILOGISTIK02.nix index a7abc12..da79951 100644 --- a/home/logistik/AZPILOGISTIK02.nix +++ b/home/users/logistik/AZPILOGISTIK02.nix @@ -1,12 +1,7 @@ -{ - config, - lib, - inputs, - ... -}: { +{...}: { imports = [ - ../common - ./home.nix + ../../common + ../../common/pi-base.nix ]; wayland.windowManager.hyprland.settings = { env = [ diff --git a/home/logistik/AZPILOGISTIK03.nix b/home/users/logistik/AZPILOGISTIK03.nix similarity index 83% rename from home/logistik/AZPILOGISTIK03.nix rename to home/users/logistik/AZPILOGISTIK03.nix index 6d02029..ec61ea9 100644 --- a/home/logistik/AZPILOGISTIK03.nix +++ b/home/users/logistik/AZPILOGISTIK03.nix @@ -1,12 +1,7 @@ -{ - config, - lib, - inputs, - ... -}: { +{...}: { imports = [ - ../common - ./home.nix + ../../common + ../../common/pi-base.nix ]; wayland.windowManager.hyprland.settings = { env = [ diff --git a/home/logistik/AZPILOGISTIK04.nix b/home/users/logistik/AZPILOGISTIK04.nix similarity index 82% rename from home/logistik/AZPILOGISTIK04.nix rename to home/users/logistik/AZPILOGISTIK04.nix index ab41f34..8744068 100644 --- a/home/logistik/AZPILOGISTIK04.nix +++ b/home/users/logistik/AZPILOGISTIK04.nix @@ -1,12 +1,7 @@ -{ - config, - lib, - inputs, - ... -}: { +{...}: { imports = [ - ../common - ./home.nix + ../../common + ../../common/pi-base.nix ]; wayland.windowManager.hyprland.settings = { env = [ diff --git a/home/logistik/AZPILOGISTIK05.nix b/home/users/logistik/AZPILOGISTIK05.nix similarity index 82% rename from home/logistik/AZPILOGISTIK05.nix rename to home/users/logistik/AZPILOGISTIK05.nix index ab41f34..8744068 100644 --- a/home/logistik/AZPILOGISTIK05.nix +++ b/home/users/logistik/AZPILOGISTIK05.nix @@ -1,12 +1,7 @@ -{ - config, - lib, - inputs, - ... -}: { +{...}: { imports = [ - ../common - ./home.nix + ../../common + ../../common/pi-base.nix ]; wayland.windowManager.hyprland.settings = { env = [ diff --git a/home/logistik/AZPILOGISTIKTEST.nix b/home/users/logistik/AZPILOGISTIKTEST.nix similarity index 87% rename from home/logistik/AZPILOGISTIKTEST.nix rename to home/users/logistik/AZPILOGISTIKTEST.nix index 71ac617..d1a7642 100644 --- a/home/logistik/AZPILOGISTIKTEST.nix +++ b/home/users/logistik/AZPILOGISTIKTEST.nix @@ -1,12 +1,7 @@ -{ - config, - lib, - inputs, - ... -}: { +{...}: { imports = [ - ../common - ./home.nix + ../../common + ../../common/pi-base.nix ]; wayland.windowManager.hyprland.settings = { env = [ diff --git a/home/users/produktion/AZPIPRODUKTION01.nix b/home/users/produktion/AZPIPRODUKTION01.nix new file mode 100644 index 0000000..83bcbb8 --- /dev/null +++ b/home/users/produktion/AZPIPRODUKTION01.nix @@ -0,0 +1,19 @@ +{...}: { + imports = [ + ../../common + ../../common/pi-base.nix + ]; + wayland.windowManager.hyprland.settings = { + env = [ + "WEBAPP_URL,http://192.168.152.98:4711/login/Fertigung" + "HYPRCURSOR_THEME,rose-pine-hyprcursor" + "HYPRCURSOR_SIZE,32" + "WLR_NO_HARDWARE_CURSORS,1" + ]; + exec-once = [ + "chromium --app=$WEBAPP_URL" + ]; + monitor = [ + ]; + }; +} diff --git a/home/users/produktion/AZPIPRODUKTION02.nix b/home/users/produktion/AZPIPRODUKTION02.nix new file mode 100644 index 0000000..83bcbb8 --- /dev/null +++ b/home/users/produktion/AZPIPRODUKTION02.nix @@ -0,0 +1,19 @@ +{...}: { + imports = [ + ../../common + ../../common/pi-base.nix + ]; + wayland.windowManager.hyprland.settings = { + env = [ + "WEBAPP_URL,http://192.168.152.98:4711/login/Fertigung" + "HYPRCURSOR_THEME,rose-pine-hyprcursor" + "HYPRCURSOR_SIZE,32" + "WLR_NO_HARDWARE_CURSORS,1" + ]; + exec-once = [ + "chromium --app=$WEBAPP_URL" + ]; + monitor = [ + ]; + }; +} diff --git a/home/users/produktion/AZPIPRODUKTION03.nix b/home/users/produktion/AZPIPRODUKTION03.nix new file mode 100644 index 0000000..83bcbb8 --- /dev/null +++ b/home/users/produktion/AZPIPRODUKTION03.nix @@ -0,0 +1,19 @@ +{...}: { + imports = [ + ../../common + ../../common/pi-base.nix + ]; + wayland.windowManager.hyprland.settings = { + env = [ + "WEBAPP_URL,http://192.168.152.98:4711/login/Fertigung" + "HYPRCURSOR_THEME,rose-pine-hyprcursor" + "HYPRCURSOR_SIZE,32" + "WLR_NO_HARDWARE_CURSORS,1" + ]; + exec-once = [ + "chromium --app=$WEBAPP_URL" + ]; + monitor = [ + ]; + }; +} diff --git a/home/users/produktion/AZPIPRODUKTION04.nix b/home/users/produktion/AZPIPRODUKTION04.nix new file mode 100644 index 0000000..83bcbb8 --- /dev/null +++ b/home/users/produktion/AZPIPRODUKTION04.nix @@ -0,0 +1,19 @@ +{...}: { + imports = [ + ../../common + ../../common/pi-base.nix + ]; + wayland.windowManager.hyprland.settings = { + env = [ + "WEBAPP_URL,http://192.168.152.98:4711/login/Fertigung" + "HYPRCURSOR_THEME,rose-pine-hyprcursor" + "HYPRCURSOR_SIZE,32" + "WLR_NO_HARDWARE_CURSORS,1" + ]; + exec-once = [ + "chromium --app=$WEBAPP_URL" + ]; + monitor = [ + ]; + }; +} diff --git a/home/sascha.koenig/AZ-CLD-1.nix b/home/users/sascha.koenig/AZ-CLD-1.nix similarity index 87% rename from home/sascha.koenig/AZ-CLD-1.nix rename to home/users/sascha.koenig/AZ-CLD-1.nix index 818bef0..98b5584 100644 --- a/home/sascha.koenig/AZ-CLD-1.nix +++ b/home/users/sascha.koenig/AZ-CLD-1.nix @@ -1,11 +1,11 @@ {config, ...}: { imports = [ ./home.nix - ../common - ../features/cli/fish.nix - ../features/cli/fzf.nix - ../features/cli/nushell.nix - ../features/cli/starship.nix + ../../common + ../../features/cli/fish.nix + ../../features/cli/fzf.nix + ../../features/cli/nushell.nix + ../../features/cli/starship.nix ]; programs.carapace = { diff --git a/home/sascha.koenig/AZLT124-L.nix b/home/users/sascha.koenig/AZLT124-L.nix similarity index 97% rename from home/sascha.koenig/AZLT124-L.nix rename to home/users/sascha.koenig/AZLT124-L.nix index 004b4b2..5d9cf67 100644 --- a/home/sascha.koenig/AZLT124-L.nix +++ b/home/users/sascha.koenig/AZLT124-L.nix @@ -8,11 +8,11 @@ with lib; let cfg = config.features.desktop.hyprland; in { imports = [ - ../common + ../../common ./home.nix - ../features/cli - ../features/coding - ../features/desktop + ../../features/cli + ../../features/coding + ../../features/desktop inputs.nix-colors.homeManagerModules.default ]; diff --git a/home/sascha.koenig/home-stable.nix b/home/users/sascha.koenig/home-stable.nix similarity index 100% rename from home/sascha.koenig/home-stable.nix rename to home/users/sascha.koenig/home-stable.nix diff --git a/home/sascha.koenig/home.nix b/home/users/sascha.koenig/home.nix similarity index 96% rename from home/sascha.koenig/home.nix rename to home/users/sascha.koenig/home.nix index 2cb8d32..bc9fa50 100644 --- a/home/sascha.koenig/home.nix +++ b/home/users/sascha.koenig/home.nix @@ -114,6 +114,11 @@ port = 2022; identityFile = "~/.ssh/sascha.koenig"; }; + "code.m3ta.dev" = { + hostname = "code.m3ta.dev"; + user = "m3tam3re"; + identityFile = "~/.ssh/sascha.koenig"; + }; "AZ-CLD-1" = { hostname = "152.53.186.119"; user = "sascha.koenig"; diff --git a/hosts/AZ-CLD-1/services/containers/litellm.nix b/hosts/AZ-CLD-1/services/containers/litellm.nix index 39dd6ec..b3f2b93 100644 --- a/hosts/AZ-CLD-1/services/containers/litellm.nix +++ b/hosts/AZ-CLD-1/services/containers/litellm.nix @@ -9,7 +9,7 @@ in { virtualisation.oci-containers.containers.${serviceName} = { #image = "ghcr.io/berriai/litellm:v1.78.5-stable"; - image = "ghcr.io/berriai/litellm:v1.80.0-stable"; + image = "docker.litellm.ai/berriai/litellm:v1.80.15-stable"; ports = ["127.0.0.1:${toString servicePort}:4000"]; environmentFiles = [config.age.secrets.litellm-env.path]; environment = { @@ -18,7 +18,7 @@ in { SCARF_NO_ANALYTICS = "True"; STORE_MODEL_IN_DB = "True"; }; - volumes = [ "/var/lib/litellm/config.yaml:/app/config.yaml" ]; + volumes = ["/var/lib/litellm/config.yaml:/app/config.yaml"]; extraOptions = ["--add-host=postgres:10.89.0.1" "--ip=10.89.0.30" "--network=web"]; }; diff --git a/hosts/AZLT124-L/configuration.nix b/hosts/AZLT124-L/configuration.nix index 61c68fd..798c0d0 100644 --- a/hosts/AZLT124-L/configuration.nix +++ b/hosts/AZLT124-L/configuration.nix @@ -14,15 +14,25 @@ # Bootloader. boot.loader.systemd-boot.enable = true; boot.initrd.kernelModules = ["amdgpu" "hid_asus"]; - boot.kernelPackages = pkgs.linuxPackages_6_18; + boot.kernelPackages = pkgs.linuxPackages_latest; + boot.kernelParams = ["pcie_aspm=off"]; boot.extraModprobeConfig = '' options hid_asus enable_touchpad=1 + options mt7925e disable_aspm=1 + options mt7925_common disable_clc=1 ''; services.xserver.videoDrivers = ["amdgpu"]; security.polkit.enable = true; security.pam.services.gdm.enableGnomeKeyring = true; networking = { - networkmanager.enable = true; + wireless.iwd.enable = true; + networkmanager = { + enable = true; + wifi = { + backend = "iwd"; + powersave = false; + }; + }; hostName = "AZLT124-L"; }; diff --git a/hosts/AZLT124-L/default.nix b/hosts/AZLT124-L/default.nix index e5b0b7e..a2a6fc0 100644 --- a/hosts/AZLT124-L/default.nix +++ b/hosts/AZLT124-L/default.nix @@ -45,7 +45,7 @@ home-manager = { useUserPackages = true; extraSpecialArgs = {inherit inputs outputs;}; - users."sascha.koenig" = import ../../home/sascha.koenig/AZLT124-L.nix; + users."sascha.koenig" = import ../../home/users/sascha.koenig/AZLT124-L.nix; }; # Configure nixpkgs to use unstable diff --git a/hosts/AZLT124-L/secrets.nix b/hosts/AZLT124-L/secrets.nix index 89979d3..57ffbf9 100644 --- a/hosts/AZLT124-L/secrets.nix +++ b/hosts/AZLT124-L/secrets.nix @@ -5,6 +5,14 @@ file = ../../secrets/outline-key.age; owner = "sascha.koenig"; }; + ref-key = { + file = ../../secrets/ref-key.age; + owner = "sascha.koenig"; + }; + exa-key = { + file = ../../secrets/exa-key.age; + owner = "sascha.koenig"; + }; }; }; } diff --git a/hosts/common/extraServices/flatpak.nix b/hosts/common/extraServices/flatpak.nix index 700a01b..140c71e 100644 --- a/hosts/common/extraServices/flatpak.nix +++ b/hosts/common/extraServices/flatpak.nix @@ -14,7 +14,6 @@ in { xdg.portal = { # xdg desktop intergration (required for flatpak) enable = true; - wlr.enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ]; diff --git a/hosts/common/users/jannik.mueller.nix b/hosts/common/users/jannik.mueller.nix index bb9306e..00aaa51 100644 --- a/hosts/common/users/jannik.mueller.nix +++ b/hosts/common/users/jannik.mueller.nix @@ -23,5 +23,5 @@ packages = [inputs.home-manager.packages.${pkgs.stdenv.hostPlatform.system}.default]; }; home-manager.users."jannik.mueller" = - import ../../../home/jannik.mueller/${config.networking.hostName}.nix; + import ../../../home/users/jannik.mueller/${config.networking.hostName}.nix; } diff --git a/hosts/common/users/sascha.koenig.nix b/hosts/common/users/sascha.koenig.nix index 70b1379..7650097 100644 --- a/hosts/common/users/sascha.koenig.nix +++ b/hosts/common/users/sascha.koenig.nix @@ -25,5 +25,5 @@ packages = [inputs.home-manager.packages.${pkgs.stdenv.hostPlatform.system}.default]; }; home-manager.users."sascha.koenig" = - import ../../../home/sascha.koenig/${config.networking.hostName}.nix; + import ../../../home/users/sascha.koenig/${config.networking.hostName}.nix; } diff --git a/secrets.nix b/secrets.nix index 8fe10dc..262b06e 100644 --- a/secrets.nix +++ b/secrets.nix @@ -33,4 +33,6 @@ in { "secrets/zammad-hr-env.age".publicKeys = systems ++ users; "secrets/zammad-hr-env-prod.age".publicKeys = systems ++ users; "secrets/outline-key.age".publicKeys = systems ++ users; + "secrets/ref-key.age".publicKeys = systems ++ users; + "secrets/exa-key.age".publicKeys = systems ++ users; } diff --git a/secrets/exa-key.age b/secrets/exa-key.age new file mode 100644 index 0000000..2a10e4f --- /dev/null +++ b/secrets/exa-key.age @@ -0,0 +1,15 @@ +-----BEGIN AGE ENCRYPTED FILE----- +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpoVnNlZyBVdDYy +WkprTUl6MXJVQ3d2eDF4Ym91VkJScURFbjJvYjB5c29Rc2pEUkUwClZnMGlCaWpJ +eVJNTGRMRWtKeUFoVTBzbGJEaEc2U0NLSjBQbkUvWGM2ZHMKLT4gc3NoLWVkMjU1 +MTkgU3JIYXFBICtUL2J0L09CV1VZaEVtRDNIcHpaUGkyaHJtTmxUeitVdTQ1Q0hW +U09mejAKdGVHanFXeWhnUzhDTVdGSkswM3RPY0t0M3dYcVppRHNTQlZIaFY2VFo1 +TQotPiBzc2gtZWQyNTUxOSBDU015aGcgUWJnejRreFBxWGNkNm0zbWY3UkZKb1Yy +alFuU1pkR1VCKyswblBnQkJCVQpJY0d2ZytFYjc1dUZ1eFlmTUtUb092ekwwOElJ +dlJ1aTl3WDNBK2hCNTZ3Ci0+IEpGeCpda0gtZ3JlYXNlIFomLl41YCBdCkdCdGxQ +MmpmazVVMHJQTnpTbjNCb0Y4OGQrcTV2TURzc0VsZnBaVU9SWFAzZ3RFOHJ0dVpD +a1BBYzJrT1lDUHEKbjFQbEplaEFFWTFFOWFVQW9wWTU4dzNaVE1IOFpLZwotLS0g +S1pPa2NBRnVRTUpHVUplckMyYkQ2TVMwQUs3WWhUL3pRalo1UWdMdkJLcwof5PJZ +adXklpPoEv6JaRt8/yHDbPo/Zzp1SAuvhgFuzO2FV/5NnAD532m7VnIP6/+CnDaV +i2qHJ32sbNKQdfxeO/aWEAI= +-----END AGE ENCRYPTED FILE----- diff --git a/secrets/outline-env.age b/secrets/outline-env.age index d243074..28123d2 100644 --- a/secrets/outline-env.age +++ b/secrets/outline-env.age @@ -1,19 +1,20 @@ -----BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpoVnNlZyBBZS9h -ZkxUbWtUeDN4eVF5dkRYVFVKU2h4WEJPZzZXRzFiTlU0cTNDeTBVCkNyTXowTkR0 -aGpPejFSY1RsdWgyOVZKKzdWUUhiazlpalVqamdpNWJlZFkKLT4gc3NoLWVkMjU1 -MTkgQ1NNeWhnIFMycXEwMHp0WU1BOGQzTmhrS2xJWThiN3Y4ZldKOG5xSk9xaG82 -eEdNV2MKNWhOWmFRK0JHYXFqb2ZXU01ueGJIOWk5dDVlWUlFSWpYN0g3d2FoYnBU -awotPiBVXD5pJi1MLWdyZWFzZSAoViFKSWh3CjEveFVRcC9RdDZFdk0zS3MxcHBQ -RjQvZFpDaDkweXowVDVVMTFtTjRKZVFQUG10T0llcjlkMTFBc3FwRExtNUwKdzVC -elV6N3hrV2NHcU1Sako4bmJ0aWs4MUVsb2RDeEFnUUN2RjdQcFNOdGoKLS0tIGVV -aVVBKzMvZGk0T1RhQ3ZiOFRRY1JjUVFmM3Z1cVFlNGYreWJLOFhSb2sKkZWKHQFv -+qwfH4rePiUsNo71c5oxdCqhYmHrFCMdkAS3pLs3HWQC1Pl1X3vYrw7vgnuYSi5n -q0MgaVZHt/xE9jaXlbWYaxNgS1eRuLs+Qb2vXEJ6QYIa0zPmULfph4r9jatrskfJ -dR7mWT+Q/6/gRP0XD08IKH84vwyehFFz6OdclRm25C8n94SMmyRL7j549S9pOJHA -thik8CYdsKKwmT9IJb0afxxWAERyyVvB8qQtSqqnIDPqpJplFLtuc8YKOlcNqtRV -XKv81V9tRLSoLJSBJyi68Na4DkDjHi0M/2RWZOzE/8onIGUOG8kqpjL3iGlpumD+ -QxJdxytB2E0kImYvWTMUgIwl5l15XQJhp+Xy0eHAf/OmB/NCtoS7LK7XNUsHVC9z -YsuLI+qpbIzWglMG2kNjmMuHkghwssQhWq3OXsICmZRvzDqbBMWkaK6Gnvg7ieTW -fh7PEofSpgiK +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpoVnNlZyBCSkR6 +bHBvOEoxM0E3ZUFsRkpiL0w3VXUzNzVXRy9mU2VvdXlOY3J0cXlJCkEyTWFxVy9V +eEM1Q09BVFp6aURhbkNEd3JneERZMXllcHZnNG01S2pwcmsKLT4gc3NoLWVkMjU1 +MTkgU3JIYXFBIGIwS092Mjg4Z3loZ3l0MnZWQTdudUtwYkpiTTltc1pwUmY4Y0c2 +MkJqemsKM0ltVFZHZW9QRndwR2pvOUNaVC9RNFBZYXM5TFpFWXlWSzU5VW5Cemhh +dwotPiBzc2gtZWQyNTUxOSBDU015aGcga1pKOFloNWd5TVJadElJRFhwQ2QyR1FN +T1laUjdELytGZ1JlN01ITGlTYwpROFpJckJkbGNlVk9jTXBSTVZEK25YY0tQQWRx +aDlrMDdxOW1VUldwQldjCi0+IFRlZ2BSbVItZ3JlYXNlICl6RndBOHQgWVBJRFh5 +TwpSb0RUaUo2cE16OXlsaHoxM0g4eFNaYUhyUktXZEsyMkRORQotLS0gam9rVm12 +WC9VdTNKeVlDc0wrSUhnRzV1eWtBNGFCTlQ3d1Fkb1VaaGcrdwpX/pyvdTDTusTf +5vAbRgY/j+BU7p/Dz4TjAeAheOS1IvBYnvOOp0UDVCdl1lleIq5+nOcQ1Saj7udI +kskHz5mz+qLD21JbMHUZYvz5fanZoEK71pDhwpWyhqxFTip9kYb1NS60l6/xMGM5 +st3Z8BxMimE/EG5GTZUS4ZSFN5nPI77kmqF/5tCXfLyLPAiQ8S3olvnAQTIZgTXb +/YGfFYvIGdfZcTKR+dgLCjvQ+QY5mobQu31eHRu3VwDV/3GBNmJoyS+F9WHNfnaN +nLeIEls2A40FPlkKO7LbQOfY/Hw6JMoHBqgfq1b225fZk8bDX9rNt5FpEf619vZy +PTpede72Vkj0LXL68lJ2pQuaOurLVTVBSMaur3krROXDyzGp++yRa3/76+q/TVw6 +OyermD1U6enmkDIPInWNs4/CuyKQdDTvnD8D+wsUWcKCL77SP/m6W/VJh95SHVQF +OC43lVE= -----END AGE ENCRYPTED FILE----- diff --git a/secrets/ref-key.age b/secrets/ref-key.age new file mode 100644 index 0000000..293c29b --- /dev/null +++ b/secrets/ref-key.age @@ -0,0 +1,15 @@ +-----BEGIN AGE ENCRYPTED FILE----- +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpoVnNlZyBxM0h1 +ZUF1S1BHWUc2TGk5L3dEbFJjSnY2QVJvaVpFdDlGV2pRYm9SRm13Ck1MU1cvcVZz +cmFUZHlVdWhhN2tESkRUbWtkZDEyZzU0QmlobzBYNEdNNTgKLT4gc3NoLWVkMjU1 +MTkgU3JIYXFBIE1EYS9pMWE4dVRPQThBZnhudUEzMXNLYWFaYmxDU3k2NFd4aWpI +OE9jUlUKUzJDcy84L2c2Qnp0QzViK2RzR3dLYVh4ZTVWbFFoVHN6OTEydk1VRDM5 +UQotPiBzc2gtZWQyNTUxOSBDU015aGcgWFFLMWQ5ME8zMEd2K29rRXZqWW53M0Vp +KzZEOHVaeGp3STJMMDRjZGlEawozb1N0WkxmZ3R0VDRmMmg1RDkrT2F1aWhqRDNW +U2pLRVBFZm9VMlluZzVZCi0+IHB3eV87cy1ncmVhc2UgaCB5Y3tfP3ZeXiAkTk9H +LiVaaQpKNytyZUZyaytoR25EaGo5RjhRa2hRaktEZk9HdHVhSVlvWGxxdGM1WGVa +a2tDQ2FQRnVCeVlCcG9aZU4xdjJoCnFMN2ozcWh6eVhiUXMvQThoYVkzRlY5RTI4 +ZERRdFJWeENyTU9TNS9PcHRJQXNuNXo4WmVDOU16ZlJ6SwotLS0gVnZqZ1k1KzFo +M3B1cExiZkliWmF0TGc3U2hISWVXNHl6WE1mZTRWQ3V1awp4y8usDAHB5/wlNM04 +J0mH5vytccSQhZ9F9DPEPrRwX98H4gsyRtn0sbcfZIDFnQOogqRcSOBWZEs= +-----END AGE ENCRYPTED FILE-----