host := "bl@flo-homeserver" hagfisk_dir := "~/hagfisk" # Build binary locally build: echo "Building hagfisk binary..." cargo build --release # Stop app service (must stop before DB operations) stop-app: ssh {{host}} "systemctl --user stop hagfisk.service" # Start app service start-app: ssh {{host}} "systemctl --user start hagfisk.service" # Restart app service restart-app: ssh {{host}} "systemctl --user restart hagfisk.service" # Deploy and restart (safe for regular updates) deploy: build ssh -q {{host}} "rm -f {{hagfisk_dir}}/hagfisk" echo "Syncing binary to remote..." rsync -avz --progress ./target/release/hagfisk {{host}}:{{hagfisk_dir}}/hagfisk echo "Restoring SELinux contexts..." ssh -t -q {{host}} "sudo restorecon -RF {{hagfisk_dir}}" ssh -q {{host}} "systemctl --user daemon-reload" ssh -q {{host}} "systemctl --user restart hagfisk.service" # Deploy with full re-ingest (stops service first) deploy-reingest: build stop-app echo "Syncing binary to remote..." rsync -avz --progress ./target/release/hagfisk {{host}}:{{hagfisk_dir}}/hagfisk echo "Restoring SELinux contexts..." ssh -t -q {{host}} "sudo restorecon -RF {{hagfisk_dir}}" ssh -q {{host}} "systemctl --user daemon-reload" echo "Running full re-ingest..." ssh {{host}} "cd {{hagfisk_dir}} && ./hagfisk ingest --full" echo "Starting service..." ssh {{host}} "systemctl --user start hagfisk.service" # Manual full ingest (assumes service is stopped) ingest-full: ssh {{host}} "cd {{hagfisk_dir}} && ./hagfisk ingest --full" # Stream logs from remote app logs-app: ssh {{host}} "journalctl --user -u hagfisk -f" # Show status of app ps-app: ssh {{host}} "systemctl --user status hagfisk.service" # Stream logs from remote ingest (manual run) logs-ingest: ssh {{host}} "journalctl --user -u hagfisk-ingest -f" # Show status of ingest ps-ingest: ssh {{host}} "systemctl --user status hagfisk-ingest.service"