Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/billimek/dotfiles
Leveraging nix, nix-os, nix-darwin, and home-manager to apply machine and home configurations
https://github.com/billimek/dotfiles
dotfiles fish-shell home-manager nix nix-darwin nixos
Last synced: 3 months ago
JSON representation
Leveraging nix, nix-os, nix-darwin, and home-manager to apply machine and home configurations
- Host: GitHub
- URL: https://github.com/billimek/dotfiles
- Owner: billimek
- License: apache-2.0
- Created: 2018-12-08T06:42:47.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-13T06:07:41.000Z (10 months ago)
- Last Synced: 2024-04-14T02:44:14.584Z (10 months ago)
- Topics: dotfiles, fish-shell, home-manager, nix, nix-darwin, nixos
- Language: Nix
- Homepage:
- Size: 931 KB
- Stars: 21
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Leveraging nix, nix-os, nix-darwin, and home-manager to apply machine and home configurations
![](https://imgur.com/ISNnzgN.png)
## Structure
- [flake.nix](flake.nix) (Entrypoint for rebuilding via nixos-rebuild or home-manager)
- [flake.lock](flake.lock) (lockfile for current nix flake state, updated daily via [github action](.github/workflows/main.yml))
- [home-manager](home-manager) (User level configuration per machine via home-manager)
- [hosts](hosts/README.md) - (Definition of physical/virutal hosts)
- [common](hosts/common) (Role definitions [Desktop, Laptop, Server])
- [darwin](hosts/common/darwin) (global host configuration used across all darwin hosts)
- [nixos](hosts/common/nixos) (global host configuration used across all NixOS hosts)
- [optional](hosts/common/optional) (optional host configuration used as-needed per host)
- [nas](hosts/nas/README.md) (NixOS NAS server)
- [home](hosts/home/README.md) (NixOS VM running in NAS)
- [cloud](hosts/cloud/README.md) (NixOS VM running in Oracle Cloud)
- [k3s-f](hosts/k3s-f/README.md) (NixOS running on an N100 tiny PC as a k3s node)
- [k3s-g](hosts/k3s-g/README.md) (NixOS running on an N100 tiny PC as a k3s node)
- [k3s-h](hosts/k3s-h/README.md) (NixOS running on an N100 tiny PC as a k3s node)
- [jeffs_laptop](hosts/jeffs_laptop/README.md) (nix-darwin running on a MacBook Pro)
- [work_laptop](hosts/work_laptop/README.md) (nix-darwin running on a MacBook Pro)
- [modules](modules) (Custom NixOS and home-manager modules)
- [overlays](overlays) (Custom overlays, primarily used for packages currently)
- [pkgs](pkgs) (Custom Packages, mainly items not yet in official nixpkgs)
- [shell.nix](shell.nix) (Shell for bootstrapping flake-enabled nix and home-manager)
- [nixpkgs.nix](nixpkgs.nix) (Used by shell.nix - useful to avoid using channels when using legacy nix commands)## Background
Everyone keeps gushing about how amazing Nix is and I want to get in on the hype cycle
## Goals
- [x] Learn nix
- [x] Mostly reproduce features from my existing [dotfiles](https://github.com/billimek/dotfiles)
- [x] Replace existing ubunut-based 'home VM'
- [x] Expand usage to other shell environments such as WSL, Macbook, etc
- [x] handle secrets - ideally using 1Password and not SOPS - using git-crypt for now
- [x] try agenix for secrets handling
- [ ] introduce the concept of [impermanence](https://github.com/nix-community/impermanence) where appropriate## References
- [Misterio77/nix-starter-config](https://github.com/Misterio77/nix-starter-configs)
- [How to learn Nix](https://ianthehenry.com/posts/how-to-learn-nix/)
- [home-manager](https://github.com/nix-community/home-manager)
- [Zero to Nix: Everything I Know About Nix & NixOS](https://chetanbhasin.com/articles/zero-to-nix-everything-i-know-about-nix-nixos)
- [Walkthrough of Nix Install and Setup on MacOS (YouTube)](https://www.youtube.com/watch?v=LE5JR4JcvMg)
- [NixOS as a server, part 1: Impermanence](https://guekka.github.io/nixos-server-1/)
- [budimanjojo/dotfiles](https://github.com/budimanjojo/dotfiles/tree/master/nixos)
- [wrmilling/nixos-configuration](https://github.com/wrmilling/nixos-configuration)
- [gshpychka/dotfiles-nix](https://github.com/gshpychka/dotfiles-nix)
- [wimpysworld/nix-config](https://github.com/wimpysworld/nix-config)## Old Dotfiles
Old dotfiles are still accessible in [archive branch](https://github.com/billimek/dotfiles/tree/archive)