Skip to content

Modules

A full desktop configuration with gnome, multimedia and office tools.

  • enable bool Desktop optimized host configuration
darkone.host.desktop.enable = false;

The main gateway / router of local network.

  • enable bool Enable gateway features for the current host (dhcp, dns, proxy, etc.)
  • enableFail2ban bool Enable fail2ban service
  • enableAdguardhome bool Enable pre-configured Aguard Home service
  • enableNcps bool Enable the proxy cache for packages
  • enableLldap bool Enable pre-configured lldap service (additional users & groups)
darkone.host.gateway = {
enable = false;
enableFail2ban = true;
enableAdguardhome = builtins.hasAttr "adguardhome" host.services;
enableNcps = builtins.hasAttr "ncps" host.services;
enableLldap = builtins.hasAttr "lldap" host.services;
}

Desktop config + laptop specific tools & configuration.

  • enable bool Laptop optimized host configuration
darkone.host.laptop.enable = false;

Every host configuration is based on this minimal config.

  • enable bool Minimal host configuration
  • secure bool Prefer more secure options (disable mutable users…)
  • enableHomepage bool Enable the auto-configured homepage service
  • enableForgejo bool Enable pre-configured forgejo git forge service
  • enableImmich bool Enable pre-configured immich service
  • enableNextcloud bool Enable pre-configured nextcloud service
  • enableNetdata bool Enable pre-configured Netdata service
  • enableMonitoring bool Enable pre-configured monitoring service (prometheus, grafana)
  • enableVaultwarden bool Enable pre-configured Vaultwarden service
darkone.host.minimal = {
enable = false;
secure = false;
enableHomepage = attrsets.hasAttrByPath [ "services" "homepage" ] host;
enableForgejo = attrsets.hasAttrByPath [ "services" "forgejo" ] host;
enableImmich = attrsets.hasAttrByPath [ "services" "immich" ] host;
enableNextcloud = attrsets.hasAttrByPath [ "services" "nextcloud" ] host;
enableNetdata = attrsets.hasAttrByPath [ "services" "netdata" ] host;
enableMonitoring = attrsets.hasAttrByPath [ "services" "monitoring" ] host;
enableVaultwarden = attrsets.hasAttrByPath [ "services" "vaultwarden" ] host;
}

Portable configuration for a bootable USB drive containing a NixOS machine from the local network.

  • enable bool Portable host configuration for usb keys
darkone.host.portable.enable = false;

Improved configuration for servers (minimal, no sleep, watchdog…).

  • enable bool Server host minimal configuration
  • enableWatchdog bool Enable systemd watchdog
darkone.host.server = {
enable = false;
enableWatchdog = true;
}

Virtual machines guest tools.

  • enableVirtualbox bool Virtualbox client
  • enableXen bool Xen client
darkone.host.vm = {
enableVirtualbox = false;
enableXen = false;
}

Profile for advanced users (computer scientists, developers, admins).

  • enable bool Advanced user (admin sys, developper)
darkone.profile.advanced.enable = false;

Features for childs and babies.

  • enable bool Children softwares
darkone.profile.children.enable = false;

Graphic environment with office softwares.

  • enable bool Graphic environment with office softwares
darkone.profile.office.enable = false;

Features for teenagers.

  • enable bool Teenager softwares
darkone.profile.teenager.enable = false;

NixOS configuration for the local LAN administrator computer.

  • enable bool Enable NIX configuration builder tools
  • enableNh bool Enable nix helper (nh) management tool
darkone.admin.nix = {
enable = false;
enableNh = false;
}

A pre-configured git environment.

  • enable bool Pre-configured git environment
darkone.console.git.enable = false;

Some useful console only softwares.

  • enable bool Vim, less, zip, unzip, tree, wget…
  • enableAdditional bool Findutils, fzf, git, htop, neofetch, ranger…
darkone.console.packages = {
enable = false;
enableAdditional = false;
}

Pandoc with texlive and exiftool utils + gentium fonts.

  • enable bool Pre-configured pandoc environment
darkone.console.pandoc.enable = false;

A full zsh installation with aliases, bindkeys and optimized prompt.

  • enable bool ZSH environment
  • enableForRoot bool Root home manager ZSH configuration
darkone.console.zsh = {
enable = false;
enableForRoot = false;
}

Graphical education packages.

  • enable bool Default useful packages
  • enableBaby bool Software for babies (<=6 yo)
  • enableChildren bool Software for children (6-12 yo)
  • enableTeenager bool Software for teenagers and adults (>=12 yo)
darkone.graphic.education = {
enable = false;
enableBaby = false;
enableChildren = false;
enableTeenager = false;
}

Several graphical game packages.

  • enable bool Enable game packages (please select age group)
  • enableBaby bool Games for babies (<=6 yo)
  • enableChildren bool Games for children (6-12 yo)
  • enableTeenager bool Games for teenagers and adults (>=12 yo)
darkone.graphic.games = {
enable = false;
enableBaby = false;
enableChildren = false;
enableTeenager = false;
}

Pre-configured gnome environment with dependences.

  • enable bool Pre-configured gnome WM
  • enableDashToDock bool Dash to dock plugin
  • enableLightDM bool Enable LightDM instead of GDM
  • enableCaffeine bool Disable auto-suspend
  • enableGsConnect bool Communication with devices
  • enableSuspend bool Enable suspend, sleep, hybernate features (usefull for laptops)
  • enableMoreGnomeApps bool More gnome apps for regular users (music, calendar, maps, contacts…)
  • enableTechnicalFeatures bool Gnome apps for techniciens (binary, collision, apostrophe…)
  • enableGames bool Enable gnome games
  • xkbVariant str Keyboard variant. Layout is extracted from console keymap.
darkone.graphic.gnome = {
enable = false;
enableDashToDock = false;
enableLightDM = false;
enableCaffeine = false;
enableGsConnect = false;
enableSuspend = false;
enableMoreGnomeApps = false;
enableTechnicalFeatures = false;
enableGames = false;
xkbVariant = "";
}

Image processing softwares (gimp, geeqie, pinta + blender, inkscape, krita…).

  • enable bool Imagery creation
  • enablePro bool Additional image processing software for professionals
darkone.graphic.imagery = {
enable = false;
enablePro = false;
}

Music creation packages and modules.

  • enable bool Music creation module
  • enablePro bool Music creation softwares for pros (wip)
darkone.graphic.music = {
enable = false;
enablePro = false;
}

Preconfigured obsidian installation.

  • enable bool Default useful packages
darkone.graphic.obsidian.enable = false;

Common tools for office desktop.

  • enable bool Default useful packages
  • enableLibreOffice bool Office packages (libreoffice)
  • enableInternet bool Internet packages (firefox)
  • enableEmail bool Email management packages (thunderbird)
darkone.graphic.office = {
enable = false;
enableLibreOffice = true;
enableInternet = true;
enableEmail = true;
}

Video creation tools.

  • enable bool Video creation (kdenlive…)
  • enablePro bool Video softwares for professionals
darkone.graphic.video = {
enable = false;
enablePro = false;
}

Virt manager + viewer with spice, win-virtio and ovmf.

  • enable bool Virt manager with dependencies
darkone.graphic.virt-manager.enable = false;

Virtualbox host installation.

  • enable bool Pre-configured virtualbox installation
  • enableExtensionPack bool Enable extension pack (causes recompilations)
darkone.graphic.virtualbox = {
enable = false;
enableExtensionPack = false;
}

Full-configured AdGuard Home for local gateway / router.

  • enable bool Enable local adguardhome service
  • domainName str Domain name for Adguard Home, registered in nginx & hosts
darkone.service.adguardhome = {
enable = false;
domainName = "adguardhome";
}

Audio services: alsa, pulse (not jack for the moment).

  • enable bool Enable sound system
darkone.service.audio.enable = false;

Pre-configured dnsmasq for local gateway / router.

  • enable bool Enable local dnsmasq service
darkone.service.dnsmasq.enable = false;

A full-configured forgejo git forge.

  • enable bool Enable local forgejo service
  • domainName str Domain name for the forge, registered in forgejo, nginx & hosts
  • appName str Default title for the local GIT forge
darkone.service.forgejo = {
enable = false;
domainName = "forgejo";
appName = "The local forge";
}

A Home Assistant with some plugins (wip).

  • enable bool Enable home assitant
darkone.service.home-assistant.enable = false;

Dynamically configured homepage dashboard for your local network.

  • enable bool Enable homepage dashboard + nginx + host
  • domainName str Domain name for homepage (default is hostname)
  • adminServices ? Services to add in Administration section
  • appServices ? Services to add in Applications section
  • bookmarks ? Replace default bookmarks (links)
  • widgets ? Replace default widgets
darkone.service.homepage = {
enable = false;
domainName = "host.hostname";
adminServices = [ ];
appServices = [ ];
bookmarks = [ ];
widgets = [ ];
}

Nginx httpd simple server with PHP84 (WIP)

  • enable bool Enable httpd (nginx)
  • enableUserDir bool Enable user dir configuration
  • enablePhp bool Enable PHP 8.4 with useful modules
  • enableVarWww bool Enable http root on /var/www
darkone.service.httpd = {
enable = false;
enableUserDir = false;
enablePhp = false;
enableVarWww = false;
}

Immich (photo management) full-configured service.

  • enable bool Enable local immich service
  • domainName str Domain name for immich, registered in nginx & hosts
  • enableMachineLearning bool Enable machine learning features (face recognition, object detection)
  • enableRedis bool Enable Redis for caching (recommended for performance)
darkone.service.immich = {
enable = false;
domainName = "immich";
enableMachineLearning = false;
enableRedis = false;
}

Pre-configured lldap configuration for users and groups (wip).

  • enable bool Enable local lldap service
  • openLdapPort bool Open the lldap port (default is 3890)
  • domainName str Domain name for lldap, registered in forgejo, nginx & hosts
darkone.service.lldap = {
enable = false;
openLdapPort = false;
domainName = "users";
}

Supervision module with prometheus, grafana and node exporter.

  • enable bool Enable monitoring with prometheus, grafana and node exporter
  • domainName str Domain name for monitoring, registered in nginx & hosts
  • retentionTime str DurΓ©e de rΓ©tention des mΓ©triques Prometheus
darkone.service.monitoring = {
enable = false;
domainName = "monitoring";
retentionTime = "15d";
}

Nix cache proxy with NCPS module.

  • enable bool Enable nix cache proxy for packages
  • isClient bool Only enable client configuration
  • dataPath str Nix cache proxy cache folder
  • extraOptions attrs services.ncps extra options
darkone.service.ncps = {
enable = false;
isClient = false;
dataPath = "/var/cache/ncps";
extraOptions = { };
}

Netdata supervision module.

  • enable bool Enable netdata application
  • domainName str Domain name for netdata, registered in nginx & hosts
darkone.service.netdata = {
enable = false;
domainName = "netdata";
}

Nextcloud full-configured service.

  • enable bool Enable local nextcloud service
  • domainName str Domain name for nextcloud, registered in nextcloud, nginx & hosts
  • adminUser str Admin username for Nextcloud
  • adminPassword str Admin password for Nextcloud (change this!)
darkone.service.nextcloud = {
enable = false;
domainName = "nextcloud";
adminUser = "admin";
adminPassword = "changeme";
}

Printers and scanners.

  • enable bool Default useful packages
  • loadAll bool Full printers and scanners
  • enableScanners bool Enable scanners
  • enableHpPrinters bool HP printers
  • enableManualInstall bool Manual installation
darkone.service.printing = {
enable = false;
loadAll = true;
enableScanners = true;
enableHpPrinters = true;
enableManualInstall = true;
}

A full-configured vaultwarden server (wip).

  • enable bool Enable local Vaultwarden service
  • domainName str Domain name for the Vaultwarden service
  • appName str Default title for Vaultwarden server
darkone.service.vaultwarden = {
enable = false;
domainName = "vaultwarden";
appName = "Unofficial Bitwarden compatible server";
}

The core DNF module.

  • enable bool Darkone framework core system (activated by default)
  • enableSystemdBoot bool Enable the default boot loader
  • enableFstrim bool SSD optimisation with fstrim
  • enableFirewall bool Enable firewall (default true)
  • enableSops bool Enable sops dnf module (default true)
  • enableGatewayClient bool Configuration optimized for local gateway (ncps client…)
  • enableBoost bool Enable overclocking, corectl
  • enableKmscon bool Enable nerd font for TTY
darkone.system.core = {
enable = true;
enableSystemdBoot = true;
enableFstrim = true;
enableFirewall = true;
enableSops = true;
enableGatewayClient = true;
enableBoost = false;
enableKmscon = false;
}

Documentation (man) for developers and admins.

  • enable bool Enable useful technical documentation (man, nixos)
darkone.system.documentation.enable = false;

Hardware configuration improvements.

  • enable bool Enable hardware optimisations
  • enableIntel bool Enable intel microcode updates
  • enableAmd bool Enable amd microcode updates
darkone.system.hardware = {
enable = false;
enableIntel = false;
enableAmd = false;
}

Location and lang configuration.

  • enable bool Enable i18n with network configuration by default
  • locale str Network locale
  • timeZone str Network time zone
darkone.system.i18n = {
enable = false;
locale = "fr_FR.UTF-8";
timeZone = "Europe/Paris";
}

DNF Service registration and configuration.

  • enable bool Enable DNF service manager to register a new service
  • enable bool Enable service proxy
  • service str Domain name for the service
  • displayOnHomepage bool Display a link on homepage
  • displayName str Display name in homepage
  • description str Service description for homepage
  • icon str Icon name for homepage (https://dashboardicons.com/Β πŸ‘•)
  • dirs ? Service persistant dirs
  • files ? Service persistant files
  • dbDirs ? Service persistant dirs with database(s)
  • dbFiles ? Service database file(s)
  • varDirs ? Variable secondary files (log, cache, etc.)
  • mediaDirs ? Service media dirs (pictures, videos, big files)
  • manageVirtualHost bool Whether to create nginx virtualHost configuration (false for services that manage their own)
  • defaultVirtualHost bool Default nginx virtualhost
  • proxyPort ? Service internal port
  • extraConfig lines Extra nginx virtualHost configuration
  • locations str Proxy pass URL
  • proxyWebsockets bool Enable WebSocket support
  • extraConfig lines Extra location configuration
darkone.system.service = {
enable = false;
enable = false;
service = "name";
displayOnHomepage = true;
displayName = "name";
description = "name";
icon = "name";
dirs = [ ];
files = [ ];
dbDirs = [ ];
dbFiles = [ ];
varDirs = [ ];
mediaDirs = [ ];
manageVirtualHost = true;
defaultVirtualHost = false;
proxyPort = null;
extraConfig = ;
locations = "";
proxyWebsockets = false;
extraConfig = "";
}

DNF sops, passwords and secrets management

  • enable bool Enable sops automated configuration for DNF
darkone.system.sops.enable = false;

Build users from DNF configuration.

  • enable bool Users common builder (enabled by default)
darkone.user.build.enable = true;

  • enable bool Preconfigured ZED editor
darkone.home.zed.enable = false;