A small helpdesk system: an office Pixel running a patched GrapheneOS Dialer answers technician calls, records both call legs as separate channels, and a Ruby backend transcribes them through Whisper and files an AI summary against the caller. Squashed to a single commit for sharing. No credentials are included; secrets live outside the repo in /etc/helpdesk/env on the server or a gitignored .claude/env.local locally. See .claude/env.local.example for the shape. Start at README.md, then docs/architecture.md.
27 lines
854 B
Desktop File
27 lines
854 B
Desktop File
# Installed at /etc/systemd/system/helpdesk.service. Runs the WEBrick backend as a dedicated system
|
|
# user, bound to loopback (nginx is the only public entry). LANG/LC_ALL are required — Czech text breaks
|
|
# under a non-UTF-8 locale. Secrets come from /etc/helpdesk/env (root-only).
|
|
[Unit]
|
|
Description=Helpdesk console + device API (WEBrick, PostgreSQL)
|
|
After=network-online.target postgresql.service
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=helpdesk
|
|
Group=helpdesk
|
|
WorkingDirectory=/srv/helpdesk/components/backend
|
|
EnvironmentFile=/etc/helpdesk/env
|
|
Environment=LANG=C.UTF-8
|
|
Environment=LC_ALL=C.UTF-8
|
|
ExecStart=/usr/bin/ruby /srv/helpdesk/components/backend/server.rb
|
|
Restart=on-failure
|
|
RestartSec=3
|
|
NoNewPrivileges=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
PrivateTmp=true
|
|
StateDirectory=helpdesk
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|