Skip to content

Shipper

Shipper is a lightweight agent that reads log files from your application and sends them to Nadi.

Overview

Shipper is written in Go and designed to be:

  • Lightweight - Minimal CPU and memory usage (~10MB RAM)
  • Reliable - Automatic retries and delivery tracking
  • Efficient - Batched requests and compression
  • Simple - Easy to install and configure

How It Works

  1. Your application writes error events to log files
  2. Shipper monitors the log directory
  3. Shipper reads new events and sends them to Nadi
  4. Shipper tracks what's been sent (no duplicate delivery)
  5. Optionally cleans up old log files

Requirements

  • Linux (x64, ARM64), macOS (x64, ARM64), or Windows (x64)
  • Network access to nadi.pro

Quick Start

Install

bash
sudo bash < <(curl -sL https://raw.githubusercontent.com/nadi-pro/shipper/master/install)
powershell
powershell -command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/nadi-pro/shipper/master/install.ps1', '%TEMP%\install.ps1') && %TEMP%\install.ps1 && del %TEMP%\install.ps1"

Configure

Edit the configuration file:

OSLocation
Linux/opt/nadi-pro/shipper/nadi.yaml
macOS/usr/local/nadi-pro/shipper/nadi.yaml
WindowsC:\ProgramData\Nadi-Pro\Shipper\nadi.yaml
yaml
nadi:
  endpoint: https://nadi.pro/api/
  apiKey: your-api-key
  token: your-application-key
  storage: /var/log/nadi

Run

bash
shipper --record

Features

FeatureDescription
File WatchingMonitors log directory for new files
BatchingGroups events for efficient network usage
CompressionCompresses payloads to reduce bandwidth
RetriesAutomatic retry with exponential backoff
Progress TrackingKnows what's been sent, survives restarts
Log RotationOptionally cleans up old logs

Supported Platforms

PlatformArchitectureSupport
Linuxx64Full
LinuxARM64Full
macOSx64 (Intel)Full
macOSARM64 (Apple Silicon)Full
Windowsx64Full

Next Steps

Released under the MIT License.