bambuddy/backend/app/services/virtual_printer
maziggy 28a6ca6f4d Add CAP_NET_BIND_SERVICE everywhere the service is defined (#2549)
The Virtual Printer binds 990 and 322, below 1024, which a service running
as a normal user may not do without CAP_NET_BIND_SERVICE. Without it the
rest of Bambuddy works and only the VP is dead -- sockets never open, the
slicer never finds the printer, and the sole trace is one journal line.

332a7c6ac added the line to install/install.sh in March under the heading
"Fix install.sh missing AmbientCapabilities". Three other places define the
same unit and none of them got it: the manual template, the combined
Bambuddy + SpoolBuddy installer, and the unit the wiki tells you to paste.
The wiki additionally claimed the capability was always included.

Also diagnose it. The VP diagnostic reported only that nothing was listening
on 990, which reads identically to a port conflict. It now checks CapEff for
the capability and names it as the cause -- but stays quiet when the port is
answering (an iptables REDIRECT is the documented alternative and that host
works) and when the capability is held (the port is down for another reason
and blaming this would misdirect). Skips where there is no procfs rather
than putting a systemd instruction in front of a macOS user.
2026-08-04 08:33:30 +02:00
..
__init__.py Add virtual printer model selection 2026-01-04 09:39:06 +01:00
_debug.py debug(vp): env-flagged bridge-synthesised reply trace for slicer↔printer #1622 round-3 triage 2026-06-11 15:09:24 +02:00
bind_server.py fix(virtual-printer): #1610 add Bambu cipher pin to every slicer-facing TLS context 2026-06-03 10:04:37 +02:00
certificate.py fix(virtual-printer): #1558 Send pre-flight + slicer-surface audit bundle 2026-05-30 13:34:10 +02:00
diagnostic.py Add CAP_NET_BIND_SERVICE everywhere the service is defined (#2549) 2026-08-04 08:33:30 +02:00
ftp_server.py fix(vp): stop uvloop from silently truncating VP FTP uploads (#1896) 2026-07-05 10:32:13 +02:00
manager.py fix(vp): gate the slicer's AMS pick behind the toggle and scope its badges (#2700) 2026-07-31 16:16:39 +02:00
mqtt_bridge.py fix(vp): relay A2L AMS filament to the slicer instead of blanking every slot 2026-07-29 08:40:42 +02:00
mqtt_server.py feat(vp): mirror live print progress to the slicer (#1887) 2026-07-11 10:06:03 +02:00
ssdp_server.py fix(virtual-printer): #1558 Send pre-flight + slicer-surface audit bundle 2026-05-30 13:34:10 +02:00
tailscale.py fix(virtual-printer): #1558 Send pre-flight + slicer-surface audit bundle 2026-05-30 13:34:10 +02:00
tcp_proxy.py fix(virtual-printer): #1610 add Bambu cipher pin to every slicer-facing TLS context 2026-06-03 10:04:37 +02:00