• Nix 99.8%
  • Shell 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-16 01:07:06 +02:00
modules printer: try to fix package rename 2026-08-16 01:07:06 +02:00
check.sh check.sh: 25.11 2025-12-11 01:01:53 +01:00
flake.lock flake.lock: Update 2026-08-16 01:04:23 +02:00
flake.nix Fix missing libS... 2026-01-11 01:44:46 +01:00
LICENSE Fix year 2025-05-15 13:57:18 +02:00
README.md Complete documentation 2025-07-05 01:29:25 +02:00
renovate.json Update renovate.json 2024-11-05 22:15:18 +01:00
ssh-data.nix ssh-data: add victorialogs 2026-07-22 23:47:46 +02:00

C3D2 NixOS user module

NixOS module intended to be used by people regularly visiting C3D2 and wanting to stream audio, have a filled known_host's file, etc.

Usage

Add or merge the following settings to your flake.nix:

{
  inputs = {
    c3d2-user-module.url = "git+https://gitea.c3d2.de/C3D2/nix-user-module.git";
  };

  outputs = { c3d2-user-module }: {
    nixosConfigurations.HOSTNAME = {
      modules = [
        c3d2-user-module.nixosModule
      ];
    };
  };
}

If you are using nixos-modules you need to add a follows to the c3d2-user-module:

{
  inputs = {
    c3d2-user-module = {
      url = "git+https://gitea.c3d2.de/C3D2/nix-user-module.git";
      inputs.nixos-modules.follows = "nixos-modules";
    };

    nixos-modules.url = "github:NuschtOS/nixos-modules";
  };
}

Options

  • c3d2.addBinaryCache: set to true to add the c3d2 hydra as permanent trusted-substituter.
  • c3d2.addKnownHosts: set to true to add the public ssh host keys to the known_hosts file.
  • c3d2.configureAudioStreaming: set to true to enable all services to audio stream to pulsebert, dacbert or glotzbert in hq. After enabling this option run systemctl --user restart pulseaudio or systemctl --user restart pipewire-pulse. If that is not working logout of your session and log back in and check Avahi via avahi-browse -t _pulse-sink._tcp.
  • c3d2.configureBrotherLabelPrinter: set to true to configure the Brother label printer
  • c3d2.configureCongressWifi: set to true to configure the WiFi which will be on Congress in advance. The c3d2.congressName option is used to determine the name of the SSID.
  • c3d2.configureHackspaceWifi: set to true to configure the C3D2 and ZW public (without auto connect) WiFi connection in the normal and legacy variants.
  • c3d2.configureXeroxWorkCentre: set to true to configure the big printer located in the hallway.

Wireguard options

To easily configure the Wireguard connections us the following options. There are two types available: admin for infrastructure maintainers and user for normal usage.

Option Description
enable Whether to enable this wireguard.
interfaceName How the wireguard interface will be named.
lastBlockAddress Last digit of the IPv4 address that got assigned to you.
privateKeyFile Path to a file containing the private key to the public key you shared with the network maintainers.

Design

  • Modules should never change the configuration without setting an option

Structure

This is based on sandro's nixos-modules (on GitHub) and follows the same structure and design.