From 51c36009ae086f85af8fe056aad4927837868963 Mon Sep 17 00:00:00 2001 From: Joshua Potter Date: Thu, 7 Dec 2023 13:12:58 -0700 Subject: [PATCH] Nest desktop configuration and include digital-ocean base image. --- README.md | 24 ++++++++++++----- .../configuration.nix | 0 flake.lock => desktop/flake.lock | 0 flake.nix => desktop/flake.nix | 0 .../jrpotter}/bash/default.nix | 0 .../jrpotter}/bash/git-prompt.sh | 0 {jrpotter => desktop/jrpotter}/default.nix | 1 + {jrpotter => desktop/jrpotter}/git.nix | 0 {jrpotter => desktop/jrpotter}/lang/bash.nix | 0 {jrpotter => desktop/jrpotter}/lang/c.nix | 0 .../jrpotter}/lang/elixir.nix | 0 {jrpotter => desktop/jrpotter}/lang/lean.nix | 0 {jrpotter => desktop/jrpotter}/lang/lua.nix | 0 .../jrpotter}/lang/markdown.nix | 0 {jrpotter => desktop/jrpotter}/lang/nix.nix | 0 .../jrpotter}/lang/python.nix | 0 .../jrpotter}/lang/typescript.nix | 0 .../jrpotter}/neovim/default.nix | 0 .../jrpotter}/neovim/lua/default.nix | 0 .../jrpotter}/neovim/lua/init/c.lua | 0 .../jrpotter}/neovim/lua/init/cmp.lua | 0 .../jrpotter}/neovim/lua/init/dap.lua | 0 .../jrpotter}/neovim/lua/init/lsp.lua | 0 .../jrpotter}/neovim/lua/init/lua.lua | 0 .../jrpotter}/neovim/lua/init/python.lua | 0 .../jrpotter}/neovim/lua/init/statusline.lua | 0 .../jrpotter}/neovim/lua/init/telescope.lua | 0 .../jrpotter}/neovim/lua/init/treesitter.lua | 0 .../jrpotter}/neovim/utils.nix | 0 .../jrpotter}/wezterm/default.nix | 0 .../jrpotter}/wezterm/wezterm.lua | 0 digital-ocean/flake.lock | 27 +++++++++++++++++++ digital-ocean/flake.nix | 22 +++++++++++++++ 33 files changed, 67 insertions(+), 7 deletions(-) rename configuration.nix => desktop/configuration.nix (100%) rename flake.lock => desktop/flake.lock (100%) rename flake.nix => desktop/flake.nix (100%) rename {jrpotter => desktop/jrpotter}/bash/default.nix (100%) rename {jrpotter => desktop/jrpotter}/bash/git-prompt.sh (100%) rename {jrpotter => desktop/jrpotter}/default.nix (98%) rename {jrpotter => desktop/jrpotter}/git.nix (100%) rename {jrpotter => desktop/jrpotter}/lang/bash.nix (100%) rename {jrpotter => desktop/jrpotter}/lang/c.nix (100%) rename {jrpotter => desktop/jrpotter}/lang/elixir.nix (100%) rename {jrpotter => desktop/jrpotter}/lang/lean.nix (100%) rename {jrpotter => desktop/jrpotter}/lang/lua.nix (100%) rename {jrpotter => desktop/jrpotter}/lang/markdown.nix (100%) rename {jrpotter => desktop/jrpotter}/lang/nix.nix (100%) rename {jrpotter => desktop/jrpotter}/lang/python.nix (100%) rename {jrpotter => desktop/jrpotter}/lang/typescript.nix (100%) rename {jrpotter => desktop/jrpotter}/neovim/default.nix (100%) rename {jrpotter => desktop/jrpotter}/neovim/lua/default.nix (100%) rename {jrpotter => desktop/jrpotter}/neovim/lua/init/c.lua (100%) rename {jrpotter => desktop/jrpotter}/neovim/lua/init/cmp.lua (100%) rename {jrpotter => desktop/jrpotter}/neovim/lua/init/dap.lua (100%) rename {jrpotter => desktop/jrpotter}/neovim/lua/init/lsp.lua (100%) rename {jrpotter => desktop/jrpotter}/neovim/lua/init/lua.lua (100%) rename {jrpotter => desktop/jrpotter}/neovim/lua/init/python.lua (100%) rename {jrpotter => desktop/jrpotter}/neovim/lua/init/statusline.lua (100%) rename {jrpotter => desktop/jrpotter}/neovim/lua/init/telescope.lua (100%) rename {jrpotter => desktop/jrpotter}/neovim/lua/init/treesitter.lua (100%) rename {jrpotter => desktop/jrpotter}/neovim/utils.nix (100%) rename {jrpotter => desktop/jrpotter}/wezterm/default.nix (100%) rename {jrpotter => desktop/jrpotter}/wezterm/wezterm.lua (100%) create mode 100644 digital-ocean/flake.lock create mode 100644 digital-ocean/flake.nix 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; + }; +}