Skip to content

Altafxx/AevumFlow

Repository files navigation

AevumFlow (formerly Nginx VOD Microservice)

A dockerized NGINX server configured with Kaltura VOD module for serving video content. This server handles VOD content streaming, JSON manifest delivery, and file upload capabilities.

Features

  • Video streaming with HLS support
  • JSON manifest generation and serving
  • File upload handling
  • ARM64 architecture support
  • Docker containerization

Prerequisites

  • Docker and Docker Compose
  • Sufficient storage space for video content
  • Linux/macOS environment (Windows users should use WSL2)

Project Structure

Create the following directory structure in data folder:

mkdir -p vod json upload thumbnails

The directories serve the following purposes:

  • vod/: Storage for video content
  • json/: Location for JSON manifests
  • upload/: Temporary storage for uploaded files (Not being used for now)
  • thumbnails/: Temporary storage for thumbnails before sending to minio

Installation

  1. Clone the repository:
git clone https://github.com/Altafxx/aevumflow.git
cd aevumflow
  1. Create required directories:
mkdir -p data/vod data/json data/upload data/thumbnails
  1. Build and start the containers:

    • Auto-detect architecture and build:
    npm run docker:up
    • Force ARM64 build (e.g., for M1/M2 Macs, Raspberry Pi):
    npm run docker:up:arm
    • Force AMD64 build (e.g., for Intel/AMD systems):
    npm run docker:up:amd
    • Stop the containers:
    npm run docker:down

Architecture Support

x86_64 (Default)

No changes required - uses debian:11-slim as base image

ARM64 (e.g., Raspberry Pi, never tried on Apple Silicon yet)

Update USING_ARM value to TRUE in .env file

Configuration

The server configuration can be modified through:

  • nginx.conf: NGINX server configuration
  • docker-compose.yml: Container orchestration settings
  • Environment variables in .env file (create from .env.example)

Usage

Accessing the Server

  • Landing page: http://localhost:3000/
  • Video content: http://localhost:3000/video/<filename>.json/master.m3u8

Health Check

Sorry, health care isn't free.

Development

To make changes to the configuration:

  1. Modify the necessary files
  2. Rebuild and restart the container:
docker-compose down
docker-compose up -d --build

Troubleshooting

If you encounter issues:

  1. Check container logs:
docker-compose logs
  1. Verify directory permissions:
ls -la data/vod/ data/json/ data/upload/ data/thumbnails/
  1. Ensure ports are available:
netstat -tuln | grep 3000

License

Don't know yet which to choose, just use how ever you want. Probally will be using WTFPL in the future. Lol

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

About

A self-hosted video platform built with Next.js and NGINX Kaltura VOD module. Take control of your content with this modern, open-source video hosting solution. Replacing Vimeo? You're one step closer.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors