feat: add Obsidian CLI API service
Build and Push Docker Container / build-and-push (push) Successful in 4m26s

- Add Docker image for the official Obsidian desktop app and CLI.

- Start Obsidian headlessly with Xvfb and DBus setup.

- Expose a safe structured HTTP command API without shell execution.

- Add JWT-based vault, path, and command authorization.

- Support single-vault and multi-vault container mounts.

- Add TypeScript SDK helpers for Obsidian CLI commands.

- Add n8n community node package with Obsidian operations.

- Add docs, compose config, tests, and production image workflow.
This commit is contained in:
2026-06-24 09:11:13 +02:00
commit 902a3df8b5
34 changed files with 5153 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
# Copy to .env and adjust.
# JWT signing secret. Use the same value to create JWTs with scripts/create_jwt.py.
OBSIDIAN_JWT_SECRET=change-this-long-random-secret
# Host path to your default/single Obsidian vault.
# Examples:
# OBSIDIAN_VAULT_PATH=/home/daniel/Documents/Obsidian/MainVault
# OBSIDIAN_VAULT_PATH=/mnt/storage/ObsidianVault
OBSIDIAN_VAULT_PATH=./vault
# Optional: mount a parent folder containing additional vaults at /vaults.
# Then register all vaults by name using container paths.
# Example:
# OBSIDIAN_VAULTS_ROOT=/home/daniel/Documents/Obsidian
# OBSIDIAN_VAULTS=main=/vault,work=/vaults/Work,personal=/vaults/Personal
OBSIDIAN_VAULTS_ROOT=./vaults
OBSIDIAN_VAULTS=
# Host port for the HTTP API.
OBSIDIAN_API_PORT=8080
# Official Obsidian desktop/CLI version installed in the image.
OBSIDIAN_VERSION=1.12.7
# Official CLI binary inside the container.
OBSIDIAN_CLI_BIN=obsidian
# Seconds to wait for the desktop app to expose the official CLI socket.
OBSIDIAN_STARTUP_TIMEOUT=60
# Command timeout limits in seconds.
COMMAND_TIMEOUT=60
MAX_COMMAND_TIMEOUT=300