60 lines
1.7 KiB
Markdown
60 lines
1.7 KiB
Markdown
# NixOS Configuration for AppDaemon Development
|
|
|
|
## Objectives
|
|
|
|
- Use flakes
|
|
- `devenv`-based workflow
|
|
- Shell
|
|
- Makes `uv` available
|
|
- Syncs `devenv` virtual environment
|
|
- `appdaemon`
|
|
- Build Docker
|
|
- SSH remote with VSCode
|
|
- Jupyter through VSCode
|
|
- `autoreload` must work with editable install of the dev version
|
|
- Multiple dev versions
|
|
- Multiple config directories
|
|
- Debugger must work
|
|
- Observation - telegraf/promtail
|
|
- Utility - portainer, watchtower
|
|
|
|
## Usage
|
|
|
|
### `nfs`
|
|
|
|
Used to rebuild the `ad-nix` system with whatever is currently symlinked to `/etc/nixos`
|
|
|
|
### `ads`
|
|
|
|
Used to enter the development shell. Be careful, as this will create a `.devenv` directory and venv wherever it's entered.
|
|
|
|
### venv
|
|
|
|
Activated with `.devenv/state/venv/bin/activate`. Used in VSCode for type hints, running, and debugging
|
|
|
|
### Jupyter
|
|
|
|
- Install devenv kernel - might not be useful?
|
|
- `python -m ipykernel install --user --name devenv --display-name "Python (devenv)"`
|
|
- Run jupyter notebook on the side with a `uv run jupyter notebook` command
|
|
- Use the link with the token to connect the jupyter notebook kernel to it
|
|
|
|
## Mechanics
|
|
|
|
### SSH Connection
|
|
|
|
SSH keys are pre-authorized from `secrets/authorized_keys` which contains the public keys for desktop, laptop, and phone.
|
|
|
|
### SOPS
|
|
|
|
- `secrets/secrets.yaml` contains the encrypted keys.
|
|
- There needs to be a `~/.config/sops/age/keys.txt` file with the age secret key. This file has to be manually placed.
|
|
- `sops.yaml` indicates to SOPS that the yaml file is encrypted with that secret key.
|
|
- `sops-ad` is a convenience script for editing the secrets.yaml file.
|
|
|
|
## Setup
|
|
|
|
`secrets/secrets.yaml` needs to have
|
|
|
|
- `telegraf_influx_token`
|