mrkeyoor.com_
Tue 01 Sept 17:41 UTC
Self-Hostedevaluationupdated 26 Aug 2026

vault review

Vault is a central service for storing secrets, issuing short-lived credentials, encrypting application data, and recording access. Applications authenticate to Vault instead of carrying permanent database passwords or cloud keys, while operators define policies, leases, revocation, storage, and audit destinations.

+16stars / 7d
Verdict

Our Vault build succeeded after 550 seconds, but the test command reached 900 seconds with 15 failures, including database tests that could not reach Docker. Use Vault when dynamic credentials, revocation, audit, and centralized policy justify operating a security-critical cluster. Do not choose it as a fancy environment-file replacement, and review the BSL 1.1 terms before building any hosted or embedded product around current versions.

We ran it

Lab card: what happened when we ran vaultScreenshot of vault (developer.hashicorp.com/vault)
Install✓ · 201s998 packages
Build✓ · 550s
Tests✗ timed out · 900s54 passed · 15 failed of 69 (go test)
Repo9256 files~966,855 lines of source · 40.5 MB · 35 CI workflows · Dockerfile

Answers from our run

Does vault build from source?

Dependencies installed in 201 seconds (998 packages), and the build succeeded in 550 seconds. We cloned commit 8bce1fb into a clean Debian container with 3 CPUs and no project-specific setup.

Do vault's tests pass?

Not all of them: 54 of 69 passed and 15 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use vault?

Small teams with a few static secrets and no staff to operate another critical service: Vault adds initialization, unsealing, policies, storage, backups, upgrades, and incident procedures.

What are the alternatives to vault?

OpenBao, Infisical, Conjur. Our Vault build succeeded after 550 seconds, but the test command reached 900 seconds with 15 failures, including database tests that could not reach Docker.

Setup2/5Production is an operating program; source checks took over 27 minutes
Docs5/5Extensive product, operations, API, tutorial, and upgrade material
Community5/5August 2026 release, push, security fixes, and issue activity
Maturity5/5Established security platform with serious operational demands

Discussed on

  1. hnHashicorp Vault v1.0409 points
  2. hnOpenBao – FOSS Fork of HashiCorp Vault314 points
  3. hnZero-day flaws in authentication, identity, authorization in HashiCorp Vault289 points
  4. hnInfisical – open-source HashiCorp Vault alternative284 points
  5. hnHashiCorp Vault forked into OpenBAO181 points

Who it’s for

Platform and security teams managing secrets across many services and environments.
Organizations ready to operate a highly available security control plane.
Systems that benefit from dynamic database or cloud credentials with automatic expiry.
Teams needing encryption operations and access policy behind one audited API.

Who it’s NOT for

Small teams with a few static secrets and no staff to operate another critical service: Vault adds initialization, unsealing, policies, storage, backups, upgrades, and incident procedures.
Vendors assuming current Vault is conventional open source: version 1.15.0 and later use BSL 1.1, and the additional grant restricts paid hosted or embedded competitive offerings.
Contributors without Docker who expect the full test command to pass: the README requires Docker, and our MySQL and PostgreSQL tests failed because no Docker socket was available.
Teams that cannot protect availability of the secret service itself; an outage can block applications from fetching or renewing credentials.
Operators unwilling to rehearse Raft recovery: issue 32099 reports a joining node permanently marking itself removed during slow initial log replay on Vault 1.19 and later.

Setup reality

Our sandbox installed 998 Go packages in 201 seconds and built successfully in 550 seconds. Tests hit the 900-second cap after 54 passed and 15 failed out of 69. The visible MySQL and PostgreSQL failures say they could not connect to Docker at /var/run/docker.sock; the tail does not explain every failure.

A real deployment needs storage, TLS, initialization and unseal procedures, authentication methods, policies, audit devices, backups, monitoring, and clients that renew tokens or leases. Acceptance tests may need cloud or database credentials and can create billable resources.

The 40.5 MB checkout contained 9,256 files and about 966,855 source lines, with 35 CI workflows, a Dockerfile, and no top-level tests directory.

Vault replaces permanent credentials with policy and leases

Vault gives applications one authenticated route to secrets. Static key-value entries are encrypted before reaching storage. Dynamic engines can create database or cloud credentials when requested, attach a lease, and revoke them when time expires. The transit engine can encrypt and decrypt application data without storing that data itself. Policies decide which identity can call each path, and audit devices record the requests needed for investigation.

This is more than a password database. A platform team can reduce the lifetime of credentials and revoke a token tree after an incident. Clients can renew leases while healthy and lose access when policy or employment changes. The benefit appears only when applications integrate correctly. A service that fetches one dynamic password at startup and never handles renewal or revocation has adopted the server without adopting its lifecycle.

High availability is part of setup, not a later optimization

A development binary can start quickly, but a real deployment needs durable storage, TLS, initialization, seal management, authentication, policies, audit output, backups, monitoring, and an upgrade plan. Integrated Raft storage reduces external components but still needs multiple nodes and recovery practice. Cloud auto-unseal can reduce manual key handling while creating a dependency on the cloud key service and its permissions.

Vault's availability becomes application availability when workloads cannot read or renew secrets. Clients need sensible caching and retry behavior, while operators need alerts before tokens or leases expire. Audit devices also sit on a sensitive path: release 2.0.4 includes work to stop canceled requests piling up behind blocked audit writes. Capacity planning must cover storage, audit destinations, and bursts after restart or failover.

What happened when we ran it

Our run cloned commit 8bce1fb into a fresh unprivileged Go 1.24 Bookworm container with 3 CPUs, 8 GB of RAM, and no secrets. Installation succeeded in 201 seconds and pulled 998 packages. The build completed successfully in 550 seconds, more than 9 minutes after the dependency step had already taken over 3 minutes.

The test command reached our 900-second limit. The lab summary records 54 passing and 15 failing package results out of 69 before timeout. In the supplied tail, MySQL and PostgreSQL backend tests fail immediately because they try to create Docker containers and cannot connect to /var/run/docker.sock. Several neighboring physical backend packages pass. The visible log does not identify the reasons for every failure in the aggregate.

The repository contained 9,256 files, roughly 966,855 lines of source, and 40.5 MB before downloaded dependencies and build output. Our scan found 35 CI workflow files, a Dockerfile, and no top-level tests directory. The README explicitly says make test requires Docker, so the database failures reveal a documented environmental requirement. They remain failures in our unprivileged sandbox, and the 900-second timeout leaves the full result incomplete.

Acceptance tests can create real infrastructure and real bills

Vault has many storage, secret, and authentication backends. Unit tests cannot prove that a cloud credential engine still speaks correctly to a provider. The README therefore documents acceptance tests that create, modify, and destroy real resources. It warns that they can incur costs and that bugs may leave resources behind. Required credentials vary by backend, and the focused TEST argument is mandatory.

Run those suites in isolated accounts with budgets, restricted identities, and cleanup checks. Never point a contributor's broad production credentials at an acceptance test. The same care applies to Docker-backed cluster tests, which can copy a local Vault binary into a container and exercise Raft or replication. Our 15-minute cap shows why focused packages are more useful during development than an unbounded all-repository command.

The repository supports importing only its api and sdk Go modules. The README says importing the whole github.com/hashicorp/vault module is unsupported, even if Go modules technically allow it. Consumers using internal test helpers accept breakage the maintainers do not promise to fix. Build extensions through supported plugin interfaces instead of linking product internals.

BSL 1.1 makes current Vault source-available, not conventional open source

The repository license covers Vault 1.15.0 and later under Business Source License 1.1. Its additional-use grant allows production use except when Vault is offered to third parties as part of a paid hosted or embedded competitive product. Each version changes to MPL 2.0 after 4 years. Internal organizational use is described as outside the competitive-offering restriction.

That wording is relevant to secret-management vendors, platforms sold to customers, and products that require bundled Vault to operate. It is not a substitute for legal advice. Review the exact version and intended distribution before development, because violating the license terminates rights. OpenBao is the obvious alternative when community governance and an open-source license are firm requirements.

Release 2.0.4 fixes security issues and introduces upgrade work

Vault 2.0.4 shipped on 2026-08-04. Its notes fix a policy constraint bypass involving mixed-case names, along with identity boundary issues. The release also removes several utilities from UBI container images, raises its Go baseline, and rejects duplicate HCL attributes. These are reasons to read upgrade notes carefully, stage the exact image, and verify operational scripts before rollout.

GitHub recorded a push on 2026-08-25 and 1,431 open issues and pull requests combined. Activity continued on 2026-08-26 across Raft, PKI, LDAP, CLI behavior, and multiple maintained release branches. One new Raft report describes slow joining nodes on versions 1.19 and later marking themselves permanently removed during initial log replay. Treat it as an open report: reproduce its conditions before drawing a fleet-wide conclusion.

Vault earns its operating cost where credentials must be created, audited, rotated, and revoked across many systems. The measured build proves the source compiled in our container, while the timed-out test run proves full contributor validation needs Docker and more time. Adoption should start with threat modeling and failure drills, not with copying a development command into production.

Alternatives

ProjectWhat it isPick it when
OpenBaoA community-governed secrets manager forked from Vault under an open-source license.pick this instead when Vault-compatible concepts and an OSI-style community project matter more than HashiCorp's product line.
Infisical gh↗A secrets platform with developer-facing workflows, service identities, and self-hosting.pick this instead when application secret delivery and team usability outweigh Vault's breadth of engines.
ConjurA secrets and machine-identity service focused on policy-controlled application access.pick this instead when CyberArk integration and machine identity are already part of the security program.

What people are saying

  1. [github-trending] hashicorp/vault
  2. [velocity-scout] voyb/aegis-vault

Sources

  1. Vault README
  2. Vault Business Source License
  3. Vault 2.0.4 release
  4. Vault Raft joining-node issue 32099
  5. Vault documentation

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →