Files
nixpkgs/docs
m3tm3re 00b858fbbe docs: update documentation for latest changes
- Add stt-ptt language support documentation
- Add rofi-project-opener module documentation
- Add rofi-project-opener package documentation
- Update zellij-ps documentation
- Update guides and reference patterns
- Update AGENTS.md with latest commands
2026-01-10 19:12:45 +01:00
..
2026-01-06 05:54:39 +01:00

m3ta-nixpkgs Documentation

Complete documentation for m3ta's personal Nix flake repository.

Overview

m3ta-nixpkgs is a collection of custom packages, overlays, NixOS modules, and Home Manager modules organized as a modern Nix flake. This repository follows a flakes-only approach (no channels) and provides reusable components for personal infrastructure.

Getting Started

Documentation Sections

📚 Guides

Step-by-step guides for common tasks:

📦 Packages

Documentation for all custom packages:

⚙️ Modules

Configuration modules for NixOS and Home Manager:

NixOS Modules

  • Overview - NixOS modules overview
  • mem0 - Mem0 REST API server module
  • ports - Port management module

Home Manager Modules

📖 Reference

Technical references and APIs:

  • Functions - Library functions documentation
  • Patterns - Code patterns and anti-patterns

Repository Structure

m3ta-nixpkgs/
├── docs/                    # This directory
│   ├── README.md
│   ├── QUICKSTART.md
│   ├── ARCHITECTURE.md
│   ├── CONTRIBUTING.md
│   ├── guides/
│   ├── packages/
│   ├── modules/
│   └── reference/
├── pkgs/                    # Custom packages
├── modules/
│   ├── nixos/              # NixOS modules
│   └── home-manager/       # Home Manager modules
├── lib/                    # Library functions
├── shells/                 # Development shells
├── overlays/              # Package overlays
├── templates/             # Templates
└── examples/              # Usage examples

Key Concepts

Flakes-Only Approach

This repository uses modern Nix flakes exclusively. No channels or nix-channel commands are needed. All dependencies are declaratively specified in flake.nix.

Namespace Convention

All modules use the m3ta.* namespace:

  • m3ta.ports.* - Port management
  • m3ta.mem0.* - Mem0 service configuration
  • m3ta.*.enable - Enable/disable modules

Port Management

Centralized port management across hosts using the m3ta.ports module:

m3ta.ports = {
  enable = true;
  definitions = { mem0 = 8000; };
  hostOverrides.laptop = { mem0 = 8080; };
  currentHost = "laptop";
};

Supported Systems

  • x86_64-linux - Primary
  • aarch64-linux - ARM Linux
  • x86_64-darwin - macOS (Intel)
  • aarch64-darwin - macOS (Apple Silicon)

Quick Commands

# Validate flake
nix flake check

# Format code
nix fmt

# Build package
nix build .#<package-name>

# List outputs
nix flake show

# Enter dev shell
nix develop

License

Individual packages may have their own licenses. Check each package's meta.license attribute.

Maintainer

@m3tam3re