NiXOA Core is a NixOS appliance flake for running Xen Orchestra Community Edition. It gives you a reproducible host layout, a packaged XO build, a single operator CLI, and an SSH-friendly console for day-to-day administration.
This repo can be used in two ways:
- as the concrete host flake for a NiXOA appliance
- as a reusable Den namespace through
flake.denful.nixoaCore
- Xen Orchestra CE packaged from the pinned
xen-orchestra-ceinput nxcli, the supported command line for host and repository operationsnixoa-menu, an xsconsole-style SSH operator console- a host template under
host/_template/ - concrete host outputs such as
nixosConfigurations.<hostname>and<hostname>-vm nixosConfigurations.vm, a stable VM alias selected byhost/_automation/default.nix- reusable Den aspects:
<nixoaCore/platform>,<nixoaCore/xcp-ng-guest>,<nixoaCore/xo>, and<nixoaCore/appliance>
On a fresh NixOS install, the streamed bootstrap path prepares a checkout, creates a host from the template, and can run the first switch:
bash <(curl -fsSL https://codeberg.org/NiXOA/core/raw/branch/main/scripts/bootstrap.sh) --enable-flakes --first-switchIf you prefer to clone the repo first:
git clone https://codeberg.org/NiXOA/core.git ~/nixoa
cd ~/nixoa
nix run .#nxcli -- host add nixo-ce --first-switchAfter the first successful apply, use the installed tools directly:
nxcli status
nixoa-menuSSH logins open a normal shell by default. Run nixoa-menu manually, or set
nixoaMenuAutoStart = true; in the host context if SSH sessions should enter the console automatically.
Before nxcli is installed on the host, prefix commands with
nix run .#nxcli -- from the repo checkout.
nxcli status
nxcli apply --target vm
nxcli boot --target vm
nxcli diff
nxcli commit "Describe the change"
nxcli update flake --preview
nxcli update xoa
nxcli xo logsSee the full command reference in docs/nxcli.md.
- Installation: fresh install prep, bootstrap paths, and first apply
- Getting Started: first host creation and initial operating flow
- Daily Operations: status, logs, updates, commits, rollback, and
nixoa-menu - nxcli Reference: complete CLI syntax, options, examples, and behavior notes
- Configuration Reference: host context values and editable files
- Common Tasks: short examples for frequent host edits
- Troubleshooting: common operational failure modes
- Architecture: Den namespace, host assembly, and exported outputs
- Changelog: release history and breaking changes
core/
├── host/ # host template, concrete hosts, and the stable VM alias
├── modules/ # reusable aspects plus shared NixOS/Home Manager implementation
├── lib/ # shared Nix helpers
├── docs/ # operator and maintainer documentation
├── scripts/ # nxcli source, bootstrap wrapper, shared helpers, and TUI backend
└── flake.nix
nxcliis the canonical operator interface. Direct script execution is for bootstrap and internal plumbing.nixoa-menuusesnxclifor apply, rollback, and repository commits.- Host-owned values belong under
host/<hostname>/, not reusable core aspects. flake.denful.nixoaCoreis the primary reusable public surface.