minv: Version 1.0.0!

Foss

Introduction

I am happy to announce minv version 1.0.0!

In this post I’ll go through an overview of the project, as well as my reasoning and use cases for it.

The Problem

Let’s face it: PeerTube is HUGE and daunting to set up. Even with Docker, the system requirements and configuration just to run a personal video website is not feasible for most people.

This is where minv comes in. It’s small, fast and accessible. Let’s see how.

minv__server

minv__server is the reference (and as of yet, only) implementation of the minv server.

It’s written in golang and exports to a single binary with the only (runtime) dependancy being ffmpeg. It also comes with a Docker image for people who might be running it on a distro without ffmpeg or an outdated version of ffmpeg.

minv__client

minv__client is the reference (and as of yet, only) implementation of the minv client. However, minv is deliberately simple, so it should be easy to implement alternate clients on any platform.

It’s written in TypeScript using SvelteKit and Flowbite Svelte. SvelteKit builds to vanilla JavaScript, except for some runtime dependencies. minv__client also comes with a Docker image.

Use Cases

minv is suited for personal video websites. These can include:

For example, both the minv__client demo and the minv__server demo are hosted on a single 3.5$/month Vultr VPS, along with many other services, including my personal website and an instance of Miniflux.

Limitations

Disable Register

Currently, minv doesn’t have a way to disable registration. This can cause problems for instances meant to be “read-only”.

ActivityPub

Currently, minv doesn’t implement ActivityPub. However, Atom feeds are provided wherever possible.

Moderation

Currently, moderation in minv suffers these issues:

Tests

Both minv__client and minv__server have some tests, but they are not upto the mark. This is planned to be improved.

Transcoding

minv currently doesn’t support transcoding

The Future

I am not fully clear about what direction to take this project in. Some ideas(not all of these are my own):

  1. Develop minv with more features as a simpler PeerTube alternative.
  2. Cut back on minv’s features, and market it as a “static site generator but for videos”.
  3. Make minv a thin wrapper around torrents, and create possibly a new way of video sharing. This is similar to approach 2.