Skip to main content

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.

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.

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

1

Set up prerequisites

Install Go 1.25+ and PostgreSQL 16, or use Docker Compose to start both with a single command.
2

Configure environment variables

Copy .env.example to .env and fill in your database URL, session secret, and Hetzner Object Storage credentials.
3

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.
4

Log in

Open http://localhost:8080 and sign in with the credentials from SEED_ADMIN_EMAIL and SEED_ADMIN_PASSWORD.
The session cookie requires HTTPS in production (Secure: true). Make sure to configure TLS or a reverse proxy before exposing Vaulx publicly.

Build docs developers (and LLMs) love