github clemcer/loggifly v1.4.0

latest releases: v1.4.2, v1.4.1
2 months ago

v1.4.0 – More Modular Config, Podman Support & More

This release brings a major upgrade to LoggiFly’s configuration system, enhanced template capabilities, Podman compatibility, along with some bug fixes and other improvements.

✨ New Features

Simpler configuration of attachments & actions

The configuration format has been simplified and unified.

Previously, you had to define keywords in multiple sections:

🔁 Old structure:

containers:
  mycontainer:
    keywords:
      - error
    keywords_with_attachment:
      - "important alert"
    action_keywords:
      - restart: "fatal crash"
      - stop:
          regex: "unauthorized access"

Now replaced with a single keywords: section:

containers:
  mycontainer:
    keywords:
      - error
      - important alert
        attach_logfile: true
      - keyword: "fatal crash"
        action: restart
      - regex: "unauthorized access"
        action: stop

Note

All existing configs using keywords_with_attachment and action_keywords are automatically interpreted and converted into the new unified format at runtime.
However, editing your config.yaml and switching to the new format is still recommended for clarity and full feature support

Warning

⚠️ The old setting hide_pattern_in_title has been renamed to hide_regex_in_title and is not automatically migrated.

More modular settings (#20)

The configuration system is now fully modular and much more powerful:

  • all notification settings can now be set per container and per keyword/regex allowing you to send notifications to different channels/services depending on the contaier or keyword
  • a lot of other settings you could previously set globally and per container can now be set per keyword/regex as well

Example:

container:
    apprise_url: "discord://webhook-url"  
    keywords:
      - keyword1
      - regex: regex-pattern1
        ntfy_tags: partying_face   
        ntfy_priority: 5
        ntfy_topic: error
        attachment_lines: 10
        hide_regex_in_title: true
      - keyword: keyword2
        apprise_url: "discord://webhook-url" 
        action: restart
        action_cooldown: 60 
        notification_title: '{container} restarted because these keywords were found: {keywords}'
        notification_cooldown: 10
        attach_logfile: true

All available settings and their applicable levels (global / container / keyword) are documented here.

New Setting: excluded_keywords (#29)

This setting allows you to define keywords or regexes that should never trigger a notification. They can be defined at any level:

settings:
  excluded_keywords:          # global
    - "debug"
    - regex: "^healthcheck:.*"

containers:
  mycontainer:
    excluded_keywords:       # per container
      - "ignore this"
    keywords:
      - keyword: "critical error"
        excluded_keywords:   # per keyword
          - regex: false alarm

Container Host Assignment (#27)

  • New hosts: setting allows containers to be monitored only on specified hostnames in case you are montiring multiple hosts

Documentation.

JSON Template Enhancements (#25)

  • Improved json_template now supports nested json structures:

    • {key} for top-level fields
    • {dict[key]} for nested fields
    • {list[index][key]} for arrays

Documentation

Official Podman Support thanks to @L-Schwarz (#21)

  • You can now run LoggiFly with Podman, including rootless setups using quadlets. Full examples are in the new docs.
    Documentation

Fixes & Improvements

  • Fixed: Docker Swarm error: no keywords configured.
  • Improved: handling of restarted containers
  • Podman: Added workaround for timeout issues when no logs are available.
  • Various other small improvements

📚 Documentation

📘 New documentation site:

Includes a lot of improvements and the following new sections that were not previously in the README:

  • Settings Overview:
    Tables showing which settings apply globally, per container, or per keyword

  • Podman Support:
    With full examples for podman run, quadlet + systemd


Don't miss a new loggifly release

NewReleases is sending notifications on new releases.