6 Commits

Author SHA1 Message Date
LogWatch
02968c6288 feat: web UI + SQLite storage + FastAPI backend
Some checks failed
Build & Push Docker Image / build (push) Failing after 6s
- app.py: unified app – ntfy subscriber runs as background thread,
  FastAPI serves REST API (/api/messages) and static frontend
- static/index.html: terminal-style notification table with
  sortable columns, drag & drop column reorder, column visibility
  toggle (localStorage), text search, forwarded-only filter,
  auto-refresh every 30s
- All ntfy fields stored: id, received_at, ntfy_time, topic,
  title, message, priority, tags, forwarded
- /data volume for persistent SQLite DB
- Port 8000 exposed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.2.0
2026-03-23 17:02:11 +01:00
LogWatch
42534e0894 fix: use (connect, None) timeout for streaming connection
Some checks failed
Build & Push Docker Image / build (push) Failing after 6s
A read timeout of 90s caused unnecessary reconnects during idle periods.
(10, None) = 10s connect timeout, no read timeout on the open stream.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 09:10:34 +01:00
LogWatch
2e4c7eed58 refactor: use env var substitution for Portainer Repository stack
Some checks failed
Build & Push Docker Image / build (push) Failing after 7s
Variables now use \${VAR:-default} syntax so they can be set
via Portainer's environment editor without modifying the compose file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 09:05:26 +01:00
LogWatch
df15adc572 feat: Gitea Actions CI + env file + Gitea registry image
Some checks failed
Build & Push Docker Image / build (push) Failing after 1m50s
- .gitea/workflows/docker.yml: builds and pushes image to
  git.albert-zangerl.com/al/logwatch on every push to main
  and on version tags (v*)
- stack.env.example: template for environment variables
- stack.env: gitignored, lives on docker.lan next to the stack
- portainer-stack.yml: updated to use Gitea registry image
  and env_file reference

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 08:52:00 +01:00
LogWatch
ab640de08f docs: add Portainer stack YAML
For deployment on docker.lan via Portainer Web Editor.
Requires image built locally: docker build -t logwatch:latest .

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 08:49:22 +01:00
LogWatch
a62c16d708 feat: initial logwatch – Watchtower ntfy noise filter
Subscribes to an ntfy channel via JSON stream, filters Watchtower
notifications by importance (updates, failures, errors) and forwards
only the relevant ones to a second ntfy channel.

- filter.py: SSE consumer + regex-based importance filter + forwarder
- Dockerfile + docker-compose.yml for containerised deployment
- Configurable via env vars (SOURCE_URL, TARGET_URL, LOG_LEVEL, …)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.1.0
2026-03-22 08:35:21 +01:00