Skip to content

Releases: deadhedd/openbsd-toolkit

v1.1.0 – Obsidian Git Client

28 Aug 15:52

Choose a tag to compare

Introduces the Obsidian Git Client module, enabling workstations to pull and push Obsidian vaults over SSH by installing Obsidian, side-loading the obsidian-git plugin, and wiring up SSH/Git connectivity

Configures SSH known_hosts, keys, and agent; sets the Git remote/branch; seeds an optional initial commit; and can auto-generate and copy SSH keys to the remote server

Bundles a TAP-style test suite to confirm plugin installation, SSH key setup, and proper remote configuration

v1.0.3 - Secrets refactor and SSH key handling in Obsidian Git Host Module

24 Aug 19:27
7c2ff7c

Choose a tag to compare

What's Changed

Full Changelog: v1.0.2...v1.0.3

v1.0.2 – Restore SSH Setup & Minor Improvements

23 Aug 14:42

Choose a tag to compare

Overview

This release fixes a critical regression by reintroducing the SSH setup steps for the Obsidian Git Host module. These were mistakenly removed in a prior version and are essential for proper authentication and connectivity.

Alongside this major fix, the release introduces better logging, improved configuration examples, and expanded contributor documentation.

🔑 Highlights

Obsidian Git Host Module

Restored .ssh setup for OBS_USER and GIT_USER.

Ensures proper authentication and connectivity.

Test coverage expanded from 43 → 59 checks.

Logging

Enhanced logs/logging.sh with improved trap handling.

Exit codes are now captured, ensuring failures are marked before finalizing logs.

Configuration

Expanded secrets.env.example with a new Obsidian Git Client section.

Added CLIENT_VAULT variable for local vault configuration.

Documentation

Added AGENTS.md defining shell script scope and expectations (POSIX compliance, shellcheck usage).

📌 Upgrade Notes

If using the Obsidian Git Client, review your secrets.env and add the new CLIENT_VAULT variable as needed.

No breaking changes beyond the restored SSH setup functionality.

1.0.1 — Targeted Debug Logging & Base System Improvements

10 Aug 01:12
3989ff7

Choose a tag to compare

This patch release introduces targeted debug logging and a major refactor of the Base System module, alongside secrets handling improvements and updated documentation.

Key changes:

Logging: Added --debug=FILE option for selective debug output.

Base System: Refactored with helper functions, idempotency scaffolding, and expanded tests (15 → 32).

Secrets: load-secrets.sh now exports only requested module variables; secrets.env.example reorganized into per-module sections.

Modules: Updated GitHub and Obsidian modules for simplified setup and reduced test complexity.

OpenBSD Toolkit 1.0

02 Aug 17:22

Choose a tag to compare

Initial stable release of the OpenBSD Toolkit — a modular shell-based framework for secure, scriptable OpenBSD automation.
Features

Modular design — install only the components you need

POSIX shell scripts — no dependencies, no lock-in

Git-backed Obsidian vault host — deploy and sync via Git

Base system setup — users, doas, networking, and shell config

Automated tests — verify configuration integrity at any time

Robust logging — plain ASCII logs with optional verbose debug mode

Highlights

Declarative, testable setup scripts

Useful for extending Shortcuts, replacing Obsidian plugins, or running personal automation on OpenBSD

v0.9.2 – Setup Script Fixes + Logging Update

24 Jul 19:03

Choose a tag to compare

This patch release fixes critical breakage in setup scripts introduced in v0.9.1 and completes the transition to the new logging system across all modules.
🔧 Fixes

Resolved regressions in setup scripts caused by partial logging system migration.

All setup scripts now correctly use the centralized logging system.

🚨 Breaking Change

The --log flag is no longer supported in setup scripts.
Use --debug if you want full output logged to a file.

Pre-release: Enhanced Logging and Project Cleanup

23 Jul 20:15

Choose a tag to compare

What's new in v0.9.1 (Pre-release)

This pre-release introduces a major internal upgrade to the logging system, along with a project-wide structural cleanup to prepare for the upcoming v1.0 release.

🔍 Highlights

  • Enhanced Logging Subsystem

    • Centralized logging implementation using FIFO + tee
    • Captures set -x traces for full debug visibility
    • Optional log buffering with --log / --debug flags
    • Per-module test logs written automatically
  • Project Structure Overhaul

    • Renamed directories for clarity (scripts/, modules/, etc.)
    • Improved layout for testing and setup modules
    • Cleaner repo organization for contributors and automation

This version is feature-complete for logging and structure. Final polish, documentation, and automation refinements will follow in v1.0.

v0.9.0 – Git Permissions & Hook Fixes

18 Jul 23:43

Choose a tag to compare

This pre‑1.0 release finalizes critical configuration work for the Git backend, ensuring proper permissions, group access, and reliable sync behavior. Most of these changes were required to make the system function correctly end-to-end.
🔧 Key Changes

✅ Configured safe.directory to silence Git security warnings.

✅ Created a shared Unix group for git and obsidian users.

✅ Set correct file permissions and ownership on the bare repo (git:obsidian, g+rwX, setgid).

✅ Added sharedRepository = group to the Git config.

✅ Fixed post-receive hook to use the correct SHA and run as obsidian.

Also includes improved logging in setup and test scripts, making troubleshooting and auditing easier.

client test suite complete

09 Jul 21:02

Choose a tag to compare

Pre-release
v0.4.1

Client side test suite complete

v0.4.0 – Centralized Secrets Management

06 Jul 00:53

Choose a tag to compare

This release introduces centralized configuration management using a .env-style secrets file, improving security, portability, and ease of customization across all setup and test scripts.
Highlights:

New secrets.env and secrets.env.example files for environment-specific config.

Scripts automatically bootstrap a real secrets file if missing.

All scripts now load secrets dynamically via load_secrets.sh.

Hardcoded configuration is fully removed.

Paths to secrets are standardized and portable across systems.

This sets the stage for even more robust configuration handling and simpler test-driven development workflows.