A client-supplied X-Forwarded-For could mint a fresh device hash per request. nginx now trusts only the edge hop (192.168.178.164) when unwinding the chain and passes the result as X-Real-IP; the service uses nothing else. setup-poll.sh --reset wipes the vote table. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MScAinbyMdeNc7H2BZdnnG
26 lines
880 B
Bash
Executable file
26 lines
880 B
Bash
Executable file
#!/usr/bin/env bash
|
|
# Install / update the poll counter on forge-runner-01. Idempotent.
|
|
#
|
|
# Usage (on the VM, with sudo):
|
|
# sudo ops/poll/setup-poll.sh # install / update
|
|
# sudo ops/poll/setup-poll.sh --reset # ... and wipe all votes
|
|
set -euo pipefail
|
|
HERE="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
if [ "${1:-}" = "--reset" ]; then
|
|
systemctl stop furtka-poll 2>/dev/null || true
|
|
rm -f /var/lib/furtka-poll/votes.db
|
|
echo "votes wiped"
|
|
fi
|
|
|
|
install -d -m 0755 /opt/furtka-poll
|
|
install -m 0644 "$HERE/pollsvc.py" /opt/furtka-poll/pollsvc.py
|
|
install -m 0644 "$HERE/furtka-poll.service" /etc/systemd/system/furtka-poll.service
|
|
|
|
systemctl daemon-reload
|
|
systemctl enable --now furtka-poll
|
|
systemctl restart furtka-poll
|
|
sleep 1
|
|
systemctl --no-pager --lines=3 status furtka-poll
|
|
curl -fsS http://127.0.0.1:8090/logo && echo
|
|
echo "OK: furtka-poll running on 127.0.0.1:8090"
|