Døp om sg-announcer til announcer

Appen var navngitt etter Sauda Gathering, men det er ingenting
arrangementsspesifikt i selve koden. Navnet står igjen i tjenesten,
install.sh og pyproject.

- install.sh skriver nå announcer.service, og rydder bort en gammel
  sg-announcer.service først. Uten det slåss to enheter om port 8090
  når skriptet kjøres på en maskin som har den gamle.
- Enhetsfila får chmod 600; PIN-en står i klartekst i den.
- src/sg_announcer/ er slettet. Det var en uv-init-stub som bare printet
  «Hello from sg-announcer!», pekt på av [project.scripts], og som ingen
  har kalt noen gang.
- [tool.uv] package = false: appen er løse .py-filer som kjøres på plass,
  ikke en pakke. Uten den vil uv sync bygge et wheel og klage på at
  announcer/__init__.py mangler.

Repoet i Forgejo og mappa er døpt om tilsvarende.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kent 2026-10-08 15:42:36 +02:00
parent 3f37b0a7fb
commit f191fb2b90
6 changed files with 51 additions and 42 deletions

View file

@ -1,8 +1,8 @@
#!/usr/bin/env bash
# Installerer SG Announcer på en Debian/Ubuntu-maskin (testet mot Linux Mint).
# Installerer Announcer på en Debian/Ubuntu-maskin (testet mot Linux Mint).
#
# git clone https://git.1x1.no/kent/sg-announcer.git
# cd sg-announcer && ./install.sh
# git clone https://git.1x1.no/kent/announcer.git
# cd announcer && ./install.sh
#
# Kjør som vanlig bruker (ikke sudo); skriptet spør om passord der det trengs.
# Valgfritt: ANNOUNCER_PIN=1234 ./install.sh -> sida krever PIN
@ -15,11 +15,13 @@ if [[ $EUID -eq 0 ]]; then
exit 1
fi
APP="announcer"
OLD_APP="sg-announcer" # het dette før; enheten ryddes bort nedenfor
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PORT="${ANNOUNCER_PORT:-8090}"
PIN="${ANNOUNCER_PIN:-}"
UNIT_DIR="$HOME/.config/systemd/user"
UNIT="$UNIT_DIR/sg-announcer.service"
UNIT="$UNIT_DIR/$APP.service"
step() { printf '\n\033[1m==> %s\033[0m\n' "$*"; }
@ -49,12 +51,22 @@ mkdir -p cache chimes voices
step "Laster ned Piper-stemmene (lokal reserve, ca. 600 MB, kun første gang)"
"$UV" run python -c "import logging, announcer; logging.basicConfig(level=logging.INFO, format='%(message)s'); announcer.ensure_voices()"
step "Rydder bort gammel tjeneste"
# Tjenesten het sg-announcer før. Uten dette slåss to enheter om porten.
if [[ -f "$UNIT_DIR/$OLD_APP.service" ]]; then
systemctl --user disable --now "$OLD_APP" >/dev/null 2>&1 || true
rm -f "$UNIT_DIR/$OLD_APP.service"
echo "fjernet $OLD_APP.service"
else
echo "ingenting å rydde."
fi
step "systemd-brukertjeneste"
mkdir -p "$UNIT_DIR"
{
cat <<UNIT
[Unit]
Description=SG Announcer – TTS-utrop på høyttaleranlegget
Description=Announcer – TTS-utrop på høyttaleranlegget
After=pipewire.service pulseaudio.service
[Service]
@ -76,9 +88,10 @@ RestartSec=3
WantedBy=default.target
UNIT
} > "$UNIT"
chmod 600 "$UNIT" # PIN står i klartekst her
systemctl --user daemon-reload
systemctl --user enable --now sg-announcer
systemctl --user restart sg-announcer
systemctl --user enable --now "$APP"
systemctl --user restart "$APP"
step "Brannmur"
if ip link show wt0 >/dev/null 2>&1; then
@ -87,14 +100,14 @@ if ip link show wt0 >/dev/null 2>&1; then
sudo ufw default allow outgoing
sudo ufw allow in on wt0 to any port 22 proto tcp comment "ssh via netbird"
sudo ufw allow in on wt0 to any port 22022 proto tcp comment "netbird ssh-server"
sudo ufw allow in on wt0 to any port "$PORT" proto tcp comment "sg-announcer via netbird"
sudo ufw allow in on wt0 to any port "$PORT" proto tcp comment "$APP via netbird"
sudo ufw delete allow "$PORT/tcp" >/dev/null 2>&1 || true
sudo ufw --force enable
echo "ufw aktiv: port $PORT, 22 og 22022 er åpne kun på wt0 (NetBird)."
echo "Vil du også nå sida fra lokalt LAN uten VPN:"
echo " sudo ufw allow from <lan-subnett> to any port $PORT proto tcp"
elif sudo ufw status 2>/dev/null | grep -q "Status: active"; then
sudo ufw allow "$PORT/tcp" comment "sg-announcer"
sudo ufw allow "$PORT/tcp" comment "$APP"
else
echo "ufw er ikke aktiv, ingen regel nødvendig."
fi
@ -102,7 +115,7 @@ fi
sleep 2
IP="$(hostname -I 2>/dev/null | awk '{print $1}')"
step "Ferdig"
systemctl --user --no-pager status sg-announcer | head -5 || true
systemctl --user --no-pager status "$APP" | head -5 || true
cat <<MSG
Åpne http://${IP:-<denne-maskinens-ip>}:$PORT fra hva som helst på nettet.
@ -113,5 +126,5 @@ Tips for en laptop på arrangementet:
- Hindre at den sover med lokket igjen:
sudo sed -i 's/^#\?HandleLidSwitch=.*/HandleLidSwitch=ignore/' /etc/systemd/logind.conf
sudo systemctl restart systemd-logind
- Logg: journalctl --user -u sg-announcer -f
- Logg: journalctl --user -u $APP -f
MSG