Skip to content

Releases: pregene/autobricks-log

Autobricks True Log Client 0.3.62 — macOS arm64 / x86_64

Choose a tag to compare

@pregene pregene released this 07 Oct 08:06

Autobricks True Log Client 0.3.62 — macOS arm64 / x86_64

This release provides macOS installer packages for ab-truelog-cli. The client
sends logs to a Linux True Log server and queries stored WORM file metadata.
WORM storage remains on Linux; only the client is installed on macOS.

Use a Linux True Log server 0.3.61 or later supporting write and info.
Linux server and client packages
are available in a separate release.

Downloads

File Target
autobricks-truelog-cli-0.3.62-macos-arm64.pkg Apple Silicon
autobricks-truelog-cli-0.3.62-macos-x86_64.pkg Intel Mac
SHA256SUMS Package SHA-256 checksums

Requires macOS 13 or later.

Installation

  1. Download the .pkg matching your Mac's architecture and SHA256SUMS.

  2. Verify the checksum in the download directory:

    shasum -a 256 -c SHA256SUMS --ignore-missing

    Confirm that the downloaded package reports OK.

  3. Open the .pkg in Installer and install on the running system volume.

  4. Open Terminal and run initial setup:

    sudo /usr/local/bin/ab-truelog-cli setup
  5. Complete the curses configuration screen:

    Autobricks True Log Client - macOS setup
    
    > SERVER ADDRESS         [logs.example.test]
      PORT                   [5544]
      MODE (Space toggles)   [mtls]
      CLIENT HOSTNAME        [example-client]
      CLI USER               [the local user running sudo]
      PAIRING CODE           [*********]
    
    Tab/Up/Down: move  Enter: Register and start  Esc: Cancel
    

    SERVER ADDRESS is the actual Linux server IP address or DNS name. PORT
    defaults to 5544; change it if the server uses another port. MODE defaults
    to mTLS; use Space or Left/Right to toggle TCP/mTLS. CLIENT HOSTNAME identifies
    the client in server-side log paths. CLI USER is the existing local account
    allowed to write and query logs, defaulting to the account running sudo.
    PAIRING CODE is the server-issued eight-digit code, required only for mTLS and
    masked on screen.

    Use Tab/Up/Down to move, Backspace to edit, Enter to register and start, and
    Esc to cancel. The terminal must have at least 64 columns and 14 rows. Setup
    uses macOS's built-in curses library and requires no Python or Homebrew.

  6. In mTLS mode, setup enrolls certificates using the server's Pairing Code and
    checks an authenticated connection. Enrollment, writes and queries all use
    the same configured port.
    TCP skips enrollment and requires a trusted network.

  7. After successful registration, setup saves protected settings and certificates,
    registers the system launchd service and starts it. The service runs as a
    dedicated unprivileged account and starts automatically at boot.

First installation does not start an unconfigured service. Cancellation and
enrollment failures preserve existing connection settings. Activation failures
attempt to restore the previous configuration and service. Setup does not delete
server data.

Usage as a regular user

Administrator privileges are needed only for installation and initial system
setup. Run these commands as the account selected in setup, without sudo or
repeated --host/--port arguments
:

/usr/local/bin/ab-truelog-cli --version
/usr/local/bin/ab-truelog-cli --help

# Send one log record to the Linux server.
/usr/local/bin/ab-truelog-cli write --service example-service --data 'application started'

# Query stored metadata for a server-side WORM file.
/usr/local/bin/ab-truelog-cli info --file example-files/example.log

If /usr/local/bin is on PATH, use ab-truelog-cli directly.

write returns the server's before/after checksum receipt after its configured
durability boundary completes. info returns stored WORM metadata as JSON; it
does not read log contents or rehash the entire file. Use the actual server-side
WORM file path or a path relative to the WORM mount, replacing the example with
the file to query. Existing server authorization and path restrictions apply.

Reconfiguration, upgrades and diagnostics

# Edit saved connection settings.
sudo /usr/local/bin/ab-truelog-cli setup

# Inspect the service.
sudo launchctl print system/com.autobricks.truelog.client

mTLS reconfiguration currently requires the Pairing Code again for enrollment.
Installing a newer .pkg preserves settings and certificates and restarts an
already configured service.

Configuration is stored in /etc/autobricks-truelog-cli/client.toml. Private keys
are kept in protected certificate generation directories under the same directory.
The daemon runs as _abtruelog, owns its local socket and grants access to the
selected CLI user. The socket is not world-writable.

The server firewall must allow access to its configured RPC TCP port from the
intended client network. The client package does not modify the server firewall.

Autobricks True Log 0.3.61 — Ubuntu 22.04 / 24.04 (amd64, arm64)

Choose a tag to compare

@pregene pregene released this 01 Oct 05:10

Autobricks True Log 0.3.61

Changes

  • Add ab-truelog-cli info --file FILEPATH to query a server-side WORM file's stored metadata through the existing client daemon and RPC gateway. Directly created WORM files do not need True Log registration.
  • Accept the full mount path, a mount-relative path with a leading slash, and a mount-relative path without a leading slash. All forms resolve inside the configured WORM mount.
  • Return the stored metadata fields as JSON, including the committed byte offset, checksum, retention fields, and SHA-256 checkpoint state. The query does not rehash file contents or modify storage; hidden metadata remains hidden.
  • Standardize server, gateway, and client help layouts and provide client/gateway version output.
  • Complete all eight packages before finalizing the package matrix and its checksum manifest.
ab-truelog-cli info --file /mnt/worm-storage/example-files/example.log
ab-truelog-cli info --file /example-files/example.log
ab-truelog-cli info --file example-files/example.log

Installation, debconf reconfiguration, service definitions, remove, and purge scripts are unchanged. Existing WORM append, retention, receipt, and checksum-chain behavior is preserved.

Update the server and client together. Running server, RPC, and client processes must be restarted to use the new request type.

Packages

Eight Debian packages are provided: server (autobricks-truelog) and client (autobricks-truelog-cli) for Ubuntu 22.04 and 24.04, each in amd64 and arm64 variants. Verify downloads against SHA256SUMS.

Validation

  • 38 Rust tests passed; the mount-dependent FUSE test was not run.
  • 11 lifecycle/package-finalization fixture tests passed.
  • All three file-path forms returned identical metadata through the running client and server on Ubuntu 22.04 amd64. Path traversal was rejected.
  • Package contents, architecture, GLIBC requirements, and SHA-256 checksums were checked. Packaged amd64 help/version commands were checked on their compatible Ubuntu environments.
  • ARM64 packages were cross-compiled in amd64 Docker containers; ARM64 execution and end-to-end mTLS testing were not performed.

This release provides binary packages. Application source is not included in the public release assets.

Autobricks True Log 0.3.55 — Ubuntu 22.04 / 24.04 (amd64, arm64)

Choose a tag to compare

@pregene pregene released this 26 Sep 07:34

Autobricks True Log 0.3.55 — Installation and Usage

Applies to autobricks-truelog and autobricks-truelog-cli 0.3.55.

Product overview · Download True Log 0.3.55

Autobricks Log users should follow Log installation and Log usage. This guide covers True Log's own server, client, commands, and services.

Choose your True Log setup

Use case Required components Follow these sections
Collect local syslog messages on a server True Log server; RPC can be none Server installation → Local syslog integration
Submit records from a remote application True Log server with TCP/mTLS; client on the application machine Server installation → Client installation → Client writes
Submit records from Express Same server/client setup; authorize the Node.js runtime account Client installation → Express integration
Inspect stored chains Administrator access to the True Log server Server-side inspection

The server stores records and maintains checksum chains. The client forwards requests over a persistent TCP or mTLS connection and returns the server's write receipt.

Application → ab-truelog-cli → local client daemon → TCP/mTLS
            → ab-truelog-rpc.service → ab-truelog.service → WORM storage

Select and verify packages

Select packages for each machine's Ubuntu release and architecture. The server and client may run on different machines and architectures.

. /etc/os-release
printf '%s\n' "$VERSION_ID"
dpkg --print-architecture
Ubuntu Architecture Server Client
22.04 amd64 autobricks-truelog-0.3.55-ubuntu-22.04-amd64.deb autobricks-truelog-cli-0.3.55-ubuntu-22.04-amd64.deb
22.04 arm64 autobricks-truelog-0.3.55-ubuntu-22.04-arm64.deb autobricks-truelog-cli-0.3.55-ubuntu-22.04-arm64.deb
24.04 amd64 autobricks-truelog-0.3.55-ubuntu-24.04-amd64.deb autobricks-truelog-cli-0.3.55-ubuntu-24.04-amd64.deb
24.04 arm64 autobricks-truelog-0.3.55-ubuntu-24.04-arm64.deb autobricks-truelog-cli-0.3.55-ubuntu-24.04-arm64.deb

amd64 means x86-64; arm64 means AArch64. Download the required packages and SHA256SUMS from the release. The automatically generated source archives contain this distribution repository's documents and do not replace the installable packages.

For the 22.04 amd64 example, verify the files you downloaded:

grep -F '  autobricks-truelog-0.3.55-ubuntu-22.04-amd64.deb' SHA256SUMS | sha256sum -c -
grep -F '  autobricks-truelog-cli-0.3.55-ubuntu-22.04-amd64.deb' SHA256SUMS | sha256sum -c -

Each downloaded file must report OK. If you download all eight packages, run sha256sum -c SHA256SUMS.

Install the True Log server

Run this section on the storage server. It installs autobricks-truelog, not the client. For an existing Autobricks Log installation, read transition guidance first.

From the download directory, install dependencies and the server package. Replace the filename for other platforms.

sudo apt-get update
sudo apt-get install -y rsyslog fuse3 debconf systemd openssl python3
sudo dpkg -i ./autobricks-truelog-0.3.55-ubuntu-22.04-amd64.deb

dpkg does not download missing dependencies. If it reports an unmet dependency, install it with APT and rerun the package installation.

Server installation questions

Question Value
SOURCE path Absolute path for private WORM backing data, for example /var/lib/autobricks-log-source. It must differ from the mount path.
Retention days One retention period for the complete storage mount. Programs cannot override it.
RPC support none for local-only use, or tcp / mtls for client connections.
Bind address Local address on which the RPC server listens.
Server address IP address or DNS name clients will actually use. Also used for the mTLS server certificate.
Port RPC TCP port; default 5544.
Certificate fields In mTLS mode, supply the country, region, organization, and other requested certificate information.

Values such as 192.0.2.10 and app01.example.test are examples. Replace them with your deployment values. A wildcard bind address such as 0.0.0.0 is not a client destination. Allow the selected port between client and server through your network controls.

For mTLS, record the Pairing Code shown on the installation-complete screen and use it during client installation. Treat it as an enrollment credential. In this version it has no automatic expiry or use-count limit; enrolled clients receive shared client certificate material rather than distinct per-client certificates.

Check the server

sudo ab-truelog check
systemctl status ab-truelog.service --no-pager
findmnt /mnt/worm-storage

If TCP or mTLS is enabled:

systemctl status ab-truelog-rpc.service --no-pager
sudo ss -ltnp

ab-truelog.service manages WORM and logging together. Do not start an additional standalone WORM service. RPC runs separately as ab-truelog-rpc.service.

Install the True Log client

Run this section on the application machine. It installs autobricks-truelog-cli. The server must already be reachable in the selected TCP/mTLS mode.

Run installation through sudo as the user who will send initial test messages:

sudo apt-get update
sudo apt-get install -y debconf systemd acl
sudo dpkg -i ./autobricks-truelog-cli-0.3.55-ubuntu-22.04-amd64.deb

Client installation questions

Question Value
Connection mode tcp or mtls, matching the server.
Client hostname Hostname recorded in forwarded logs. Defaults to the application machine's hostname; this is not the server address.
Server address Reachable server IP address or DNS name.
RPC port The server's configured port; default 5544.
Pairing Code mTLS only: the eight-digit code displayed by the server.

Pairing Code input is visible. Both 12345678 and 1234-5678 formats are accepted, and whitespace is ignored. These are format examples; enter the actual code from your server.

First-time mTLS enrollment requires a code. Leave it blank only to reuse existing client certificates for the same server during an upgrade or reconfiguration. TCP mode skips enrollment and certificates; it provides no TLS encryption or certificate authentication.

Client settings are stored in /etc/autobricks-truelog-cli/client.toml, with certificates under /etc/autobricks-truelog-cli/clients/. After configuration and any required enrollment succeed, installation enables and starts the client service.

systemctl status ab-truelog-cli.service --no-pager

Retry a failed Pairing Code or enrollment

If installation stops because the code is missing, malformed, rejected, or enrollment fails:

sudo dpkg --configure autobricks-truelog-cli

The installer asks for the Pairing Code again. Replace the previous entry with the correct eight digits and complete configuration. Other saved answers are retained. Purge and reinstallation are not required to correct the code.

If the correct code still fails, check server availability, connection mode, address, and port.

Change a configured client's settings

For an already configured package:

sudo dpkg-reconfigure autobricks-truelog-cli

This reopens the mode, hostname, server address, port, and mTLS code questions. Enter a code to enroll again, or leave it blank to reuse certificates for the same server. Completing configuration restarts the client. Use dpkg --configure for an installation that is still incomplete.

Write records through the client

Run this section on the application machine, after client installation. The sudo-invoking installation user receives immediate socket access through an ACL without a new login.

ab-truelog-cli write --service example-service \
  --data '{"event_id":"example-event-001","action":"policy-update"}'

Do not add sudo or --hostname to application writes. The client daemon inserts its configured hostname. --service identifies the program's log chain; it is not a path or an authorization setting. Keep the service name fixed by deployment configuration.

The response contains:

hostname, service
before.file, before.filesize, before.checksum
after.file, after.filesize, after.checksum

The before and after fields are consistent checkpoints for that write. Store the complete receipt with the application event ID. The server returns success after its configured storage durability boundary; merely connecting to the local socket is not proof of storage.

A timeout, disconnect, or error exit may leave the result uncertain: the server could have committed the record before the response was lost. The client has no durable retry queue or automatic deduplication and does not replay uncertain writes. Preserve the event ID and reconcile before retrying. A business database transaction and a True Log write are not one atomic transaction.

New daily files are created on the server:

/mnt/worm-storage/example-service/truelog-YYYY-MM-DD.log

The first received message creates the file. Trusted server receive time determines the daily filename. Applications do not write directly to SOURCE or the WORM mount.

Express and Node.js integration

Install the True Log clien...

Read more

Autobricks Log 0.2.31 (linux)

Choose a tag to compare

@pregene pregene released this 25 Sep 05:55

Autobricks Log stores selected rsyslog messages as daily log files on the
Autobricks WORM filesystem.

Packages

Choose the package matching the Ubuntu release and CPU architecture:

  • Ubuntu 22.04 amd64
  • Ubuntu 22.04 arm64
  • Ubuntu 24.04 amd64
  • Ubuntu 24.04 arm64

Installation

Download the matching .deb file and install it with APT:

sudo apt-get update
sudo apt-get install ./autobricks-log-0.2.31-ubuntu-24.04-amd64.deb

During installation, select:

  1. the private SOURCE directory used for WORM backing data;
  2. the system-wide retention period in days.

The package installs /usr/bin/ablog and enables ab-worm.service and
autobricks-log.service. The fixed WORM mount is /mnt/worm-storage.

Verify the installation:

sudo ablog check
systemctl status ab-worm.service autobricks-log.service rsyslog.service
findmnt /mnt/worm-storage

Route program logs

Applications continue to use the normal syslog API. Configure rsyslog to send
only selected program names to Autobricks Log. For example, an rsyslog omprog
action for example-service uses:

if $programname == "example-service" then {
    action(
        type="omprog"
        binary="/usr/bin/ablog ingest example-service"
        confirmMessages="on"
        action.resumeRetryCount="-1"
        queue.type="Disk"
        queue.filename="autobricks_log"
        queue.saveOnShutdown="on"
    )
}

Use the complete template and queue configuration in HOWTO.md. Validate and
restart rsyslog after making changes:

sudo rsyslogd -N1
sudo systemctl restart rsyslog.service

Send a test message:

logger --tag example-service --priority local0.notice \
    "policy decision completed"

The daily file is created as:

/mnt/worm-storage/example-service/ablog-YYYY-MM-DD.log

Verify stored files with:

sudo ablog verify example-service

See INSTALL.md, HOWTO.md, and README.md for the complete installation,
sshd-only routing, storage, retention, and removal instructions.