v1.5.0 - Enhanced Actions, distroless, configuration via Docker labels and more
This release brings enhanced actions, more flexible configuration options, and stronger performance & security. With OliveTin support (incl. auth), the possibility to run actions against other containers, docker label-based configuration, keyword groups, and a distroless image that can be run in read-only mode, LoggiFly is more flexible and secure than ever.
🚀 New Features
-
OliveTin Actions Integration
- Trigger OliveTin actions from log events.
- Supports username/password authentication.
- Configurable globally, per container, or per keyword.
- Execution details are included in a separate notification.
- See docs
-
Cross-Container Actions (
action@target
)- Run actions against other containers, e.g.
restart@some-other-container
. - See docs
- Run actions against other containers, e.g.
-
Per-Action Cooldowns (per container)
- Cooldowns are tracked per specific action string (including target) per container.
Example:restart
andrestart@some-other-container
have separate cooldowns for the container that they are configured under. - Minimum cooldown: 10s. Default remains 300s.
- Cooldowns are tracked per specific action string (including target) per container.
-
Keyword Groups
- Use
keyword_group
to trigger only when all keywords in a group are present. - See docs
- Use
-
Docker Label-Based Configuration
- Configure containers or Swarm services via Docker labels (e.g.
loggifly.setting_name
,loggifly.keywords
, …). - See docs
- Configure containers or Swarm services via Docker labels (e.g.
-
Disable Notifications
- new setting:
disable_notifications
- Suppress notifications for log events globally, per container, or per keyword
- useful for action-only workflows.
- new setting:
⚙️ Improvements
-
Performance
- Reduced CPU usage: instead of flushing the buffer every second (the buffer is where lines are combined into multi line entries), flush threads now sleep and are only waken up temporarily to flush the buffer after new lines are detected.
-
Read-Only Container Support (Security)
- Attachments now work in read-only contexts, allowing you to set
read_only: true
in your Compose file for better security.
- Attachments now work in read-only contexts, allowing you to set
-
Distroless Base Image
- Switched to a distroless Python image: smaller footprint, fewer packages, no shell, reduced attack surface.
-
Configuration Validation
- Validation for regex & more, clearer error messages.
-
Notifications
- Consolidated: one combined notification message for all hosts (instead of one per host).
-
Refactoring
- More robust internals and error handling.
🐛 Bug Fixes
- Fixed: globally excluded keywords were not applied correctly.
- Fixed: container notification cooldown could not be set to
0
.
📖 Documentation
- New/updated sections for OliveTin, cross-container actions, keyword groups, label-based configuration, docker compose examples, and more.
💡 Tip: Monitoring System Logs
A simple way to capture system logs (e.g. failed SSH login attempts) is to use a Fluentbit Container that streams journal logs to its docker container logs where LoggiFly can then monitor them. More details in the docs.