Skip to content

Provide a CLI-only, Docker Compose way to run BD-1 #19

Description

@cigonet-obeosoft

Request

Run bd1 and bd1-eurecia from a terminal through Docker Compose, with TTY
interaction only: reports, manual marks, Eurecia preview and push, lint, unit
tests, and the Linux build. No tray, no windows, no X server.

Why

  • A simple context: one compose file, one command per action, nothing installed
    on the host beyond Docker. No Python version, venv, Tk or tray backend to set
    up.
  • Isolation: the database and settings live in a named volume, separate from a
    BD-1 installed on the host.
  • The GUI parts are the platform-specific ones. Keeping them out of this path
    removes the desktop complexity for users who only need the reports and the
    Eurecia synchronization.

Past days from system logs, no live listener

Without the tray application nothing feeds the database, so the same CLI
should build observations from logs the operating system already writes,
read after the fact from inside the container:

  • macOS: /private/var/log/powermanagement/YYYY.MM.DD.asl, one file per day,
    readable by any user, about ten days of history. Its "Display is turned on",
    "Display is turned off", wake and sleep entries describe presence; DarkWake
    and maintenance sleeps are noise. The folder is bind-mounted read-only into
    the container and parsed there, so no host command, no listener, no Input
    Monitoring permission and no Gatekeeper step.
  • Same idea later for Linux (journald, last) and Windows (event log).

Current state

README development setup:

python3.13 -m venv .venv

macOS 26.5, Homebrew Python:

$ python3.13 -m venv .venv
zsh: command not found: python3.13
$ python3 -c "import tkinter"
ModuleNotFoundError: No module named '_tkinter'

No Dockerfile or compose.yml in the repository.

Evidence for the log source, macOS 26.5:

$ ls -la /private/var/log/powermanagement | tail -3
-rw-r--r--  1 root  admin  2340706 Sep 17 23:59 2026.09.17.asl
-rw-r--r--  1 root  admin  1317659 Sep 18 10:04 2026.09.18.asl
-rw-r--r--  1 root  admin        8 Sep 18 10:04 StoreData

$ xxd -l 16 /private/var/log/powermanagement/2026.09.17.asl
00000000: 4153 4c20 4442 0000 0000 0000 0000 0002  ASL DB..........

$ pmset -g log | awk '/^2026-09-17/ && $4=="Notification"' | head -4
2026-09-17 09:11:42 +0200 Notification  Display is turned on
2026-09-17 09:11:46 +0200 Notification  Display is turned off
2026-09-17 09:11:48 +0200 Notification  Display is turned on
2026-09-17 09:12:18 +0200 Notification  Display is turned off

A stdlib-only Python reader of the 2026-09-17 file walks 2973 records and
finds 15 "Display is turned on", 15 "Display is turned off", 127 wake and
124 sleep entries.

$ bd1 --report today --date 2026-09-17
2026-09-17: no observations

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions