diff options
| author | Ben Sima <ben@bensima.com> | 2025-12-25 17:46:45 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-12-25 17:46:45 -0500 |
| commit | c73442d776b3b4889b1f7985f776d8310c6c4b7c (patch) | |
| tree | bf0de5f641a4020546d6f19c9686ecf343ea55b1 /Omni/Dev/Packages.nix | |
| parent | 7c9e32f4dee52433911b7e82a72566dc8b5b5708 (diff) | |
Omni/Dev: convert Ava to dynamic deployment
- Create Omni/Dev/Packages.nix with ava, deployer, deploy-manifest packages
- Add biz-deployer service to Beryllium.nix
- Remove static systemd service from Ava.nix (keep user/dirs setup)
Ava is now deployed via the mini-PaaS system rather than being a
static NixOS service. This enables fast Ava updates without full
NixOS rebuilds - just build, push closure, update manifest.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'Omni/Dev/Packages.nix')
| -rw-r--r-- | Omni/Dev/Packages.nix | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Omni/Dev/Packages.nix b/Omni/Dev/Packages.nix new file mode 100644 index 0000000..bb45d61 --- /dev/null +++ b/Omni/Dev/Packages.nix @@ -0,0 +1,60 @@ +# Build Dev packages independently, outside NixOS context. +# +# This file builds packages for Beryllium and returns them as an attribute set. +# The NixOS config (Beryllium.nix) will accept these as inputs rather than +# building them during OS evaluation. +# +# Usage: +# nix-build Omni/Dev/Packages.nix # builds all packages +# nix-build Omni/Dev/Packages.nix -A ava # builds one package +{bild ? import ../Bild.nix {}}: let + nixpkgs = import ../Bild/Nixpkgs.nix; + pkgs = nixpkgs.nixos-24_11; + + # Python environment for Ava's python_exec tool + avaPython = bild.python.pythonWith (p: [ + p.requests # HTTP requests + p.httpx # Async HTTP + p.beautifulsoup4 # HTML/XML parsing + p.lxml # Fast XML/HTML parser + p.pandas # Data analysis + p.numpy # Numerical computing + p.pillow # Image processing + p.pyyaml # YAML parsing + p.python-dateutil # Date utilities + ]); + + avaPkg = bild.run ../Ava.hs; + + # Wrapped ava with tools in PATH + ava = bild.stdenv.mkDerivation { + name = "ava-wrapped"; + buildInputs = [bild.makeWrapper]; + phases = ["installPhase"]; + installPhase = '' + mkdir -p $out/bin + makeWrapper ${avaPkg}/bin/ava $out/bin/ava \ + --prefix PATH : ${bild.lib.makeBinPath [ + avaPython + bild.pkgs.jq + bild.pkgs.ripgrep + bild.pkgs.coreutils + bild.pkgs.git + bild.pkgs.sqlite + bild.pkgs.ffmpeg + bild.pkgs.bash + pkgs.curl + pkgs.pandoc + pkgs.imagemagick + pkgs.csvkit + pkgs.openai-whisper-cpp + pkgs.direnv + pkgs.nix + ]} + ''; + }; +in { + inherit ava; + deployer = bild.run ../Deploy/Deployer.hs; + deploy-manifest = bild.run ../Deploy/Manifest.hs; +} |
