diff --git a/README.adoc b/README.adoc index 5b6a1090..3a6e94cd 100644 --- a/README.adoc +++ b/README.adoc @@ -87,7 +87,7 @@ While possible with channels, this is just better experience overall and I have You can see the full details with `nix flake show`. As a helpful summary, here's what my flake should contain sorting from the most interesting and helpful outputs to the most boring and unnecessary. -* `packages` contains link:./pkgs[my custom packages]. +* `packages` contains link:./pkgs[my custom packages] and some of usual images of several hosts which is nice for easily fetching custom images. * `overlays` contains the overlay for extending nixpkgs with my packages. If you want to use my packages alongside the nixpkgs attribute then this is what you're looking for. diff --git a/hosts/bootstrap/README.adoc b/hosts/bootstrap/README.adoc index 6b853b0b..72ec8e3d 100644 --- a/hosts/bootstrap/README.adoc +++ b/hosts/bootstrap/README.adoc @@ -13,4 +13,11 @@ To make use of this, you can generate an ISO through link:https://github.com/nix nix run github:nix-community/nixos-generators -- --flake .#bootstrap --format iso --out-link result ---- +Though, you could also easily build one with `packages.bootstrap-install-iso` from the flake output. + +[source, shell] +---- +nix build $FLAKE#bootstrap-install-iso +---- + With the ISO built, you can now use it for yourself for whatever reason. diff --git a/hosts/graphical-installer/README.adoc b/hosts/graphical-installer/README.adoc index a2996de5..7cb1f9e6 100644 --- a/hosts/graphical-installer/README.adoc +++ b/hosts/graphical-installer/README.adoc @@ -12,4 +12,11 @@ To make use of this, you can generate an ISO through link:https://github.com/nix nix run github:nix-community/nixos-generators -- --flake .#graphical-installer --format iso --out-link result ---- +You could also get the ISO by getting the `packages.graphical-installer-install-iso` from the flake output. + +[source, shell] +---- +nix build $FLAKE#graphical-installer-install-iso +---- + With the ISO built, you can now use it for yourself for whatever reason. diff --git a/hosts/ni/README.adoc b/hosts/ni/README.adoc index de9b69dd..5ba915a3 100644 --- a/hosts/ni/README.adoc +++ b/hosts/ni/README.adoc @@ -2,12 +2,7 @@ :toc: My desktop workstation. -I was about to have two computers but my desktop is broken ever since. -Whoops! - -I try to be minimal with my dependencies unlike last time. -`direnv`, `lorri`, and Flatpak are mostly enough for desktop needs. -(Which is Fedora Silverblue is good at! :)) +Pretty nice, pretty handy, it is your basic desktop NixOS installation. I know partitioning is not your favorite part so here's one way to prepare the laptop with this config. diff --git a/hosts/plover/README.adoc b/hosts/plover/README.adoc index 3d09026a..48c08525 100644 --- a/hosts/plover/README.adoc +++ b/hosts/plover/README.adoc @@ -16,3 +16,39 @@ Some of the self-hosted services from this server: * An nginx server which will make tie all of the self-hosted services together. * A link:https://github.com/dani-garcia/vaultwarden[Vaultwarden] instance for a little password management. * A link:https://gitea.io/[Gitea] instance for my personal projects. + + + + +== Deploying it as a Google Compute instance + +Some documented guidelines to deploy this instance in Google Cloud Platform (GCP) so you won't have to re-read those documentation like a stuck rat the next time you visit them. + +* A GCP Compute Instance image of the configuration is available to be stored at your storage buckets. +You can simply build it at `packages.plover-gce` and store it there. ++ +You can take it further automating it by running link:../../scripts/generate-and-upload-gce-image[`../../scripts/generate-and-upload-gce-image`] which is just a modified version of the link:https://github.com/NixOS/nixpkgs/blob/ebdafd7244832f1f52cacd3eda39f2156988957e/nixos/maintainers/scripts/gce/create-gce.sh[`create-gce.sh` script from nixpkgs]. + +* If you already have access to at least one GCP KMS key, then skip this part. +Add a key to be used for deployment to wherever relevant file in the link:./secrets[secrets directory]. footnote:[Of course, you need previous keys which you're likely using the private age key for this system.] +For this, you'll have to create a GCP keyring on their key management system (KMS) and generate a key there. + +* Enable link:https://cloud.google.com/compute/docs/oslogin/set-up-oslogin[OS Login] for your Compute Engine instance. + +* Don't forget to set the appropriate scopes for the instance. +For example, since we're using a GCP KMS key, we may want to set the scope only to KMS API like in the following command. ++ +-- +[source, shell] +---- +gcloud compute instances create "instance-1" \ + --zone "us-east1-b" \ + --scopes "https://www.googleapis.com/auth/cloudkms" +---- +-- + +* Reserve a static IP address, pls. +Just don't forget to immediately assign it to the instance since it will charge higher if you just leave it alone. + +* Creating a dedicated link:https://cloud.google.com/iam/docs/service-accounts[service account] for the VM is recommended. +Just make sure to set the least amount of privileges for that account. diff --git a/users/README.adoc b/users/README.adoc index 9934e1d8..2009ed7e 100644 --- a/users/README.adoc +++ b/users/README.adoc @@ -2,7 +2,7 @@ :toc: This is where user-specific configurations comes in. -Similar to modules, the top-level of this directory contains users for various config types (e.g., home-manager, NixOS). +Similar to modules, the top-level of this directory contains users for various profiles (e.g., home-manager, NixOS). As such, files put in here are only a part of the total sum of configuration (whether it is a home-manager configuration or a NixOS system). It shouldn't fully configure their respective system and should be put as a host configuration otherwise.