# tritonshell ### a nix dev & ops shell for [triton](https://www.joyent.com/triton/compute) and [manta](https://www.joyent.com/triton/object-storage) [![asciicast](https://asciinema.org/a/xz53b9RJURrSZjbM5WGTQWrez.svg)](https://asciinema.org/a/xz53b9RJURrSZjbM5WGTQWrez) What is the package manager `nix`? For a refresher, [please read on here](https://serokell.io/blog/what-is-nix). 0. If you're already on NixOS and / or have worked with `flakes` before, **jump** to **2.** 1. [**Install** nix, the package manager](https://nixos.org/download.html) 1. Now, make sure you're ready to `nix` with flakes, this should give you some output: ``` nix flake --help ``` 2. Otherwise, proceed to enable flakes (still an experimental feature in `nix`): https://nixos.wiki/wiki/Flakes#Installing_flakes 2. **Get** this nix flake template, it will be setup in a new directory `./tritonshell` (feel free to adjust this): ``` nix flake new --template "git+https://git.greenbaum.cloud/dev/tritonshell?ref=main" ./tritonshell \ && cd tritonshell ``` 3. **Optional**: **Adjust** `./flake.nix` to match domains and data centers of your Triton Data Center setup. Look for the `CUSTOMIZE` comment. Greenbaum Cloud users skip this step, everything's preconfigured. ``` vim ./flake.nix ``` 4. **Ready** to go: ``` nix develop -c $SHELL ``` **Optional**: If you'd like to add **additional packages** to your new tritonshell, you can do so: just edit `flake.nix` and look for `devshell.packages`. Packages added here will be pulled from the `nixos-unstable` channel, you can [search for available packages here](https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=hello). You can use `nix-direnv` with this template, [read here how to install it](https://github.com/nix-community/nix-direnv#installation). Then, just run: ``` direnv allow ``` in the newly created `./tritonshell` directory to automatically rebuild the flake upon changes to the `flake.nix` file.