Vaulx is a self-hosted, private file asset platform built in Go. It gives teams a clean, fast interface to upload files directly to S3-compatible object storage, organise them in folders, share them via public links, and control who can access what — all backed by a complete audit log.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/noelzappy/vaulx/llms.txt
Use this file to discover all available pages before exploring further.
Quick Start
Run Vaulx locally in minutes with Docker or the Go toolchain.
Deployment
Deploy Vaulx to production with Docker Compose or Dokploy.
Core Features
Browse files, create folders, upload, share, and preview assets.
API Reference
Explore every HTTP endpoint with parameters and response shapes.
What Vaulx does
Vaulx is designed for teams that need a private, auditable file store without the complexity of a full-blown cloud storage product. Files are stored in any S3-compatible bucket (Hetzner Object Storage, AWS S3, MinIO) — Vaulx handles metadata, access control, and sharing on top.File Management
Upload files directly to S3 via presigned URLs, browse folder hierarchies, rename, move, and soft-delete.
Role-Based Access
Three roles — admin, editor, viewer — with per-resource permission grants for fine-grained sharing.
Share Links
Generate 7-day public share links for files and entire folder trees, with view-count tracking.
ZIP Downloads
Stream folder contents as a ZIP on the fly, or prepare an async background ZIP for large trees.
Audit Trail
Every login, upload, delete, rename, and share action is recorded and searchable by admins.
Admin Panel
Manage users, review the audit log, restore soft-deleted files, and grant permissions — all in-app.
Getting started
Set up prerequisites
Install Go 1.25+ and PostgreSQL 16, or use Docker Compose to start both with a single command.
Configure environment variables
Copy
.env.example to .env and fill in your database URL, session secret, and Hetzner Object Storage credentials.Start the server
Run
go run ./cmd/server (or docker compose up --build). Migrations run automatically on first boot and the admin account is seeded.The session cookie requires HTTPS in production (
Secure: true). Make sure to configure TLS or a reverse proxy before exposing Vaulx publicly.