tritonshell/README.md

55 lines
2.0 KiB
Markdown

# 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.