VERT - The next-generation file converter. Open source, fully local and free forever
VERT
The next-generation file converter. Open source, fully local and free forever.
VERT is a file conversion utility that uses WebAssembly to convert files on your device instead of a cloud. Check out the live instance at vert.sh.
VERT is built in Svelte and TypeScript.
Features
- Convert files directly on your device using WebAssembly *
- No file size limits
- Supports multiple file formats
- User-friendly interface built with Svelte
* Non-local video conversion is available with our official instance, but the daemon is easily self-hostable to maintain privacy and fully local functionality.
Getting Started
Prerequisites
Make sure you have the following installed:
Installation
# Clone the repositorygit clone https://github.com/VERT-sh/vert.gitcd vert# Install dependenciesbun i
Running Locally
To run the project locally, run bun dev
.
This will start a development server. Open your browser and navigate to http://localhost:5173
to see the application.
Building for Production
Before building for production, make sure you create a .env
file in the root of the project with the following content:
PUB_HOSTNAME=example.com # change to your domain, only gets used for Plausible (for now)PUB_PLAUSIBLE_URL=https://plausible.example.com # can be empty if not using PlausiblePUB_ENV=production # "production", "development" or "nightly"PUB_VERTD_URL=https://vertd.vert.sh # default vertd instance
To build the project for production, run bun run build
This will build the site to the build
folder. You should then use a web server like nginx to serve the files inside that folder.
If using nginx, you can use the nginx.conf file as a starting point. Make sure you keep cross-origin isolation enabled.
With Docker
Clone the repository, then build a Docker image with:
$ docker build -t vert-sh/vert \ --build-arg PUB_ENV=production \ --build-arg PUB_HOSTNAME=vert.sh \ --build-arg PUB_PLAUSIBLE_URL=https://plausible.example.com \ --build-arg PUB_VERTD_URL=https://vertd.vert.sh .
You can then run it by using:
$ docker run -d \ --restart unless-stopped \ -p 3000:80 \ --name "vert" \ vert-sh/vert
This will do the following:
- Use the previously built image as the container
vert
, in detached mode - Continuously restart the container until manually stopped
- Map
3000/tcp
(host) to80/tcp
(container)
We also have a docker-compose.yml
file available. Use docker compose up
if you want to start the stack, or docker compose down
to bring it down. You can pass --build
to docker compose up
to rebuild the Docker image (useful if you’ve changed any of the environment variables) as well as -d
to start it in detached mode. You can read more about Docker Compose in general here.
While there’s an image you can pull instead of cloning the repo and building the image yourself, you will not be able to update any of the environment variables (e.g. PUB_PLAUSIBLE_URL
) as they’re baked directly into the image and not obtained during runtime. If you’re okay with this, you can simply run this command instead:
$ docker run -d \ --restart unless-stopped \ -p 3000:80 \ --name "vert" \ ghcr.io/vert-sh/vert:latest
License
This project is licensed under the AGPL-3.0 License, please see the LICENSE file for details.
← Back to projects