- name: lazyjournal
- description: A TUI for reading logs from journalctl, the file system, Docker and Podman containers, as well as Kubernetes pods, for quick viewing and filtering with fuzzy find, regex support, and colored output. Written in Go using gocui.
- snapcraft: https://raw.githubusercontent.com/Lifailon/lazyjournal/refs/heads/main/snapcraft.yaml
- upstream: github:
/Lifailon/lazyjournal
- upstream-relation: The snap publisher is the upstream developer and maintainer.
- supported-category: log viewers, system utilities, container management, kubernetes tools
- reasoning: The existing strict confinement interfaces are not sufficient for lazyjournal because the application requires deep integration with the host system to function properly. Specifically:
-
Access to
journalctl
system logs
lazyjournal needs to read logs fromjournalctl
, which involves accessing/run/log/journal/
and/var/log/journal/
. These locations are not accessible under strict confinement. -
Docker and Podman container integration
The application reads container logs, inspects container metadata, and monitors process namespaces, all of which require access to/var/lib/docker/
,/var/run/docker.sock
,/var/lib/containers/
, and container-specific mount namespaces. These operations are not possible within strict confinement. -
File system access across various paths
lazyjournal is designed to let users explore arbitrary logs across different system paths, including log directories not mapped inside the Snap sandbox (e.g.,/var/log
, user-defined paths, and persistent storage). Thehome
,log-observe
, orsystem-observe
interfaces do not provide sufficient access for this use case.
Because these operations require access to unrestricted system resources, classic confinement is necessary for lazyjournal to function correctly and provide its intended features.
I understand that strict confinement is generally preferred over classic.
I’ve tried the existing interfaces to make the snap to work under strict confinement.