# Ava user and directory setup. # The Ava service itself is deployed dynamically via biz-deployer. # This module only creates the user, directories, and activation scripts. {...}: { systemd.tmpfiles.rules = [ "d /home/ava 0755 ava users -" "d /home/ava/omni 0755 ava users -" "d /home/ava/skills 0755 ava users -" "d /home/ava/prompts 0755 ava users -" "d /home/ava/prompts/agents 0755 ava users -" "d /home/ava/prompts/agents/telegram 0755 ava users -" "d /home/ava/prompts/shared 0755 ava users -" "d /home/ava/prompts/shared/formatting 0755 ava users -" "d /home/ava/prompts/subagents 0755 ava users -" "d /home/ava/prompts/subagents/generic 0755 ava users -" "d /home/ava/prompts/subagents/coder 0755 ava users -" "d /home/ava/outreach 0755 ava users -" "d /home/ava/outreach/pending 0755 ava users -" "d /home/ava/outreach/approved 0755 ava users -" "d /home/ava/outreach/rejected 0755 ava users -" "d /home/ava/outreach/sent 0755 ava users -" "d /home/ava/users 0755 ava users -" "d /home/ava/.local/share/omni 0755 ava users -" "d /home/ava/models 0755 ava users -" "d /home/ava/logs 0755 ava users -" "d /home/ava/logs/ava 0755 ava users -" "d /home/ava/logs/subagents 0755 ava users -" ]; # Create .bashrc with direnv hook if it doesn't exist system.activationScripts.avaBashrc = '' if [ ! -f /home/ava/.bashrc ]; then echo 'eval "$(direnv hook bash)"' > /home/ava/.bashrc chown ava:users /home/ava/.bashrc fi ''; # Note: Tailscale Funnel for Ava web server is configured via: # tailscale funnel --bg 8079 # This persists in tailscaled config and doesn't need a systemd service. # URL: https://beryllium.oryx-ide.ts.net/ }