From 3004a7100e325c006971cc2e8d0f157338c0ce5c Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 22 Jul 2026 23:52:52 +0300 Subject: =?UTF-8?q?docs:=20DTail=20fork=20=E2=80=94=20documentation,=20age?= =?UTF-8?q?nt=20guide,=20example=20configs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Squashed development of the documentation and example configuration: - AGENTS.md / CLAUDE.md: repository guide describing build/test/benchmark/PGO workflows and the single default read/output path (formerly "turbo"). - doc/ and docs/: query-language reference, log formats, auth-key fast reconnect, journal source reads, performance analyses (dated point-in-time records kept under historical-note disclaimers), and the turbo-vs-normal benchmark report with its result CSVs. - README.md updates; examples/ config + JSON schema aligned with the current Output* server tuning fields (the removed TurboBoost* keys dropped). Co-Authored-By: Claude Opus 4.8 --- examples/dserver-prune-logs.service.example | 8 ++++++++ examples/dserver-prune-logs.timer.example | 9 +++++++++ examples/dserver.service.example | 2 ++ examples/firewalld-dserver-port.sh.example | 21 +++++++++++++++++++++ examples/prune_dserver_logs.sh.example | 10 ++++++++++ 5 files changed, 50 insertions(+) create mode 100644 examples/dserver-prune-logs.service.example create mode 100644 examples/dserver-prune-logs.timer.example create mode 100644 examples/firewalld-dserver-port.sh.example create mode 100644 examples/prune_dserver_logs.sh.example (limited to 'examples') diff --git a/examples/dserver-prune-logs.service.example b/examples/dserver-prune-logs.service.example new file mode 100644 index 0000000..8899487 --- /dev/null +++ b/examples/dserver-prune-logs.service.example @@ -0,0 +1,8 @@ +[Unit] +Description=Delete dserver log files older than 7 days + +[Service] +Type=oneshot +User=dserver +Group=dserver +ExecStart=/var/run/dserver/prune_dserver_logs.sh diff --git a/examples/dserver-prune-logs.timer.example b/examples/dserver-prune-logs.timer.example new file mode 100644 index 0000000..2ec13b6 --- /dev/null +++ b/examples/dserver-prune-logs.timer.example @@ -0,0 +1,9 @@ +[Unit] +Description=Daily cleanup of dserver logs older than 7 days + +[Timer] +OnCalendar=daily +RandomizedDelaySec=1800 + +[Install] +WantedBy=timers.target diff --git a/examples/dserver.service.example b/examples/dserver.service.example index c5e5e59..f299025 100644 --- a/examples/dserver.service.example +++ b/examples/dserver.service.example @@ -1,3 +1,5 @@ +# Installs disabled by default: do not run `systemctl enable dserver` unless you +# want it at boot. Start manually with: sudo systemctl start dserver [Unit] Description=DTail server After=network.target diff --git a/examples/firewalld-dserver-port.sh.example b/examples/firewalld-dserver-port.sh.example new file mode 100644 index 0000000..f10ce08 --- /dev/null +++ b/examples/firewalld-dserver-port.sh.example @@ -0,0 +1,21 @@ +#!/bin/bash +# Allow inbound TCP to dserver (default port 2222) when firewalld is used. +# Run once on the server as root, or fold into your config management. + +set -euo pipefail + +PORT="${DTAIL_FIREWALL_PORT:-2222}" + +if ! command -v firewall-cmd >/dev/null 2>&1; then + echo "firewall-cmd not found; skip or configure your firewall manually." >&2 + exit 0 +fi + +if ! firewall-cmd --state >/dev/null 2>&1; then + echo "firewalld not running; nothing to do." >&2 + exit 0 +fi + +firewall-cmd --permanent "--add-port=${PORT}/tcp" +firewall-cmd --reload +echo "Opened ${PORT}/tcp. Current ports: $(firewall-cmd --list-ports)" diff --git a/examples/prune_dserver_logs.sh.example b/examples/prune_dserver_logs.sh.example new file mode 100644 index 0000000..56a68cd --- /dev/null +++ b/examples/prune_dserver_logs.sh.example @@ -0,0 +1,10 @@ +#!/bin/bash + +declare -r LOGDIR=/var/run/dserver/log + +if [ ! -d "$LOGDIR" ]; then + exit 0 +fi + +# Daily rotated logs: YYYYMMDD.log — remove files not modified in the last 7 days. +/usr/bin/find "$LOGDIR" -type f -name '*.log' -mtime +7 -delete -- cgit v1.2.3