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.
- Video streaming with HLS support
- JSON manifest generation and serving
- File upload handling
- ARM64 architecture support
- Docker containerization
- Docker and Docker Compose
- Sufficient storage space for video content
- Linux/macOS environment (Windows users should use WSL2)
Create the following directory structure in data folder:
mkdir -p vod json upload thumbnailsThe directories serve the following purposes:
vod/: Storage for video contentjson/: Location for JSON manifestsupload/: Temporary storage for uploaded files (Not being used for now)thumbnails/: Temporary storage for thumbnails before sending to minio
- Clone the repository:
git clone https://github.com/Altafxx/aevumflow.git
cd aevumflow- Create required directories:
mkdir -p data/vod data/json data/upload data/thumbnails-
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
No changes required - uses debian:11-slim as base image
Update USING_ARM value to TRUE in .env file
The server configuration can be modified through:
nginx.conf: NGINX server configurationdocker-compose.yml: Container orchestration settings- Environment variables in
.envfile (create from.env.example)
- Landing page:
http://localhost:3000/ - Video content:
http://localhost:3000/video/<filename>.json/master.m3u8
Sorry, health care isn't free.
To make changes to the configuration:
- Modify the necessary files
- Rebuild and restart the container:
docker-compose down
docker-compose up -d --buildIf you encounter issues:
- Check container logs:
docker-compose logs- Verify directory permissions:
ls -la data/vod/ data/json/ data/upload/ data/thumbnails/- Ensure ports are available:
netstat -tuln | grep 3000Don't know yet which to choose, just use how ever you want. Probally will be using WTFPL in the future. Lol
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.