Skip to content

KARTOZA · GISNIX

GISNIX

An opinionated, open-source NixOS distribution for GIS workstations. QGIS-centred, COSMIC on Wayland, ZFS-encrypted by default, keyboard-first, and reproducible down to the ISO. Boot the installer, partition the disk, pick your software from a bundle registry, and get a machine whose entire configuration is one flake.

Installing GISNIX erases the target disk

The installer completely wipes the disk you install onto — every existing partition and file is destroyed and cannot be recovered. Back up anything you need first, and be sure of the disk you choose. GISNIX and Kartoza accept no responsibility for lost data.

Install on Your Machine

Most users want to grab the ISO and install GISNIX on real hardware.

1. Get the ISO

Download the latest release or build it yourself:

git clone https://github.com/kartoza/gisnix
cd gisnix
nix build .#nixosConfigurations.installer.config.system.build.isoImage

2. Flash & Boot

Write the ISO to a USB drive and boot from it — UEFI required, Secure Boot off.

See making a bootable USB stick for balenaEtcher/dd/Rufus instructions, or try it first with nix run .#test-install — no USB drive needed, boots straight into QEMU.

3. Run Setup

The Kartoza-branded TUI installer walks you through account setup, storage (ZFS single-disk encrypted, plain XFS, or multi-disk ZFS), locale, boot theme, and a starting software selection.

sudo setup

Full Quickstart Guide Making a Bootable USB Stick


What You Get

Bundles

Software organised into named sets under software/, each a bundle.json describing what it needs. gisnix configure gives you a menu instead of hand-editing config.nix — dependencies resolve on their own, so asking for the QGIS bundle also gets you the desktop it needs to run in.

QGIS, Several Ways

The current release channels, plus 23 pinned historical QGIS releases going back to 1.8, each installed from its own pinned nixpkgs so the old and the current don't fight over shared library versions.

Encrypted Storage

ZFS on a single disk with AES-256-GCM encryption is the installer's default — a passphrase prompt at boot. Plain XFS and multi-disk ZFS (stripe, RAIDZ, RAIDZ2) are the alternatives; see storage modes.

One Command

Every operational task — configuring software, creating a host, running the installer itself — is gisnix <command>, driven from a single manifest so a new one gets a flake app, a subcommand, and a dev-shell binary from one entry.

lib.mkHost

A separate flake can pin GISNIX and build a host against its bundles and profiles while keeping only its own host and user files — see Building on GISNIX.

Instant Rollbacks

Every rebuild is a new generation, selectable from the bootloader menu. Whole-system, reproducible, and never a partial state.

COSMIC on Wayland

One desktop, tracked close to upstream — System76's Rust compositor on Wayland. Modern, GPU-accelerated, tiling-capable, and identical on every GISNIX machine so muscle memory travels with you.

Keyboard-first, with speech

kanata is on by default — home-row mods, a nav layer, chords — no vendor hardware needed. Hold right Ctrl and voxtype types what you say into whatever field your cursor is in — on the CPU, no graphics card needed.

Sandboxed AI tools

Claude Code, Gemini CLI, OpenCode and a local Ollama workspace each run in a bubblewrap jail, so a compromised assistant cannot reach your SSH agent, your keys, or the rest of your home.

What makes GISNIX opinionated


Requirements

UEFI boot, Secure Boot off, 48GB of disk at minimum (more if you're taking several QGIS versions at once). The installer sizes every ZFS dataset's quota from the disk you actually pick, always leaving 20GB unclaimed as pool headroom — a disk too small for that gets rejected on the storage screen instead of failing partway through the install. See the quickstart for the rest.


AI statement

Tim Sutton

Note from the Author: This web site was substantially generated using AI and reviewed by me, a human. Also many parts of the GISNIX project were created, improved and supported using Claude. If you are looking for an 'AI Free' project, this is not the place for you. However this project is also around 3 years of hard, manual work on my part — learning NixOS, reviewing tools, desktop environments, wrangling .nix files by hand, refactoring, streamlining and trying to figure out how to provide a great user experience while trying to balance a tightrope of ethics, good and useful technology etc. We do welcome contributions, including AI generated improvements, but you need to thoroughly check and test your work first which can be time consuming and is not something that can be delegated to an AI agent.
— Tim Sutton (@timlinux)

Commercial support

GISNIX is built and maintained by Kartoza, an open-source geospatial company. If you are rolling GISNIX out across an organisation and want help — deployment, custom enhancements, private software bundles, training, or a support contract — Kartoza offers all of these commercially.

Get in touch

Acknowledgements

GISNIX stands on the work of the NixOS, COSMIC, and QGIS communities.

Tim Sutton

Tim Sutton (@timlinux) — author and maintainer of GISNIX, co-founded Kartoza in 2014. My goal is to make geospatial decision making tools available to everyone, and I hope GISNIX helps you in your quest to use GIS.


Made with 💗 by Kartoza | Donate! | GitHub