Vaze is a self-hosted, local-first file storage and hosting service built with Next.js. Run it easily as a Docker container on your own server or home network. It provides a clean web interface for managing your files and a powerful API to use as a backend for your other applications.
- Full File & Folder Management: Create, rename, move, and delete files and folders directly from the web UI.
- Simple Uploads: Easily upload files and folders through a drag-and-drop interface.
- Export & Download: Download individual files or entire folders as a zip archive.
- API Key Management: Generate and manage API keys from a dedicated dashboard to securely interact with your storage from other apps.
- Powerful API: Use Vaze as a backend service for any application that needs file hosting or storage, with simple RESTful endpoints.
- Dockerized: Get up and running in minutes with the official Docker image.
Getting your own Vaze instance running is simple. All you need is Docker installed on your system.
Pull the latest image from Docker Hub.
docker pull darseen/vaze:latestRun the Docker container, mapping your volume, port, and setting your BASE_URL and AUTH_SECRET:
docker run -d \
-p 3000:3000 \
-v /path/on/your/machine:/app/apps/service/data \
-e BASE_URL="http://your-server-ip-or-domain:3000" \
-e AUTH_SECRET="your-secret-key" \
--name vaze \
darseen/vaze:latest-p 3000:3000: Maps port 3000 on your host to the container's port 3000.-v /path/on/your/host/machine:/app/data: This mounts a directory from your host machine into the container. It ensures your uploaded files are saved on your machine and persist even if the container is removed or updated.
Once the container is running, you need to create your first (admin) user.
- Navigate to your server's IP address on port 3000 in your web browser:
http://<your-server-ip>:3000 - You will be prompted to register. The first user to register automatically becomes the admin user.
- Log in with your newly created credentials.
That's it! You can now start uploading and managing your files.
The following environment variables should be set. If not set, the default values will be used.
BASE_URL: The base URL of your Vaze instance.AUTH_SECRET: A secret key used to sign JWT tokens.
Vaze can be used as a file-hosting backend for your other projects. You can use Vaze's official NPM package to interact with the API.
Here are a few screenshots of the Vaze interface.
Contributions are welcome! If you'd like to help improve Vaze, please feel free to fork the repository, make changes, and submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.




