diff --git a/README.md b/README.md index afb18bc..569fe72 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,22 @@ # nixos-configuration The collection of publically visible nixos-configuration files used for my -personal machines. The only file not tracked is `hardware-configuration.nix` -since this is auto-generated when installinp NixOS. +NixOS fleet. -## Overview +## Desktop -System-wide configuration is found in `configuration.nix`. User-specific -configuration is grouped within a top-level directory corresponding to the -user's username (as of now, just `jrpotter`). The top-level `flake.nix` file -links the system and user configurations together. +My personal desktop configuration is reflected in the top-level `desktop` +directory. The only file not tracked is `hardware-configuration.nix` since this +is auto-generated when installing NixOS. + +The system-wide configuration is found in `configuration.nix`. User-specific +configurations are grouped within a directory specific to each user. As of now, +this is just `jrpotter`. The `flake.nix` file links the system and user +configurations together. + +## Remotes + +Remote machines are handled on [DigitalOcean](https://www.digitalocean.com/), +deployed using [colmena](https://github.com/zhaofengli/colmena). The custom +image used by each droplet can be built using the top-level `digital-ocean` +flake. diff --git a/configuration.nix b/desktop/configuration.nix similarity index 100% rename from configuration.nix rename to desktop/configuration.nix diff --git a/flake.lock b/desktop/flake.lock similarity index 100% rename from flake.lock rename to desktop/flake.lock diff --git a/flake.nix b/desktop/flake.nix similarity index 100% rename from flake.nix rename to desktop/flake.nix diff --git a/jrpotter/bash/default.nix b/desktop/jrpotter/bash/default.nix similarity index 100% rename from jrpotter/bash/default.nix rename to desktop/jrpotter/bash/default.nix diff --git a/jrpotter/bash/git-prompt.sh b/desktop/jrpotter/bash/git-prompt.sh similarity index 100% rename from jrpotter/bash/git-prompt.sh rename to desktop/jrpotter/bash/git-prompt.sh diff --git a/jrpotter/default.nix b/desktop/jrpotter/default.nix similarity index 98% rename from jrpotter/default.nix rename to desktop/jrpotter/default.nix index e507dc1..9c959fd 100644 --- a/jrpotter/default.nix +++ b/desktop/jrpotter/default.nix @@ -23,6 +23,7 @@ anki-bin bitwarden bootstrap + colmena firefox gimp mullvad-vpn diff --git a/jrpotter/git.nix b/desktop/jrpotter/git.nix similarity index 100% rename from jrpotter/git.nix rename to desktop/jrpotter/git.nix diff --git a/jrpotter/lang/bash.nix b/desktop/jrpotter/lang/bash.nix similarity index 100% rename from jrpotter/lang/bash.nix rename to desktop/jrpotter/lang/bash.nix diff --git a/jrpotter/lang/c.nix b/desktop/jrpotter/lang/c.nix similarity index 100% rename from jrpotter/lang/c.nix rename to desktop/jrpotter/lang/c.nix diff --git a/jrpotter/lang/elixir.nix b/desktop/jrpotter/lang/elixir.nix similarity index 100% rename from jrpotter/lang/elixir.nix rename to desktop/jrpotter/lang/elixir.nix diff --git a/jrpotter/lang/lean.nix b/desktop/jrpotter/lang/lean.nix similarity index 100% rename from jrpotter/lang/lean.nix rename to desktop/jrpotter/lang/lean.nix diff --git a/jrpotter/lang/lua.nix b/desktop/jrpotter/lang/lua.nix similarity index 100% rename from jrpotter/lang/lua.nix rename to desktop/jrpotter/lang/lua.nix diff --git a/jrpotter/lang/markdown.nix b/desktop/jrpotter/lang/markdown.nix similarity index 100% rename from jrpotter/lang/markdown.nix rename to desktop/jrpotter/lang/markdown.nix diff --git a/jrpotter/lang/nix.nix b/desktop/jrpotter/lang/nix.nix similarity index 100% rename from jrpotter/lang/nix.nix rename to desktop/jrpotter/lang/nix.nix diff --git a/jrpotter/lang/python.nix b/desktop/jrpotter/lang/python.nix similarity index 100% rename from jrpotter/lang/python.nix rename to desktop/jrpotter/lang/python.nix diff --git a/jrpotter/lang/typescript.nix b/desktop/jrpotter/lang/typescript.nix similarity index 100% rename from jrpotter/lang/typescript.nix rename to desktop/jrpotter/lang/typescript.nix diff --git a/jrpotter/neovim/default.nix b/desktop/jrpotter/neovim/default.nix similarity index 100% rename from jrpotter/neovim/default.nix rename to desktop/jrpotter/neovim/default.nix diff --git a/jrpotter/neovim/lua/default.nix b/desktop/jrpotter/neovim/lua/default.nix similarity index 100% rename from jrpotter/neovim/lua/default.nix rename to desktop/jrpotter/neovim/lua/default.nix diff --git a/jrpotter/neovim/lua/init/c.lua b/desktop/jrpotter/neovim/lua/init/c.lua similarity index 100% rename from jrpotter/neovim/lua/init/c.lua rename to desktop/jrpotter/neovim/lua/init/c.lua diff --git a/jrpotter/neovim/lua/init/cmp.lua b/desktop/jrpotter/neovim/lua/init/cmp.lua similarity index 100% rename from jrpotter/neovim/lua/init/cmp.lua rename to desktop/jrpotter/neovim/lua/init/cmp.lua diff --git a/jrpotter/neovim/lua/init/dap.lua b/desktop/jrpotter/neovim/lua/init/dap.lua similarity index 100% rename from jrpotter/neovim/lua/init/dap.lua rename to desktop/jrpotter/neovim/lua/init/dap.lua diff --git a/jrpotter/neovim/lua/init/lsp.lua b/desktop/jrpotter/neovim/lua/init/lsp.lua similarity index 100% rename from jrpotter/neovim/lua/init/lsp.lua rename to desktop/jrpotter/neovim/lua/init/lsp.lua diff --git a/jrpotter/neovim/lua/init/lua.lua b/desktop/jrpotter/neovim/lua/init/lua.lua similarity index 100% rename from jrpotter/neovim/lua/init/lua.lua rename to desktop/jrpotter/neovim/lua/init/lua.lua diff --git a/jrpotter/neovim/lua/init/python.lua b/desktop/jrpotter/neovim/lua/init/python.lua similarity index 100% rename from jrpotter/neovim/lua/init/python.lua rename to desktop/jrpotter/neovim/lua/init/python.lua diff --git a/jrpotter/neovim/lua/init/statusline.lua b/desktop/jrpotter/neovim/lua/init/statusline.lua similarity index 100% rename from jrpotter/neovim/lua/init/statusline.lua rename to desktop/jrpotter/neovim/lua/init/statusline.lua diff --git a/jrpotter/neovim/lua/init/telescope.lua b/desktop/jrpotter/neovim/lua/init/telescope.lua similarity index 100% rename from jrpotter/neovim/lua/init/telescope.lua rename to desktop/jrpotter/neovim/lua/init/telescope.lua diff --git a/jrpotter/neovim/lua/init/treesitter.lua b/desktop/jrpotter/neovim/lua/init/treesitter.lua similarity index 100% rename from jrpotter/neovim/lua/init/treesitter.lua rename to desktop/jrpotter/neovim/lua/init/treesitter.lua diff --git a/jrpotter/neovim/utils.nix b/desktop/jrpotter/neovim/utils.nix similarity index 100% rename from jrpotter/neovim/utils.nix rename to desktop/jrpotter/neovim/utils.nix diff --git a/jrpotter/wezterm/default.nix b/desktop/jrpotter/wezterm/default.nix similarity index 100% rename from jrpotter/wezterm/default.nix rename to desktop/jrpotter/wezterm/default.nix diff --git a/jrpotter/wezterm/wezterm.lua b/desktop/jrpotter/wezterm/wezterm.lua similarity index 100% rename from jrpotter/wezterm/wezterm.lua rename to desktop/jrpotter/wezterm/wezterm.lua diff --git a/digital-ocean/flake.lock b/digital-ocean/flake.lock new file mode 100644 index 0000000..b416269 --- /dev/null +++ b/digital-ocean/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1701802827, + "narHash": "sha256-wTn0lpV75Uv6tU6haEypNsmnJJPb0hpaMIy/4uf5AiQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a804fc878d7ba1558b960b4c64b0903da426ac41", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/digital-ocean/flake.nix b/digital-ocean/flake.nix new file mode 100644 index 0000000..44deab8 --- /dev/null +++ b/digital-ocean/flake.nix @@ -0,0 +1,22 @@ +{ + description = "A NixOS image builder for DigitalOcean."; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; + }; + + outputs = { nixpkgs, ... }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + module = { + imports = [ + "${nixpkgs}/nixos/modules/virtualisation/digital-ocean-image.nix" + ]; + system.stateVersion = "23.11"; + }; + in + { + packages.${system}.default = (pkgs.nixos module).digitalOceanImage; + }; +}