From 3bd868f391aa896c2d85231a941e426151627f2f Mon Sep 17 00:00:00 2001 From: holzi1005 Date: Tue, 8 Apr 2025 18:46:19 +0200 Subject: [PATCH] Update README.md --- README.md | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 88 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6510b46..1338eec 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,89 @@ -# Livekit-Uploader +# Meetling Livekit Recording Uploader +This containerized utility monitors a directory for new `.mp4` files, splits them into chunks, and uploads each chunk to a specified endpoint. It is intended for use with the Meetling Livekit recording system. + +--- + +## 📦 Features + +- 📁 Watches the `/out` directory for new `.mp4` files +- ✂️ Splits files into configurable chunk sizes +- 📤 Uploads chunks via HTTP with bearer token authorization +- 🐳 Lightweight Alpine-based Docker image + +--- + +## ⚙️ Environment Variables + +| Variable | Default | Description | +|---------------|-------------------------------------------|--------------------------------------------| +| `CHUNK_SIZE` | `1048576` (1 MiB) | Size of each chunk in bytes | +| `UPLOAD_URL` | `http://localhost:8000/recording/upload` | Upload endpoint URL | +| `AUTH_TOKEN` | `verySecretToken` | Bearer token for authentication | + +--- + +## 🚀 Usage + +### 1. Build the Docker image + +```sh +docker build -t meetling-uploader --build-arg VERSION=1.0.0 . +``` + +### 2. Run the container + +```sh +docker run -v /your/output/directory:/out meetling-uploader +``` + +> Replace `/your/output/directory` with the directory containing your `.mp4` recordings. + +--- + +## 🔄 Upload Process + +Once a `.mp4` file is completely written to `/out`, the script: + +1. Verifies the file exists. +2. Calculates file size. +3. Splits the file into chunks based on `CHUNK_SIZE`. +4. Uploads each chunk using `curl`. + +Each upload includes the following multipart form fields: + +- `recording_id`: Filename without `.mp4` +- `chunk_index`: Index of the chunk (starting from 0) +- `total_chunks`: Total number of chunks +- `file`: The actual chunk + +--- + +## 🐳 Dockerfile Overview + +The image uses `alpine:3.20` and installs: + +- `inotify-tools` (for file system event watching) +- `curl` (for HTTP requests) +- `coreutils` (for `stat` and `dd` utilities) + +The script is located at `/inotify.sh` and is executed when the container starts. +It runs as the non-privileged user `nobody` for security. + +--- + +## 📝 License + +MIT License + +--- + +## 👨‍💻 Maintainers + +**H2 invent GmbH** +📧 [support@h2-invent.com](mailto:support@h2-invent.com) +🌐 [https://meetling.de](https://meetling.de) + +--- + +> **Note:** Ensure your backend server supports chunked uploads and correctly assembles the file. \ No newline at end of file