n8n >= 2.37.0 demands pnpm >= 11.22.0 via engines.pnpm and serialises patchedDependencies as plain scalars in pnpm-lock.yaml (same lockfileVersion '9.0'), which pnpm 10 cannot install. The pinned nixpkgs only ships pnpm_11 11.17.0, so: - build with pnpm_11 + fetcherVersion 4 and relax the engines.pnpm gate in package.json (relaxPnpmEngine) for both fetchPnpmDeps and the main build; swap pnpm_10 -> pnpm_11 in nativeBuildInputs - drop the workaround once nixpkgs ships pnpm >= 11.22 update.sh: detect ERR_PNPM_UNSUPPORTED_ENGINE / ERR_PNPM_LOCKFILE_CONFIG_MISMATCH with actionable hints, sync tests/n8n-overlay-test.nix expectations (checks were stale at 2.32.6), guard against leftover fake-hash sentinels, and run from the repo root so the relative nix --expr paths resolve. Verified: n8n-overlay check green, full n8n 2.37.9 build green.
m3ta-nixpkgs
Personal Nix flake repository: custom packages, overlays, NixOS modules, and Home Manager modules.
Features
- 🎁 Custom Packages: Collection of personal Nix packages
- 🔄 Overlays: Package modifications and enhancements
- 🐚 Development Shells: Pre-configured environments (Python, DevOps)
- ⚙️ NixOS Modules: System-level configuration modules
- 🏠 Home Manager Modules: User-level configuration modules
- 📚 Library Functions: Helper utilities for configuration management
- ❄️ Flakes Only: Modern Nix flakes support (no channels)
Quick Links
- 📖 Full Documentation
- 🚀 Quick Start Guide
- 📚 Architecture
- 🤝 Contributing
- 📦 Packages
- ⚙️ Modules
- 📖 Guides
Quick Start
# Add to your flake
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
m3ta-nixpkgs.url = "git+https://code.m3ta.dev/m3tam3re/nixpkgs";
# Build a package
nix build git+https://code.m3ta.dev/m3tam3re/nixpkgs#code2prompt
# Run a package
nix run git+https://code.m3ta.dev/m3tam3re/nixpkgs#zellij-ps
Available Packages
See 📦 Packages for the full index with descriptions.
Quick reference — build any package directly:
nix build git+https://code.m3ta.dev/m3tam3re/nixpkgs#<package-name>
nix run git+https://code.m3ta.dev/m3tam3re/nixpkgs#<package-name>
Notable packages: sidecar, td, code2prompt, mem0, n8n, zellij-ps.
Automated Package Updates
This repository uses Gitea Actions to automatically update packages using nix-update:
Workflow: .gitea/workflows/nix-update.yml
Schedule: Runs weekly on Sundays, and can be triggered manually.
What it does:
- Checks all packages in
pkgs/for updates - Updates versions and hashes using
nix-update --flake --commit - Creates a new branch with updates
- Opens a pull request automatically
Manual Trigger: Go to Actions → Update Nix Packages with nix-update → Run workflow in Gitea UI, then optionally specify a specific package to update.
Setup Required:
- Create a Personal Access Token in Gitea (Settings → Applications → Generate Token)
- Token scopes needed:
user,repo,write:issue - Add token as secret: Settings → Secrets → New →
NIX_UPDATE_TOKEN
For detailed usage, module documentation, package references, and contribution guidelines, see the full documentation.
License
Individual packages may have their own licenses. Check each package's meta.license attribute.