panix

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2026 License: AGPL-3.0

README

panix

Nix deployment tool

Setup

Remote requires to have ssh key authentication (kay file has to be without password, unless you are using an SSH agent), and password auth is also not supported.

If you have only password auth, create and add a temporary key to remote with the following commands:

# On remote (set password for root user)
sudo passwd
export REMOTE=<host>

# Generate key pair
ssh-keygen -t ed25519 -f ./temp_key -C "temporary_deployment_key" -N ""

# Copy key to remote (with disabled SSH agent to prevent trying to auth with keys in agent)
SSH_AUTH_SOCK="" ssh-copy-id -i ./temp_key.pub root@$REMOTE

You now may test the login with:

ssh -i ./temp_key -o IdentitiesOnly=yes root@$REMOTE

Now you can get (for example) the hardware config:

nixos-generate-config --no-filesystems --show-hardware-config

Caviats

Not caviats so per se, just good things to know:

  • local and remote have to have rsync installed to transfer plan files/dirs (note that kexec already includes rsync)
  • default remote shell (e.g. sh) has to be POSIX compliant shell for specific commands to run (e.g. can't use Fish shell)
  • for kexec, make sure you satisfy the minimum system requirements (e.g. 1GB of memory without swap)

YAML schema

Panix can generate YAML schema with panix schema for seeing parameter descriptions and their validation in your IDE. You just reference it in panix.yml as:

# yaml-language-server: $schema=./panix-schema.yaml

...

Note that you might need to add support using an extension like vscode-yaml.

Contributing

Link

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL