Skip to content

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 05 Oct 01:35
· 144 commits to main since this release

Trawl 0.9.1

Trawl collects and searches logs for homelabs and small installations. Run one
Linux server, send it events over HTTP or syslog, and search them from a browser,
the command line, or the terminal UI.

This release prepares for 1.0. It adds tools for first-run and diagnosis,
fixes correctness and durability defects, and makes the browser proxy always
verify the server's certificate.

What is included

  • trawl trial starts a disposable local installation that the CLI owns and
    removes, for a first look before a real deployment.
  • Doctors check an installation from three places: trawl doctor checks one
    client connection, trawld --doctor checks the server host without changing
    it, and trawl-web --doctor checks the browser proxy and its upstream.
  • Ingest preview shows how the server canonicalizes a sample event. It stores
    nothing from the sample. The sender guides now walk through each source.
  • The Health page shows disk headroom and how many days of data each
    environment keeps.
  • Each query records its time in phases, in one query_timing event.
  • Query history search covers all retained history. After sign-in, the
    browser returns to the page you requested.
  • The filter rail is collapsed by default and opens for a countable page.
    Fields display according to what they hold.
  • A scheduled net can be run by hand, including a net with a schedule window.

Fixes

  • The server publishes each acknowledged event exactly once across crashes.
    At boot it hydrates the surviving write-ahead log, and it refuses corpus
    reads until coverage is proven.
  • The Debian package pins trawld's generated certificate for trawl-web, so a
    stock installation can sign in. trawl-web no longer restarts in a loop
    before trawld's first start.
  • Ingest admits events against hot-buffer capacity instead of evicting
    buffered events.
  • Run results that become unavailable are reported as unavailable, not as an
    empty result. timechart works on aggregated nets. Large integers keep
    their exact value.
  • Every server failure names its request, route and stage. A refused query
    shows the server's verdict on the text that was sent.
  • Several Search page corrections: the chart draws the whole result or
    nothing, a live stream carries no range, and the toolbar has one Save.

Existing installations

0.9.1 keeps the 0.9.0 storage epoch and database baseline. The server applies
forward migrations at startup.

trawl-web now always verifies trawld's certificate. The environment variable
that skipped verification for a loopback upstream has been removed. In the
Helm chart, when web.enabled and tls.mode is secret or
certManager, you must set tls.upstreamCa to secret, system, or a
mounted CA path. tls.mode=auto pins the generated certificate and needs no
change. See the deployment guide.

Installation choices

Platform Available components
Linux amd64 and arm64 Server and CLI archives, Debian packages, and container images
macOS 15 or newer, Apple silicon and Intel CLI archives
Kubernetes Helm chart for the Linux server and browser

Linux packages target Debian 12. Archives include the DuckDB runtime; keep
their bin/ and lib/trawl/ directories together. macOS archives use ad-hoc
signatures and are not Apple Developer ID signed or notarized.

Start with the installation guide and
your first query.

Requirements and scope

A server needs persistent storage and PostgreSQL, with separate databases for
authentication and application state. Clients need an API key with the required
permissions and trust in the server's TLS certificate. The browser requires
its own public origin and persistent session key.

Trawl is designed for one node. It does not provide clustering, sharding, or
multi-tenancy. Storage and memory needs depend on ingest volume, retention,
and queries.