{"id":14967940,"url":"https://github.com/misterio77/nix-config","last_synced_at":"2025-05-15T03:08:08.961Z","repository":{"id":42939154,"uuid":"381217913","full_name":"Misterio77/nix-config","owner":"Misterio77","description":"Personal nixos and home-manager configurations.","archived":false,"fork":false,"pushed_at":"2025-05-09T09:20:58.000Z","size":5440,"stargazers_count":1003,"open_issues_count":14,"forks_count":55,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-05-09T10:22:14.545Z","etag":null,"topics":["dotfiles","nix","nixos"],"latest_commit_sha":null,"homepage":"https://m7.rs/git/nix-config/","language":"Nix","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/Misterio77.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2021-06-29T02:38:30.000Z","updated_at":"2025-05-09T09:21:02.000Z","dependencies_parsed_at":"2023-09-25T00:15:48.652Z","dependency_job_id":"48ff8459-0977-4a5a-9a5b-8a6f1dac50fa","html_url":"https://github.com/Misterio77/nix-config","commit_stats":{"total_commits":2262,"total_committers":5,"mean_commits":452.4,"dds":"0.43943412908930146","last_synced_commit":"63a639736969a15bfef4ef76718e8887ec9b227a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Misterio77%2Fnix-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Misterio77%2Fnix-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Misterio77%2Fnix-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Misterio77%2Fnix-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Misterio77","download_url":"https://codeload.github.com/Misterio77/nix-config/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254264769,"owners_count":22041794,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["dotfiles","nix","nixos"],"created_at":"2024-09-24T13:38:57.413Z","updated_at":"2025-05-15T03:08:03.940Z","avatar_url":"https://github.com/Misterio77.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![built with nix](https://img.shields.io/static/v1?logo=nixos\u0026logoColor=white\u0026label=\u0026message=Built%20with%20Nix\u0026color=41439a)](https://builtwithnix.org)\n[![hydra status](https://img.shields.io/endpoint?url=https://hydra.m7.rs/job/nix-config/main/hosts.atlas/shield)](https://hydra.m7.rs/jobset/nix-config/main#tabs-jobs)\n\n# My NixOS configurations\n\nHere's my NixOS/home-manager config files. Requires [Nix flakes](https://nixos.wiki/wiki/Flakes).\n\nLooking for something simpler to start out with flakes? Try [my starter config repo](https://github.com/Misterio77/nix-starter-config).\n\n**Highlights**:\n\n- Multiple **NixOS configurations**, including **desktop**, **laptop**, **server**\n- **Opt-in persistence** through impermanence + blank snapshotting\n- **Encrypted** single **BTRFS** partition\n- Fully **declarative** **self-hosted** stuff\n- Deployment **secrets** using **sops-nix**\n- **Mesh networked** hosts with **tailscale** and **headscale**\n- Flexible **Home Manager** Configs through **feature flags**\n- Extensively configured wayland environments (**sway** and **hyprland**)\n- **Declarative** **themes** and **wallpapers** with **nix-colors**\n- **Hydra CI/CD server and binary cache** that uses the **desktops as remote builders**\n\n## Structure\n\n- `flake.nix`: Entrypoint for hosts and home configurations. Also exposes a\n  devshell for boostrapping (`nix develop` or `nix-shell`).\n- `lib`: A few lib functions for making my flake cleaner\n- `hosts`: NixOS Configurations, accessible via `nixos-rebuild --flake`.\n  - `common`: Shared configurations consumed by the machine-specific ones.\n    - `global`: Configurations that are globally applied to all my machines.\n    - `optional`: Opt-in configurations my machines can use.\n  - `atlas`: Desktop PC - 32GB RAM, R5 3600x, RX 5700XT | Hyprland\n  - `pleione`: Lenovo Ideapad 3 - 8GB RAM, R7 5700u | Hyprland\n  - `merope`: Raspberry Pi 4 - 8GB RAM | Server\n  - `celaeno`: Oracle Could VPS (Ampere) - 24GB RAM \u0026 4vCPUs | Server\n  - `alcyone`: Vultr VPS - 1GB RAM \u0026 1 vCPU | Server\n- `home`: My Home-manager configuration, acessible via `home-manager --flake`\n    - Each directory here is a \"feature\" each hm configuration can toggle, thus\n      customizing my setup for each machine (be it a server, desktop, laptop,\n      anything really).\n- `modules`: A few actual modules (with options) I haven't upstreamed yet.\n- `overlay`: Patches and version overrides for some packages. Accessible via\n  `nix build`.\n- `pkgs`: My custom packages. Also accessible via `nix build`. You can compose\n  these into your own configuration by using my flake's overlay, or consume them through NUR.\n- `templates`: A couple project templates for different languages. Accessible\n  via `nix init`.\n\n\n## About the installation\n\nAll my computers use a single btrfs (encrypted on all except headless systems)\npartition, with subvolumes for `/nix`, a `/persist` directory (which I opt in\nusing `impermanence`), swap file, and a root subvolume (cleared on every boot).\n\nHome-manager is used in a standalone way, and because of opt-in persistence is\nactivated on every boot with `loginShellInit`.\n\n\n## How to bootstrap\n\nAll you need is nix (any version). Run:\n```\nnix-shell\n```\n\nIf you already have nix 2.4+, git, and have already enabled `flakes` and\n`nix-command`, you can also use the non-legacy command:\n```\nnix develop\n```\n\n`nixos-rebuild --flake .` To build system configurations\n\n`home-manager --flake .` To build user configurations\n\n`nix build` (or shell or run) To build and use packages\n\n`sops` To manage secrets\n\n\n## Secrets\n\nFor deployment secrets (such as user passwords and server service secrets), I'm\nusing the awesome [`sops-nix`](https://github.com/Mic92/sops-nix). All secrets\nare encrypted with my personal PGP key (stored on a YubiKey), as well as the\nrelevant systems's SSH host keys.\n\nOn my desktop and laptop, I use `pass` for managing passwords, which are\nencrypted using (you bet) my PGP key. This same key is also used for mail\nsigning, as well as for SSH'ing around.\n\n## Tooling and applications I use\n\nMost relevant user apps daily drivers:\n\n- hyprland + swayidle + swaylock\n- waybar\n- helix\n- fish\n- alacritty\n- qutebrowser\n- neomutt + mbsync\n- khal + khard + todoman + vdirsyncer\n- gpg + pass\n- tailscale\n- podman\n- zathura\n- wofi\n- bat + fd + rg\n- kdeconnect\n- sublime-music\n\nSome of the services I host:\n\n- hydra\n- navidrome\n- deluge\n- prometheus\n- websites (such as https://m7.rs)\n- minecraft\n- headscale\n\nNixy stuff:\n\n- nix-colors\n- sops-nix\n- impermanence\n- home-manager\n- deploy-rs\n- and NixOS and nix itself, of course :)\n\nLet me know if you have any questions about them :)\n\n## Unixpornish stuff\n![fakebusy](https://i.imgur.com/PZ4L7TR.png)\n![clean](https://i.imgur.com/T5FjqbZ.jpg)\n\nThat's how my hyprland desktop setup look like (as of 2022 July).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisterio77%2Fnix-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmisterio77%2Fnix-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisterio77%2Fnix-config/lists"}