{"id":49102414,"url":"https://github.com/vaulthalla/vaulthalla","last_synced_at":"2026-06-03T19:00:14.546Z","repository":{"id":334601885,"uuid":"996199794","full_name":"vaulthalla/vaulthalla","owner":"vaulthalla","description":"Debian-first • Linux-native filesystem (libfuse3) • C++ core daemon • ACID PostgreSQL metadata \u0026 auth • AES-256-GCM/NI encryption • Zero-trust, sovereignty-first storage","archived":false,"fork":false,"pushed_at":"2026-05-30T20:31:49.000Z","size":11559,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-30T22:21:17.382Z","etag":null,"topics":["cloud","encryption","filesystems","self-hosted"],"latest_commit_sha":null,"homepage":"https://vaulthalla.io","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vaulthalla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-04T15:45:15.000Z","updated_at":"2026-05-30T20:29:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vaulthalla/vaulthalla","commit_stats":null,"previous_names":["vaulthalla/vaulthalla-core"],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/vaulthalla/vaulthalla","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaulthalla%2Fvaulthalla","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaulthalla%2Fvaulthalla/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaulthalla%2Fvaulthalla/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaulthalla%2Fvaulthalla/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vaulthalla","download_url":"https://codeload.github.com/vaulthalla/vaulthalla/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaulthalla%2Fvaulthalla/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33876333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud","encryption","filesystems","self-hosted"],"created_at":"2026-04-21T00:06:33.426Z","updated_at":"2026-06-03T19:00:14.535Z","avatar_url":"https://github.com/vaulthalla.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Vaulthalla v1.5.0 release banner](https://media.vaulthalla.io/Vaulthalla_v1_5_summer_banner.png)\n\n[![build](https://img.shields.io/github/actions/workflow/status/vaulthalla/vaulthalla/build_and_test.yml?label=build)](https://github.com/vaulthalla/vaulthalla/actions)\n[![release](https://img.shields.io/github/v/release/vaulthalla/vaulthalla?display_name=tag\u0026sort=semver)](https://github.com/vaulthalla/vaulthalla/releases)\n[![license](https://img.shields.io/github/license/vaulthalla/vaulthalla?v=2)](https://github.com/vaulthalla/vaulthalla/blob/main/LICENSE)\n[![debian-first](https://img.shields.io/badge/debian-first-8A2BE2)](https://github.com/vaulthalla/vaulthalla)\n[![linux-native](https://img.shields.io/badge/linux-native-2ea44f)](https://github.com/vaulthalla/vaulthalla)\n[![AES-256-GCM/NI](https://img.shields.io/badge/AES--256--GCM%2FNI-encrypted-cyan)](https://github.com/vaulthalla/vaulthalla)\n[![S3-guardrails](https://img.shields.io/badge/S3-guardrails-blue)](https://github.com/vaulthalla/vaulthalla)\n[![TPM-aware](https://img.shields.io/badge/TPM-aware-gold)](https://github.com/vaulthalla/vaulthalla)\n\n# Vaulthalla\n\n**The final cloud for operators who want their storage mounted, encrypted, observable, and under command.**\n\nVaulthalla is a Linux-native self-hosted cloud platform built around a compiled C++ daemon, a native FUSE filesystem, encrypted storage workflows, TPM-aware secret handling, RBAC, a CLI control plane, and a packaged web console.\n\nIt is not a file-themed web app pretending to be infrastructure.\n\nIt is infrastructure.\n\n## v1.5.0: S3 Safety Lockdown\n\nVaulthalla v1.5.0 is a critical S3 safety and remote-sync hardening release.\n\nIf you use S3-compatible storage, run v1.5.0 or newer. This release adds the guardrails Vaulthalla needs before real cloud credentials, real buckets, and real billing accounts are placed behind it.\n\nv1.5.0 adds:\n\n- S3 request budgets for LIST, HEAD, GET, PUT, COPY, DELETE, and downloaded-byte limits\n- sync event metrics for planned and actual cloud request pressure\n- remote object indexing and manifest-backed remote state tracking\n- safer default sync intervals to prevent accidental cloud churn\n- archive-tier and restore-state awareness for cold S3 objects\n- safer delete propagation for S3-backed vaults\n- encryption provenance fixes so local-at-rest metadata is not confused with remote-object metadata\n- stronger remote index mutation behavior for plaintext and encrypted upstream objects\n- database, model, controller, and test coverage for S3 cost guardrails\n\nThis is a minor version bump with major operational consequences.\n\n## What Vaulthalla Ships\n\n| Layer | Model |\n| --- | --- |\n| Core runtime | Compiled C++ daemon managed by systemd |\n| Filesystem | Native FUSE mount, defaulting to `/mnt/vaulthalla` |\n| CLI | `vh` operator control plane over local runtime IPC |\n| Web console | Packaged Next.js standalone runtime |\n| Database | PostgreSQL-backed metadata and runtime state |\n| Secrets | Hardware TPM2 when available; managed `swtpm` fallback when not |\n| Encryption | AES-256-GCM/NI-oriented encrypted storage workflows |\n| Access control | RBAC-driven admin and vault role model |\n| Storage | Local vaults plus S3-compatible cloud workflows |\n| Deployment | Debian-first packaging with explicit Nginx/Certbot setup |\n\n## Install\n\n### Recommended installer\n\n```bash\ncurl -fsSL https://apt.vaulthalla.sh/install.sh | bash\n```\n\nInteractive mode:\n\n```bash\ncurl -fsSL https://apt.vaulthalla.sh/install.sh | bash -s -- --interactive\n```\n\nLocal clone:\n\n```bash\n./bin/vh/install.sh\n./bin/vh/install.sh --interactive\n```\n\nThe installer configures the Vaulthalla APT repository, installs the Debian package, prepares runtime services, and hands host-specific setup to the `vh` CLI.\n\n### Manual Debian / Ubuntu install\n\n```bash\nsudo curl -fsSL https://apt.vaulthalla.sh/pubkey.gpg \\\n  -o /etc/apt/trusted.gpg.d/vaulthalla.gpg\n\necho \"deb [arch=amd64] https://apt.vaulthalla.sh stable main\" | \\\n  sudo tee /etc/apt/sources.list.d/vaulthalla.list \u003e /dev/null\n\nsudo apt update\nsudo apt install vaulthalla\n```\n\nLean install:\n\n```bash\nsudo apt install --no-install-recommends vaulthalla\n```\n\nSkip package-time DB bootstrap:\n\n```bash\nVH_SKIP_DB_BOOTSTRAP=1 sudo -E apt install vaulthalla\n```\n\nSkip package-time Nginx configuration:\n\n```bash\nVH_SKIP_NGINX_CONFIG=1 sudo -E apt install vaulthalla\n```\n\n## First Run\n\nClaim or verify admin ownership:\n\n```bash\nvh setup assign-admin\n```\n\nConfigure local PostgreSQL:\n\n```bash\nvh setup db\n```\n\nConfigure remote PostgreSQL:\n\n```bash\nvh setup remote-db\n```\n\nConfigure Nginx:\n\n```bash\nsudo vh setup nginx --domain \u003cdomain\u003e\n```\n\nConfigure Nginx with Certbot:\n\n```bash\nsudo vh setup nginx --domain \u003cdomain\u003e --certbot\n```\n\nConfigure Nginx with a dedicated S3 host and Cloudflare DNS-01 certificates:\n\n```bash\nsudo vh setup nginx --domain vaulthalla.dev --s3-domain s3.vaulthalla.dev --certbot-dns-cloudflare --cloudflare-credentials /etc/vaulthalla/certbot/cloudflare.ini\n```\n\nRemove only Vaulthalla-managed Nginx integration:\n\n```bash\nsudo vh teardown nginx\n```\n\n## Operate\n\nCheck runtime status:\n\n```bash\nvh status\n```\n\nInspect services:\n\n```bash\nsudo systemctl status vaulthalla.service\nsudo systemctl status vaulthalla-cli.service\nsudo systemctl status vaulthalla-cli.socket\nsudo systemctl status vaulthalla-web.service\nsudo systemctl status vaulthalla-swtpm.service\n```\n\nFollow logs:\n\n```bash\nsudo journalctl -fu vaulthalla.service\nsudo journalctl -fu vaulthalla-web.service\n```\n\n## Host-Level by Design\n\nVaulthalla runs as system software.\n\nA normal installation may prepare:\n\n- the `vaulthalla` system user and group\n- systemd units\n- `/etc/vaulthalla`\n- `/var/lib/vaulthalla`\n- `/run/vaulthalla`\n- `/var/log/vaulthalla`\n- the default FUSE mount path at `/mnt/vaulthalla`\n- PostgreSQL runtime resources when local DB setup is enabled\n- hardware TPM2 integration when available\n- managed `swtpm` fallback when hardware TPM is unavailable\n- packaged web console assets under `/usr/share/vaulthalla-web`\n- writable web runtime cache under `/var/cache/vaulthalla-web`\n\nThis is intentional. Vaulthalla is built to behave like host infrastructure, not like a single-process toy.\n\n## Runtime Paths\n\n| Purpose | Path |\n| --- | --- |\n| Main config | `/etc/vaulthalla/config.yaml` |\n| Runtime directory | `/run/vaulthalla` |\n| State directory | `/var/lib/vaulthalla` |\n| Logs | `/var/log/vaulthalla` |\n| FUSE mount | `/mnt/vaulthalla` |\n| Software TPM state | `/var/lib/swtpm/vaulthalla` |\n| SQL deploy assets | `/usr/share/vaulthalla/psql` |\n| Web runtime payload | `/usr/share/vaulthalla-web` |\n| Web runtime cache | `/var/cache/vaulthalla-web` |\n| Nginx template | `/usr/share/vaulthalla/nginx/vaulthalla.conf` |\n\n## Why It Exists\n\n### Native Filesystem Surface\n\nVaulthalla exposes storage through FUSE because the filesystem is part of the product.\n\nFiles can be mounted, traversed, opened, copied, deleted, shared, and synchronized while Vaulthalla enforces metadata, encryption, policy, and access control underneath.\n\n### CLI First\n\nThe CLI is the control plane.\n\nAdmin ownership, DB setup, Nginx integration, teardown, status checks, and privileged host mutations live behind explicit commands instead of hidden web-side magic.\n\n### TPM-Aware Secrets\n\nVaulthalla treats host secrets as infrastructure.\n\nOn machines with TPM2 hardware, Vaulthalla uses the host TPM path. On VPS and virtualized systems without TPM hardware, the package can provision managed `swtpm` fallback.\n\nThe goal is simple: avoid silent plaintext downgrades while staying deployable on real servers.\n\n### S3 With Guardrails\n\nS3-backed storage needs cost awareness.\n\nv1.5.0 adds request budgets, transfer metrics, remote object indexing, manifest tracking, archive-tier awareness, and safer reconciliation logic so cloud sync can be trusted against real buckets.\n\n## Removal and Reinstall\n\nRemove the package while preserving local data:\n\n```bash\nsudo apt remove vaulthalla\n```\n\nPurge package configuration:\n\n```bash\nsudo apt purge vaulthalla\n```\n\nDefault behavior is conservative:\n\n- `apt remove` preserves local PostgreSQL role/database data\n- interactive purge may offer local DB/role teardown\n- noninteractive purge preserves local PostgreSQL resources\n- manual DB teardown is explicit\n\n```bash\nsudo vh teardown db\n```\n\nIf reinstalling with preserved local PostgreSQL resources, use the interactive reuse flow, destructive recreate flow, or manually reseed the runtime DB password:\n\n```bash\nsudo install -d -m 0755 /run/vaulthalla\nsudo install -m 0600 -o vaulthalla -g vaulthalla /path/to/db_password /run/vaulthalla/db_password\nsudo systemctl restart vaulthalla\n```\n\n## Build from Source\n\nDevelopment preview only:\n\n```bash\ngit clone https://github.com/vaulthalla/vaulthalla.git\ncd vaulthalla\nsudo make install -- -d\n```\n\n`-d` enables volatile developer mode and may reset local Vaulthalla state.\n\nDo not use developer mode on hosts with production data.\n\n## Documentation\n\n- Debian operator/install policy: [`debian/README.Debian`](debian/README.Debian)\n- Installed Debian policy doc: `/usr/share/doc/vaulthalla/README.Debian`\n- Packaging and distribution notes: [`DISTRIBUTION.md`](DISTRIBUTION.md)\n- S3 guardrails: [`docs/admin/s3-cost-guardrails.md`](docs/admin/s3-cost-guardrails.md)\n- Web app notes: [`web/README.md`](web/README.md)\n\n## Support\n\nIssues and pull requests are welcome.\n\nIf reporting an install or runtime issue, include:\n\n```bash\nvh status\nsudo systemctl status vaulthalla.service --no-pager\nsudo systemctl status vaulthalla-web.service --no-pager\nsudo journalctl -u vaulthalla.service -n 150 --no-pager\nsudo journalctl -u vaulthalla-web.service -n 150 --no-pager\n```\n\nGood reports are scoped, reproducible, and clear about which subsystem is involved: packaging, FUSE, PostgreSQL, TPM/swtpm, Nginx, Certbot, S3, sync, RBAC, CLI, or web runtime.\n\n---\n\nWelcome to the kernel, brother.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaulthalla%2Fvaulthalla","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaulthalla%2Fvaulthalla","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaulthalla%2Fvaulthalla/lists"}