Introduction
pika is a self-hosted server that combines three things into a single binary:
- A configuration store — versioned JSON / YAML / TOML configs with per-environment variants and rich inheritance from external sources.
- A secrets manager — opt-in at-rest encryption with key rotation, plus inheritance integrations for pulling values from Vault, Kubernetes, cloud secret managers, and more.
- A personal vault — end-to-end encrypted password and TOTP vault per user, with recovery kits and session locking.
Everything is administered through a built-in web UI; consumers fetch resolved data over a small, well-defined HTTP API.
Why pika?
- One binary. No external database, no companion process — pika ships with an embedded bw (BadgerDB) store. Mount a single volume, point it at a port, done.
- Edit-aware. Every save is versioned. You can roll back, diff, or pin a consumer to a specific version using either an integer or a semver constraint.
- Inheritance instead of templating. Compose a final config out of pieces sourced from Vault, Kubernetes, Consul, etcd, AWS Secrets Manager / SSM, GCP Secret / Parameter Manager, Azure Key Vault, plain HTTP, or other pika files — without macros or templating languages.
- Hot reload. Authentication strategies, hooks, endpoints, and external sources are managed at runtime from the UI. No restart needed.
- Cluster-ready. Run a 3+ node HA cluster with QUIC-based peer discovery, leader-elected writes, and replicated reads.
Try it in 30 seconds
sh
docker run -d --name pika -v pika:/data -p 8080:8080 ghcr.io/rakunlabs/pika:latestOpen https://localhost:8080, accept the first-start self-signed certificate, create the initial admin account, and you have a working server.
To consume a config, create a file in the UI, then mint an API token under Settings → Tokens and read it:
sh
curl -H "Authorization: Bearer pika_..." https://localhost:8080/data/myapp/configWhere to go next
- Installation — Docker, Kubernetes, or a static binary.
- Configuration — environment variables and the YAML config file.
- Concepts — folders, configs, versions, variants, and inheritance.
- Consuming data — the
/data/*endpoint, authentication, and query parameters. - Admin API — the full REST surface for management operations.
Project status
Pika is actively developed at rakunlabs/pika. Issues and pull requests are welcome.