Your self-hosted personal document vault and PDF workspace.
Secure files, smart search, share links, AI-assisted metadata, and extensible workflows.
Invoult is built for people who want cloud-like convenience without giving up control of their data.
- Self-hosted first with local and cloud provider routing
- Encrypted file handling for sensitive categories
- Built-in PDF toolkit (merge, split, OCR, reorder, extract, repair, build)
- Vault entries for structured personal secrets and references
- Secure public sharing with expiration, password access, and audit logs
- AI enrichment (optional) for tags, summaries, and extraction
- Extension architecture for domain-specific workflows
- File Vault: Upload, preview, tag, categorize, version, and bulk-manage files.
- Storage Federation: Route to Local, Google Drive, Dropbox, and MEGA.
- PDF Jobs: Asynchronous queue-backed operations through a Python worker.
- Smart Search: Unified search across files, vault entries, and extensions.
- Recovery & Backup: Recovery keys, encrypted backups, restore workflows.
- Plugin-like Extensions: Built-in Application Tracker + Document Builder.
# 1) Configure environment
cp .env.example .env
# 2) Start services
podman-compose up -d
# 3) Initialize app (first run)
podman exec vault-laravel php artisan key:generate
podman exec vault-laravel php artisan migrate --seed
# 4) Open
# Frontend: http://localhost:5173
# API: http://localhost:8000- Frontend: React + Vite (
frontend/) - API: Laravel (
app/) - Worker: FastAPI for document/AI operations (
python-worker/) - Infra: PostgreSQL, Redis, Queue worker, Nginx, optional Cloudflare tunnel
- Orchestration:
podman-compose.yml
- Docs hub:
Docs/README.md - Backend architecture + routes:
Docs/BACKEND_DOCUMENTATION.md - Developer onboarding:
Docs/DEVELOPER_ONBOARDING.md - Environment setup:
Docs/ENV_SETUP.md - Marketing kit:
Docs/MARKETING_KIT.md - Roadmap:
Docs/VAULT_ROADMAP.md - Product spec:
Docs/VAULT_SPEC.md - UI spec:
Docs/VAULT_UI_SPEC.md
- The app is modular and extension-ready.
- Backend extension points live in
extensions/*/backend. - Python worker extension routes can be mounted from
extensions/*/python/routes.py. - Keep API changes reflected in backend documentation.
- Contribution workflow:
CONTRIBUTING.md - Security policy:
SECURITY.md
The current logo is a temporary SVG placeholder: Docs/assets/Invoult-banner.png.
When you provide the final logo, replace this file and keep the same path for instant repo-wide updates.
