1
0
Fork 0

add a meager of getting started guide

This commit is contained in:
ibizaman 2023-03-17 20:58:15 -07:00
parent 33597929c3
commit 0bc2b6f9a4

View file

@ -76,22 +76,49 @@ lightweight.
Some other "dev" oriented TODOs can be found at the end of the README. Some other "dev" oriented TODOs can be found at the end of the README.
## Getting Started ## Getting Started
WIP If you know your way around disnix, feel free to skip this section. If
not and you'd rather read the [disnix
manual](https://hydra.nixos.org/build/203347995/download/2/manual/)
instead of reading my rambling, that's probably a good idea too.
Hey, you're still here! Let's start.
First, you need at least one deploy _target_ where NixOS is installed.
I'll refer you to the [official
guide](https://nixos.wiki/wiki/NixOS_Installation_Guide) for how to do
this. You can install on a could machine or a self-hosted server.
Second, you need a machine where Nix is installed, to drive the
deploy. It can be Nix or NixOS here. To install Nix, see the [official
guide](https://nixos.org/download.html).
Assuming this is done, you need to create a folder which will hold 3 files:
- `network.nix` explains how to provision each deploy _target_. For
example, you'd tell here which user or package should exist. That
being said, the goal here is to keep this file minimal and instead
use the `service.nix`.
- `services.nix` is used to install any service - a database, a
reverse proxy, an app, etc. The goal here is to make the install
procedure machine independent.
- `distribution.nix` is used to tell which service goes to which
deployment target.
Please see the [integration tests](/tests/integration) for examples.
## Advised Workflow ## Advised Workflow
The workflow is the following: The workflow is the following:
1. Make a change 1. make a change,
2. Add or modify tests 2. add or modify tests,
3. Run the tests 3. run the tests,
4. Deploy to staging environment 4. deploy to staging environment
5. Deploy to production environment 5. and deploy to production environment.
The first two bullets are very general so I can't realistically The first two bullets are very general so I can't realistically
enumerate all possibilities. I'll possibly provide examples later. enumerate all possibilities. I'll possibly provide examples in a
following update.
The remaining three are explained in the following subsections. The remaining three are explained in the following subsections.
@ -313,3 +340,4 @@ In rough order of highest to lowest priority.
- [ ] Move a few packages installed through network.nix into services.nix. - [ ] Move a few packages installed through network.nix into services.nix.
- [ ] Use something else than `pass` to retrieve secrets. Or better, - [ ] Use something else than `pass` to retrieve secrets. Or better,
allow multiple options. allow multiple options.
- [ ] Explain how to setup secret keys.