ScannerSettings uses case_sensitive=False and field name 'port',
so it picks up PORT=80 from the container's shared environment
and tries to bind port 80 instead of the correct 8001.
Wrap scanner command with PORT=8001 to prevent env collision.
- Revert Dockerfile to before the Playwright system deps / Chromium copy
(commit 6e9726f). The ConnectError is a service-not-running issue, not
a missing-browser issue.
- Add [unix_http_server], [supervisorctl], and [rpcinterface:supervisor]
sections so 'supervisorctl status' works inside the container.
- Redirect scanner stdout/stderr to /var/log/scanner.log so startup
errors are inspectable.
Bake SCANNER_SERVICE_URL=http://127.0.0.1:8001 and PYTHONUNBUFFERED=1
into /etc/profile.d/consentos.sh inside the image and source that file
from /entrypoint.sh so every supervisord child (api, worker, beat,
scanner) inherits the same defaults — both for EasyPanel deploys and
local docker compose.
Drop the inline env injection in supervisord.conf since the entrypoint
now sets it. Single source of truth: the Dockerfile.
The root Dockerfile bakes api + scanner + worker + beat into a single
container managed by supervisord, but the [program:scanner] entry was
shipped with autostart=false and the api/worker had no SCANNER_SERVICE_URL
in their environment, so run_scan tasks always got ConnectError trying to
reach http://localhost:8001.
Enable the scanner, point the api/worker/beat at the in-process scanner at
http://127.0.0.1:8001, and start the scanner before the api/worker so its
port is listening by the time scan tasks start running.
- Dockerfile.app: single container with supervisord (API + Worker + Beat + Scanner)
- supervisord.conf: process manager for 4 services in one container
- EASYPANEL.md: step-by-step deploy guide for Easypanel
- EASYPANEL-README.md: repo structure and deploy flow overview