Skip to content

Add Nix installation and NixOS integration - #7

Merged
dmytrogajewski merged 3 commits into
Mewplane:masterfrom
xBLACKICEx:nix
Nov 7, 2026
Merged

dmytrogajewski merged 3 commits into
Mewplane:masterfrom
xBLACKICEx:nix

Conversation

@xBLACKICEx

@xBLACKICEx xBLACKICEx commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Adds Nix support for installing syauth and configuring it on NixOS.

Changes

  • Package the CLI, presence daemon, and PAM module.
  • Add a pinned Nix development environment with Rust, formatting, linting, and pre-commit tools.
  • Add a NixOS module that manages the desktop user's bond-store directory and systemd user service. PAM integration is opt-in per service, with configurable control and module arguments.
  • Document installation, configuration, and module options, with checks for generated PAM rules and service configuration.

The PAM control defaults to sufficient, matching the existing Linux installer. No PAM services are modified by default.

Validation

Tested and currently in use on my NixOS system.

  • nix flake check and CLI version check passed.
  • make build, make lint, and all pre-commit hooks passed.
  • Rust tests: 447 passed, 10 ignored.
  • Python release, installer, and update-check tests: 51 passed.
  • Strict documentation build passed.

The non-fatal cargo audit step could not fetch the RustSec database; cargo deny passed. Release-script tests required OpenSSL supplied separately. Automated live-phone authentication and documentation browser checks were not run.

S-022: build, run, and develop syauth through a flake on x86-64 and
ARM64 Linux. The package derivation runs the Rust workspace test suite
and installs the CLI, daemon, and PAM module. The development shell
supplies the pinned fenix toolchain plus the git-hooks checks.

S-023: nixosModules.default configures one desktop account, its private
store, and a restricted systemd user unit. PAM changes are opt-in per
service and support a control override and module arguments.
nix/check.nix evaluates the generated configuration.

Docs: add the Nix how-to and module option reference, and record both
journeys in the roadmap.
@xBLACKICEx xBLACKICEx changed the title feat(nix): add flake packaging, dev shell, and NixOS module Add Nix installation and NixOS integration Nov 7, 2026
@xBLACKICEx
xBLACKICEx marked this pull request as draft November 7, 2026 12:55
@xBLACKICEx
xBLACKICEx marked this pull request as ready for review November 7, 2026 14:07
@xBLACKICEx

Copy link
Copy Markdown
Contributor Author

@dmytrogajewski
I've updated the Nix support against the latest upstream release and verified the build and checks. Could you take another look? Please let me know if anything needs adjusting.

xBLACKICEx and others added 2 commits November 8, 2026 01:33
Merge origin/master and retain the Nix documentation alongside the
current repository and release links. Supply isolated D-Bus test
configuration, development-shell runtime dependencies, and the
upstream service restart policy.

Validated with nix flake check, CLI version, make lint, 460 Rust
tests, 52 Python tests, pre-commit hooks, and strict docs build.
@dmytrogajewski

Copy link
Copy Markdown
Collaborator

Thanks @xBLACKICEx for contributing the Nix package and NixOS integration, and for documenting the setup!

I rebased the branch onto the audit ownership fix in #9 and added automatic PAM socket configuration, validation for missing socket arguments, and a booted NixOS integration test in CI. The combined VM tests and all CI checks now pass, including installation/removal, signed approvals, password fallback, account isolation, and disable/rollback preserving bonds.

Merging this for syauth 0.3.0. Thank you for bringing NixOS support to the project.

@dmytrogajewski
dmytrogajewski merged commit 0a4fe21 into Mewplane:master Nov 7, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants