Commit Graph
5 Commits
Author SHA1 Message Date
Thijs Herman 159eab5d1c chore: multi-arch Docker build (amd64, arm64, armv7) (#4)
* chore: multi-arch Docker build (amd64, arm64, armv7)

- Remove hardcoded GOARCH=amd64 from Dockerfile, use TARGETARCH ARG
- Add QEMU + buildx to CI for cross-compilation
- Build for linux/amd64, linux/arm64, linux/arm/v7

* chore: update action versions, add dependabot

- actions/checkout v4 → v6
- actions/setup-go v5 → v6
- Add dependabot.yml (monthly checks for Go, Actions, Docker)
2026-02-21 12:15:43 +01:00
Thijs Herman 9f8ebf2408 feat: replace Bitwarden CLI with native Go API client (#2)
BREAKING: Removes Node.js/Bitwarden CLI dependency entirely.

## What changed
- New native HTTP client talks directly to Vaultwarden API
- Bitwarden-compatible crypto in pure Go:
  - AES-256-CBC + HMAC-SHA256 decryption
  - PBKDF2-SHA256 and Argon2id key derivation
  - HKDF key stretching (with legacy fallback)
- Auto token refresh (never expires)
- Background vault sync (configurable interval, default 5min)
- Docker image: ~233MB → ~15MB (pure Alpine, no Node.js)

## New env vars
- VAULTWARDEN_EMAIL (replaces CLIENT_ID/CLIENT_SECRET)
- SYNC_INTERVAL (default: 5m)

## Removed
- internal/vaultwarden/client_cli.go (CLI interaction)
- Bitwarden CLI dependency (Node.js + npm package)
- VAULTWARDEN_CLIENT_ID, VAULTWARDEN_CLIENT_SECRET env vars

## Added
- internal/vaultwarden/crypto.go (encryption/decryption)
- internal/vaultwarden/crypto_test.go (11 unit tests)
- internal/vaultwarden/api_client.go (HTTP client)

## Unchanged
- External API surface (GET /secret/:name, POST /refresh, GET /health)
- All security middleware (auth, IP whitelist, rate limiting)
2026-02-20 13:28:38 +01:00
Turbootzz 3055c413ef added CLI improvments to docker 2025-10-24 19:01:39 +02:00
Turbootzz 4131345add security update 2025-10-24 13:25:05 +02:00
Turbootzz 5f937f6213 Added implementation 2025-10-17 13:32:58 +02:00