Your first secret in 10 minutes
This tutorial starts the disposable review stack, creates a project and secret, reveals the value once, and verifies that the read was written to the audit chain. Use only the fake values the review stack provides.
1. Start the review stack
Requirements: Docker Compose v2.24+ and about 4 GB of free disk space. The first run builds the server and web images, so it can take several minutes.
./deploy/compose/review.sh up
./deploy/compose/review.sh passwordThe second command prints the one-time password for admin@openvault.local. Keep it in the terminal; do not put it in a file inside the repository.
Open https://localhost:8443 and sign in. The first visit shows a certificate warning because Caddy uses a local CA. Choose Advanced → Proceed to localhost (unsafe) in Chrome, or Advanced → Accept the Risk and Continue in Firefox.
Change the bootstrap password
The review stack is disposable, but changing the password is still good practice. Use the account menu after sign-in; the change is audited.
2. Create a project in the UI
- Open Projects and choose Create project.
- Name it
tutorialand save. - Open
tutorial → Secretsand create a secret nameddemo-token. - Enter a fake value such as
tutorial-value-1and save.
The value is encrypted before it reaches the database. The list shows only metadata; the value is returned only when you explicitly reveal it.
3. Reveal the value and check the audit trail
- Open
demo-tokenand choose Reveal. - Confirm the value is
tutorial-value-1. - Open
tutorial → Auditand filter bysecret.read.
You should see one event for your reveal. The audit page never shows the value itself. The audit chain is HMAC-protected and hash-linked; the next tutorial shows how to verify it from the CLI.
4. Repeat the flow from the CLI
The review shell signs in with the bootstrap password and gives you a temporary credential file. It removes the file when you close the shell.
./deploy/compose/review.sh cliInside the shell:
ov project list
ov project create tutorial
printf 'tutorial-value-2' | ov secret set demo-token --project tutorial --stdin
ov secret get demo-token --project tutorial
ov secret versions demo-token --project tutorial
ov audit verifyExpected results:
project listincludes the seeded projects and, after you create it,tutorial.secret getprints only the value, never the metadata.secret versionsshows the new version and the previous version.audit verifyreports that the chain is intact.
If the project or secret already exists from the UI steps, skip the create command. Re-running ov secret set writes a new immutable version; that is the intended rotation behavior.
5. Stop the stack
./deploy/compose/review.sh downUse ./deploy/compose/review.sh reset if you want to delete the review data and start from a clean state. The reset is explicit and guarded; it never touches a non-review deployment.
What you learned
- A project is the namespace for secrets, certificates, identities, and grants.
- Every write creates an immutable version.
- Every reveal is an audited read; the value is not stored in the browser.
- The CLI uses the same API and the same audit rules as the UI.