{"id":16005138,"url":"https://github.com/eld/nix-system","last_synced_at":"2026-03-07T17:03:06.810Z","repository":{"id":39580368,"uuid":"425627123","full_name":"ELD/nix-system","owner":"ELD","description":"Nix system configuration for NixOS/Linux and macOS","archived":false,"fork":false,"pushed_at":"2024-10-29T18:44:31.000Z","size":884,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-29T20:41:29.782Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ELD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-07T22:06:03.000Z","updated_at":"2024-10-29T18:44:34.000Z","dependencies_parsed_at":"2023-10-12T18:09:18.076Z","dependency_job_id":"c4b1fad0-29b0-4c68-a92a-3e7d4e88dfa9","html_url":"https://github.com/ELD/nix-system","commit_stats":{"total_commits":556,"total_committers":7,"mean_commits":79.42857142857143,"dds":0.5179856115107914,"last_synced_commit":"fdb0aca63ca8b0abe1cae6c0e66319af64c789c0"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ELD/nix-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELD%2Fnix-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELD%2Fnix-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELD%2Fnix-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELD%2Fnix-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ELD","download_url":"https://codeload.github.com/ELD/nix-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELD%2Fnix-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30222395,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T17:00:40.062Z","status":"ssl_error","status_checked_at":"2026-03-07T17:00:39.026Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-08T11:02:23.813Z","updated_at":"2026-03-07T17:03:06.788Z","avatar_url":"https://github.com/ELD.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nix System Configuration\n\n[![CircleCI](https://circleci.com/gh/ELD/nix-system/tree/main.svg?style=svg)](https://circleci.com/gh/ELD/nix-system/?branch=main)\n\n_Note: This repository is a manual fork of [kclejeune/system](https://github.com/kclejeune/system) that I've heavily modified.\nBecause it's a manual fork, rebasing is often done by overlaying commits from upstream onto this repo. Many thanks and attribution\nto kclejeune for the original work and helping me get going with Nix, Flakes, and managing a system configuration declaratively._\n\nThis repository manages system configurations for all of my\nmacOS, nixOS, and linux machines.\n\n## Structure\n\nThis repository is a [flake](https://nixos.wiki/wiki/Flakes). All system configurations are defined\nin [flake.nix](./flake.nix). Platorm specific configurations are found defined in the flake outputs\n`darwinConfigurations`, `nixosConfigurations` for macOS and NixOS respectively.\n\n### Overlapping Nix-Darwin and NixOS\n\nNix-Darwin and NixOS configurations share as much overlap as possible in the common module, [./modules/common.nix](./modules/common.nix).\nPlatform specific modules add onto the common module in [./modules/darwin/default.nix](./modules/darwin/default.nix) and [./modules/nixos/default.nix](./modules/nixos/default.nix) for macOS and NixOS respectively.\n\n### Decoupled Home Manager Configuration\n\nMy home-manager configuration is entirely decoupled from NixOS and nix-darwin configurations.\nThis means that all of its modules are found in [./modules/home-manager](./modules/home-manager).\nThese modules are imported into all other configurations in the common module similarly to this:\n\n```nix\n{ config, pkgs, ... }: {\n  home-manager.users.edattore = import ./home-manager/home.nix;\n}\n```\n\nThis means that [home.nix](./modules/home-manager/home.nix) is fully compatible as a standalone configuration, managed with the `home-manager` CLI.\nThis allows close replication of any user config for any linux system running nix. These configurations are defined in the `homeConfigurations` output.\n\n### User Customization\n\nUser \"profiles\" are specified in [./profiles](./profiles); these modules configure\ncontextual, identity-specific settings such as SSL certificates or work vs. personal email addresses.\nWhen possible, home-manager functionality is extracted into [./profiles/home-manager](./profiles/home-manager), as mentioned previously\n\n## Installing a Configuration\n\n### Non-NixOS Prerequisite: Install Nix Package Manager\n\nRun the installer script to perform a multi-user installation on darwin or linux:\n\n```bash\nsh \u003c(curl -L https://nixos.org/nix/install) --daemon\necho \"experimental-features = nix-command flakes\" | sudo tee -a /etc/nix/nix.conf\n```\n\nNote that this step is naturally skipped on NixOS since `nix` is the package manager by default.\n\n## System Bootstrapping\n\n### NixOS\n\nFollow the installation instructions, then run\n\n```bash\nsudo nixos-install --flake github:ELD/nix-system#indium\n```\n\n### Darwin/Linux\n\nClone this repository into `~/.nixpkgs` with\n\n```bash\ngit clone https://github.com/ELD/nix-system ~/.nixpkgs\n```\n\nYou can bootstrap a new nix-darwin system using\n\n```bash\nnix --extra-experimental-features \"nix-command flakes\" run github:ELD/nix-system#sysdo -- bootstrap --darwin\n```\n\nor a home-manager configuration using\n\n```bash\nnix --extra-experimental-features \"nix-command flakes\" develop -c sysdo bootstrap --home-manager\n```\n\n## `sysdo` CLI\n\nThe `sysdo` utility is a python script that wraps `nix`, `darwin-rebuild`, `nixos-rebuild`,\nand `home-manager` commands to provide a consistent interface across multiple platforms. It has some dependencies which are defined in the `devShell`\nflake output. Documentation for this tool is found in [sysdo.md](./docs/sysdo.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feld%2Fnix-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feld%2Fnix-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feld%2Fnix-system/lists"}