Files
lldap/docs/nix-development.md
T
Copilot fe063272bf chore: add Nix flake-based development environment
Co-authored-by: Kumpelinus <kumpelinus@jat.de>

- Add Nix flake and lockfile for reproducible development environments
- Document Nix-based setup in `docs/nix-development.md`
- Add `.envrc` for direnv integration and update `.gitignore` for Nix/direnv artifacts
- Reference Nix setup in CONTRIBUTING.md
2025-09-28 13:51:41 +02:00

1.5 KiB

Nix Development Environment

LLDAP provides a Nix flake that sets up a complete development environment with all necessary tools and dependencies.

Requirements

  • Nix with flakes enabled
  • (Optional) direnv for automatic environment activation

Usage

# Clone the repository
git clone https://github.com/lldap/lldap.git
cd lldap

# Enter the development environment
nix develop

# Build the workspace
cargo build --workspace

# Run tests
cargo test --workspace

# Check formatting and linting
cargo fmt --check --all
cargo clippy --tests --workspace -- -D warnings

# Build frontend
./app/build.sh

# Export GraphQL schema (if needed)
./export_schema.sh

# Start development server
cargo run -- run --config-file lldap_config.docker_template.toml

Building with Nix

You can also build LLDAP directly using Nix:

# Build the default package (server)
nix build

# Build and run
nix run

Development Shells

The flake provides two development shells:

  • default - Full development environment
  • ci - Minimal environment similar to CI
# Use the CI-like environment
nix develop .#ci

Automatic Environment Activation (Optional)

For automatic environment activation when entering the project directory:

  1. Install direnv: nix profile install nixpkgs#direnv
  2. Set up direnv shell hook in your shell configuration
  3. Navigate to the project directory and allow direnv: direnv allow
  4. The environment will automatically activate when entering the directory