55 lines
2 KiB
Markdown
55 lines
2 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.
|