| Age | Commit message (Collapse) | Author |
|
- Systemd.hs: add LANG and LC_ALL defaults (en_US.utf8) to all
generated unit files to ensure proper UTF-8 handling
- Systemd.hs: add generateUnitWithLocale that reads LOCALE_ARCHIVE
from the deployer's environment and injects it into generated units
- Telegram.hs: add safePutText wrapper that catches encoding errors
in logging to prevent them from killing message sends
The root cause was NixOS systemd services not inheriting locale
settings from the system, causing emoji characters to fail encoding.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
- Add execWorkingDirectory field to Exec type in Manifest.hs
- Generate WorkingDirectory= in systemd unit files
- Allow add-service to update existing services
- Rename biz-deployer to deployer throughout
- Fix Caddy.hs and Systemd.hs tests for new Exec constructor
This fixes subagent stalls caused by Coder running direnv from wrong directory.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
The function was incorrectly extracting store paths from ExecStart lines.
For "ExecStart=/nix/store/xxx/bin/ava" it would return "/nix/store/nix"
instead of "/nix/store/xxx".
This caused the deployer to think services needed redeployment on every
cycle, restarting them every 5 minutes.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
Previously used 'enable --now' which only starts stopped services.
Now explicitly calls 'restart' to ensure running services pick up new versions.
|
|
The deployer compared its in-memory stateServices map to decide if a
service needed restarting. When the deployer restarted, this state was
lost, causing it to think services were 'already at' the desired path
when they were actually running old code.
Changes:
- Add getRunningStorePath to Systemd module to read actual store path
- Update deployService to query systemd instead of stale in-memory state
- Add DerivingStrategies extension to Deployer.hs
|
|
- Systemd: use list comprehension instead of if-then-else
- Manifest: use </> operator, replace case with maybe
- Deployer: use newtype, use flip removeService
- Caddy: use newtype for single-field types
|
|
- Add Omni/Deploy/ with Manifest, Deployer, Systemd, Caddy modules
- Manifest CLI: show, update, add-service, list, rollback commands
- Deployer: polls S3 manifest, pulls closures, manages systemd units
- Caddy integration for dynamic reverse proxy routes
- bild: auto-cache to S3, outputs STORE_PATH for push.sh
- push.sh: supports both NixOS and service deploys
- Biz.nix: simplified to base OS + deployer only
- Services (podcastitlater-web/worker) now deployer-managed
- Documentation: README.md with operations guide
|