Skip to content

Installation

zigduck ships as a NixOS module in a flake. You need a NixOS system configured with flakes.

flake.nix
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
zigduck.url = "github:quackhack-mcblindy/zigduck";
};
imports = [
zigduck.nixosModules.zigduck
];

The module also needs self and inputs as module arguments. Pass them to nixosSystem through specialArgs:

flake.nix
nixosSystem {
specialArgs = { inherit self inputs; };
# ...
}
services.zigduck = {
enable = true;
cli.enable = true;
# Install the GNOME Shell extension for a top bar widget.
# Turn it on afterwards with:
# gnome-extensions enable zigduck@quackhack-mcblindy.com
gnomeExtension.enable = true;
dashboard = {
enable = true;
# Set to false if you serve the dashboard over plain HTTP (not recommended).
secure = true;
port = 13336;
openFirewall = true;
passwordFile = config.sops.secrets.dashboard.path;
};
};

The examples on this site use sops-nix for secrets (config.sops.secrets.*.path). Any option ending in File takes a path, so agenix or a plain file outside the Nix store works too.