Modules
Mixin modules
Section titled βMixin modulesβπ¦ darkone.host.desktop
Section titled βπ¦ darkone.host.desktopβA full desktop configuration with gnome, multimedia and office tools.
- enable
boolDesktop optimized host configuration
darkone.host.desktop.enable = false;π¦ darkone.host.gateway
Section titled βπ¦ darkone.host.gatewayβThe main gateway / router of local network.
- enable
boolEnable gateway features for the current host (dhcp, dns, proxy, etc.) - enableFail2ban
boolEnable fail2ban service - enableAdguardhome
boolEnable pre-configured Aguard Home service - enableNcps
boolEnable the proxy cache for packages - enableLldap
boolEnable 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;}π¦ darkone.host.laptop
Section titled βπ¦ darkone.host.laptopβDesktop config + laptop specific tools & configuration.
- enable
boolLaptop optimized host configuration
darkone.host.laptop.enable = false;π¦ darkone.host.minimal
Section titled βπ¦ darkone.host.minimalβEvery host configuration is based on this minimal config.
- enable
boolMinimal host configuration - secure
boolPrefer more secure options (disable mutable usersβ¦) - enableHomepage
boolEnable the auto-configured homepage service - enableForgejo
boolEnable pre-configured forgejo git forge service - enableImmich
boolEnable pre-configured immich service - enableNextcloud
boolEnable pre-configured nextcloud service - enableNetdata
boolEnable pre-configured Netdata service - enableMonitoring
boolEnable pre-configured monitoring service (prometheus, grafana) - enableVaultwarden
boolEnable 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;}π¦ darkone.host.portable
Section titled βπ¦ darkone.host.portableβPortable configuration for a bootable USB drive containing a NixOS machine from the local network.
- enable
boolPortable host configuration for usb keys
darkone.host.portable.enable = false;π¦ darkone.host.server
Section titled βπ¦ darkone.host.serverβImproved configuration for servers (minimal, no sleep, watchdogβ¦).
- enable
boolServer host minimal configuration - enableWatchdog
boolEnable systemd watchdog
darkone.host.server = { enable = false; enableWatchdog = true;}π¦ darkone.host.vm
Section titled βπ¦ darkone.host.vmβVirtual machines guest tools.
- enableVirtualbox
boolVirtualbox client - enableXen
boolXen client
darkone.host.vm = { enableVirtualbox = false; enableXen = false;}π¦ darkone.profile.advanced
Section titled βπ¦ darkone.profile.advancedβProfile for advanced users (computer scientists, developers, admins).
- enable
boolAdvanced user (admin sys, developper)
darkone.profile.advanced.enable = false;π¦ darkone.profile.children
Section titled βπ¦ darkone.profile.childrenβFeatures for childs and babies.
- enable
boolChildren softwares
darkone.profile.children.enable = false;π¦ darkone.profile.office
Section titled βπ¦ darkone.profile.officeβGraphic environment with office softwares.
- enable
boolGraphic environment with office softwares
darkone.profile.office.enable = false;π¦ darkone.profile.teenager
Section titled βπ¦ darkone.profile.teenagerβFeatures for teenagers.
- enable
boolTeenager softwares
darkone.profile.teenager.enable = false;Standard modules
Section titled βStandard modulesβπ darkone.admin.nix
Section titled βπ darkone.admin.nixβNixOS configuration for the local LAN administrator computer.
- enable
boolEnable NIX configuration builder tools - enableNh
boolEnable nix helper (nh) management tool
darkone.admin.nix = { enable = false; enableNh = false;}π darkone.console.git
Section titled βπ darkone.console.gitβA pre-configured git environment.
- enable
boolPre-configured git environment
darkone.console.git.enable = false;π darkone.console.packages
Section titled βπ darkone.console.packagesβSome useful console only softwares.
- enable
boolVim, less, zip, unzip, tree, wget⦠- enableAdditional
boolFindutils, fzf, git, htop, neofetch, rangerβ¦
darkone.console.packages = { enable = false; enableAdditional = false;}π darkone.console.pandoc
Section titled βπ darkone.console.pandocβPandoc with texlive and exiftool utils + gentium fonts.
- enable
boolPre-configured pandoc environment
darkone.console.pandoc.enable = false;π darkone.console.zsh
Section titled βπ darkone.console.zshβA full zsh installation with aliases, bindkeys and optimized prompt.
- enable
boolZSH environment - enableForRoot
boolRoot home manager ZSH configuration
darkone.console.zsh = { enable = false; enableForRoot = false;}π darkone.graphic.education
Section titled βπ darkone.graphic.educationβGraphical education packages.
- enable
boolDefault useful packages - enableBaby
boolSoftware for babies (<=6 yo) - enableChildren
boolSoftware for children (6-12 yo) - enableTeenager
boolSoftware for teenagers and adults (>=12 yo)
darkone.graphic.education = { enable = false; enableBaby = false; enableChildren = false; enableTeenager = false;}π darkone.graphic.games
Section titled βπ darkone.graphic.gamesβSeveral graphical game packages.
- enable
boolEnable game packages (please select age group) - enableBaby
boolGames for babies (<=6 yo) - enableChildren
boolGames for children (6-12 yo) - enableTeenager
boolGames for teenagers and adults (>=12 yo)
darkone.graphic.games = { enable = false; enableBaby = false; enableChildren = false; enableTeenager = false;}π darkone.graphic.gnome
Section titled βπ darkone.graphic.gnomeβPre-configured gnome environment with dependences.
- enable
boolPre-configured gnome WM - enableDashToDock
boolDash to dock plugin - enableLightDM
boolEnable LightDM instead of GDM - enableCaffeine
boolDisable auto-suspend - enableGsConnect
boolCommunication with devices - enableSuspend
boolEnable suspend, sleep, hybernate features (usefull for laptops) - enableMoreGnomeApps
boolMore gnome apps for regular users (music, calendar, maps, contactsβ¦) - enableTechnicalFeatures
boolGnome apps for techniciens (binary, collision, apostropheβ¦) - enableGames
boolEnable gnome games - xkbVariant
strKeyboard 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 = "";}π darkone.graphic.imagery
Section titled βπ darkone.graphic.imageryβImage processing softwares (gimp, geeqie, pinta + blender, inkscape, kritaβ¦).
- enable
boolImagery creation - enablePro
boolAdditional image processing software for professionals
darkone.graphic.imagery = { enable = false; enablePro = false;}π darkone.graphic.music
Section titled βπ darkone.graphic.musicβMusic creation packages and modules.
- enable
boolMusic creation module - enablePro
boolMusic creation softwares for pros (wip)
darkone.graphic.music = { enable = false; enablePro = false;}π darkone.graphic.obsidian
Section titled βπ darkone.graphic.obsidianβPreconfigured obsidian installation.
- enable
boolDefault useful packages
darkone.graphic.obsidian.enable = false;π darkone.graphic.office
Section titled βπ darkone.graphic.officeβCommon tools for office desktop.
- enable
boolDefault useful packages - enableLibreOffice
boolOffice packages (libreoffice) - enableInternet
boolInternet packages (firefox) - enableEmail
boolEmail management packages (thunderbird)
darkone.graphic.office = { enable = false; enableLibreOffice = true; enableInternet = true; enableEmail = true;}π darkone.graphic.video
Section titled βπ darkone.graphic.videoβVideo creation tools.
- enable
boolVideo creation (kdenliveβ¦) - enablePro
boolVideo softwares for professionals
darkone.graphic.video = { enable = false; enablePro = false;}π darkone.graphic.virt-manager
Section titled βπ darkone.graphic.virt-managerβVirt manager + viewer with spice, win-virtio and ovmf.
- enable
boolVirt manager with dependencies
darkone.graphic.virt-manager.enable = false;π darkone.graphic.virtualbox
Section titled βπ darkone.graphic.virtualboxβVirtualbox host installation.
- enable
boolPre-configured virtualbox installation - enableExtensionPack
boolEnable extension pack (causes recompilations)
darkone.graphic.virtualbox = { enable = false; enableExtensionPack = false;}π darkone.service.adguardhome
Section titled βπ darkone.service.adguardhomeβFull-configured AdGuard Home for local gateway / router.
- enable
boolEnable local adguardhome service - domainName
strDomain name for Adguard Home, registered in nginx & hosts
darkone.service.adguardhome = { enable = false; domainName = "adguardhome";}π darkone.service.audio
Section titled βπ darkone.service.audioβAudio services: alsa, pulse (not jack for the moment).
- enable
boolEnable sound system
darkone.service.audio.enable = false;π darkone.service.dnsmasq
Section titled βπ darkone.service.dnsmasqβPre-configured dnsmasq for local gateway / router.
- enable
boolEnable local dnsmasq service
darkone.service.dnsmasq.enable = false;π darkone.service.forgejo
Section titled βπ darkone.service.forgejoβA full-configured forgejo git forge.
- enable
boolEnable local forgejo service - domainName
strDomain name for the forge, registered in forgejo, nginx & hosts - appName
strDefault title for the local GIT forge
darkone.service.forgejo = { enable = false; domainName = "forgejo"; appName = "The local forge";}π darkone.service.home-assistant
Section titled βπ darkone.service.home-assistantβA Home Assistant with some plugins (wip).
- enable
boolEnable home assitant
darkone.service.home-assistant.enable = false;π darkone.service.homepage
Section titled βπ darkone.service.homepageβDynamically configured homepage dashboard for your local network.
- enable
boolEnable homepage dashboard + nginx + host - domainName
strDomain 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 = [ ];}π darkone.service.httpd
Section titled βπ darkone.service.httpdβNginx httpd simple server with PHP84 (WIP)
- enable
boolEnable httpd (nginx) - enableUserDir
boolEnable user dir configuration - enablePhp
boolEnable PHP 8.4 with useful modules - enableVarWww
boolEnable http root on /var/www
darkone.service.httpd = { enable = false; enableUserDir = false; enablePhp = false; enableVarWww = false;}π darkone.service.immich
Section titled βπ darkone.service.immichβImmich (photo management) full-configured service.
- enable
boolEnable local immich service - domainName
strDomain name for immich, registered in nginx & hosts - enableMachineLearning
boolEnable machine learning features (face recognition, object detection) - enableRedis
boolEnable Redis for caching (recommended for performance)
darkone.service.immich = { enable = false; domainName = "immich"; enableMachineLearning = false; enableRedis = false;}π darkone.service.lldap
Section titled βπ darkone.service.lldapβPre-configured lldap configuration for users and groups (wip).
- enable
boolEnable local lldap service - openLdapPort
boolOpen the lldap port (default is 3890) - domainName
strDomain name for lldap, registered in forgejo, nginx & hosts
darkone.service.lldap = { enable = false; openLdapPort = false; domainName = "users";}π darkone.service.monitoring
Section titled βπ darkone.service.monitoringβSupervision module with prometheus, grafana and node exporter.
- enable
boolEnable monitoring with prometheus, grafana and node exporter - domainName
strDomain name for monitoring, registered in nginx & hosts - retentionTime
strDurΓ©e de rΓ©tention des mΓ©triques Prometheus
darkone.service.monitoring = { enable = false; domainName = "monitoring"; retentionTime = "15d";}π darkone.service.ncps
Section titled βπ darkone.service.ncpsβNix cache proxy with NCPS module.
- enable
boolEnable nix cache proxy for packages - isClient
boolOnly enable client configuration - dataPath
strNix cache proxy cache folder - extraOptions
attrsservices.ncps extra options
darkone.service.ncps = { enable = false; isClient = false; dataPath = "/var/cache/ncps"; extraOptions = { };}π darkone.service.netdata
Section titled βπ darkone.service.netdataβNetdata supervision module.
- enable
boolEnable netdata application - domainName
strDomain name for netdata, registered in nginx & hosts
darkone.service.netdata = { enable = false; domainName = "netdata";}π darkone.service.nextcloud
Section titled βπ darkone.service.nextcloudβNextcloud full-configured service.
- enable
boolEnable local nextcloud service - domainName
strDomain name for nextcloud, registered in nextcloud, nginx & hosts - adminUser
strAdmin username for Nextcloud - adminPassword
strAdmin password for Nextcloud (change this!)
darkone.service.nextcloud = { enable = false; domainName = "nextcloud"; adminUser = "admin"; adminPassword = "changeme";}π darkone.service.printing
Section titled βπ darkone.service.printingβPrinters and scanners.
- enable
boolDefault useful packages - loadAll
boolFull printers and scanners - enableScanners
boolEnable scanners - enableHpPrinters
boolHP printers - enableManualInstall
boolManual installation
darkone.service.printing = { enable = false; loadAll = true; enableScanners = true; enableHpPrinters = true; enableManualInstall = true;}π darkone.service.vaultwarden
Section titled βπ darkone.service.vaultwardenβA full-configured vaultwarden server (wip).
- enable
boolEnable local Vaultwarden service - domainName
strDomain name for the Vaultwarden service - appName
strDefault title for Vaultwarden server
darkone.service.vaultwarden = { enable = false; domainName = "vaultwarden"; appName = "Unofficial Bitwarden compatible server";}π darkone.system.core
Section titled βπ darkone.system.coreβThe core DNF module.
- enable
boolDarkone framework core system (activated by default) - enableSystemdBoot
boolEnable the default boot loader - enableFstrim
boolSSD optimisation with fstrim - enableFirewall
boolEnable firewall (default true) - enableSops
boolEnable sops dnf module (default true) - enableGatewayClient
boolConfiguration optimized for local gateway (ncps clientβ¦) - enableBoost
boolEnable overclocking, corectl - enableKmscon
boolEnable nerd font for TTY
darkone.system.core = { enable = true; enableSystemdBoot = true; enableFstrim = true; enableFirewall = true; enableSops = true; enableGatewayClient = true; enableBoost = false; enableKmscon = false;}π darkone.system.documentation
Section titled βπ darkone.system.documentationβDocumentation (man) for developers and admins.
- enable
boolEnable useful technical documentation (man, nixos)
darkone.system.documentation.enable = false;π darkone.system.hardware
Section titled βπ darkone.system.hardwareβHardware configuration improvements.
- enable
boolEnable hardware optimisations - enableIntel
boolEnable intel microcode updates - enableAmd
boolEnable amd microcode updates
darkone.system.hardware = { enable = false; enableIntel = false; enableAmd = false;}π darkone.system.i18n
Section titled βπ darkone.system.i18nβLocation and lang configuration.
- enable
boolEnable i18n with network configuration by default - locale
strNetwork locale - timeZone
strNetwork time zone
darkone.system.i18n = { enable = false; locale = "fr_FR.UTF-8"; timeZone = "Europe/Paris";}π darkone.system.service
Section titled βπ darkone.system.serviceβDNF Service registration and configuration.
- enable
boolEnable DNF service manager to register a new service - enable
boolEnable service proxy - service
strDomain name for the service - displayOnHomepage
boolDisplay a link on homepage - displayName
strDisplay name in homepage - description
strService description for homepage - icon
strIcon 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
boolWhether to create nginx virtualHost configuration (false for services that manage their own) - defaultVirtualHost
boolDefault nginx virtualhost - proxyPort
?Service internal port - extraConfig
linesExtra nginx virtualHost configuration - locations
strProxy pass URL - proxyWebsockets
boolEnable WebSocket support - extraConfig
linesExtra 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 = "";}π darkone.system.sops
Section titled βπ darkone.system.sopsβDNF sops, passwords and secrets management
- enable
boolEnable sops automated configuration for DNF
darkone.system.sops.enable = false;π darkone.user.build
Section titled βπ darkone.user.buildβBuild users from DNF configuration.
- enable
boolUsers common builder (enabled by default)
darkone.user.build.enable = true;Home Manager modules
Section titled βHome Manager modulesβπ darkone.home.zed
Section titled βπ darkone.home.zedβ- enable
boolPreconfigured ZED editor
darkone.home.zed.enable = false;