diff --git a/_git.tar.gz b/_git.tar.gz index f1e0d7b..8a81847 100644 --- a/_git.tar.gz +++ b/_git.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8fb0159b7b034f4ef4096ba21efd5ac101a00b739f593fadd1c79f7911480602 -size 363383 +oid sha256:6d132d72e9f11832b7b7ec8a4394df7ebaa50765c9da822b1be35eec1f4196d8 +size 370321 diff --git a/mkdocs.yml b/mkdocs.yml index a198ca1..0fd35f5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -30,4 +30,7 @@ plugins: - git-revision-date-localized: enable_creation_date: true markdown_extensions: - - tables \ No newline at end of file + - tables + - pymdownx.caret + - pymdownx.mark + - pymdownx.tilde \ No newline at end of file diff --git a/src/skynet/nix.md b/src/skynet/nix.md index 23ae6a2..80613c4 100644 --- a/src/skynet/nix.md +++ b/src/skynet/nix.md @@ -38,8 +38,8 @@ sieve-editor-gui . #### Language There are two partially difficult problems in computer science: 1. Off by one errors -2. Caching -3. Naming things + 2. Caching + 3. Naming things Nix falls into this last pitfall. The programming language used by teh Nix package manager is called Nix, not Nixlang (as like Erlang) but rather the same name as primary tool that uses it. @@ -90,7 +90,7 @@ This is a rough quickstart introduction to Nix. For more detailed information I recommend these resources. * [Official Guide][nix_guide_official] -* [Nix Pills][nix_guide_pills] + * [Nix Pills][nix_guide_pills] ### Flakes A Flake is one of teh best ways of interacting with nix. @@ -137,8 +137,24 @@ For a full explanation of its key features I would like to point you to the [Lix We use Lix instead of CppNix as the goals of Lix align with the viewpoints and ideologies that our members hold and what we want to represent as a (computer) society. ## Why we use it -{Details of how the config was ascattered and hard to find} -{Also embracing devops and reduced manpower} +Back in [January 2023 we got disconnected from teh internet][skynet_disconnect]. +For the purposes of this document the root cause is not of importance. +What *is* the mad Indian Jones ~~treasure~~ config hunt that it triggered. +![Brendan delving for configs][skynet_disconnect_reenactment] +Additionally ITD require us to update our systems regularly (as they should be). +Technically this config delving is an ongoing effort, the old hard drives are occasionally connected up and raided. + +As you would imagine this is not ideal, a exasperating factor was that many programs had changed both the location and format of their configuration over the decades that Skynet has been using them. + +This is where teh strengths of NixOS lie. +The config for the entire cluster is located in a singular location. +Using modules which work as a translation layer if the requirements for the programs change this dont impact us. +Not to mention we can fearlessly (and regularly) update our systems it is a match made is heaven. + +Currently the Skynet cluster is comprised of 15 servers which have NixOS on them. +A combination of LXC's (Linux Containers) and physical bare metal servers. +Since these systems share a base config (with tehir individual applications layered on top) we are able to efficiently build them, building a package for one will also built it for other servers. +Combine that with teh ability to deploy them via our own selfhosted CI/CD we have a strong foundation to work off of. ## How we use it ### Requirements @@ -165,4 +181,6 @@ We use Lix instead of CppNix as the goals of Lix align with the viewpoints and i [nix_flake]: https://wiki.nixos.org/wiki/Flakes [nix_dns]: https://forgejo.skynet.ie/Skynet/nixos/src/branch/main/applications/dns/dns.nix [nix_lix]: https://lix.systems/ -[nix_lix_about]: https://lix.systems/about/ \ No newline at end of file +[nix_lix_about]: https://lix.systems/about/ +[skynet_disconnect]: https://public.skynet.ie/postmortem/2023-01-12_Loss-of-network-access.html +[skynet_disconnect_reenactment]: https://forgejo.skynet.ie/Computer_Society/presentations_compsoc/media/branch/main/src/slides/skynet/0_intro_img1.png \ No newline at end of file