A managed video sharing platform inspired by VideoHub. A preact web application video content management system and cpp-httplib, FFmpeg, SQLite backend c++26 server.
For development purpose, files can be compiled with clang LLVM version 22.
Install vcpkg.
Install development requirements:
sudo apt install npm cmake clang-22 yasm ninja-buildAnd Node.js dependencies:
npm installThen build (zlib, libpng, ffmpeg and back server):
cmake --preset vcpkg
cmake --build --preset vcpkg-release --parallelThis will generates server binary in build/vcpkg/Release/back. Build with vcpkg-debug preset to make debug binaries.
Server can be run using VS Code and CMake extension or with commands just start-dev or just start-prod.
Note
Configure CMake with -DNO_SECURE=ON to define NO_SECURE cookie in Release mode.
This allow to test the production bundle in local environment (like with a phone).
To build container images, install a release build in dist:
cmake --preset vcpkg -DCMAKE_INSTALL_PREFIX=dist
cmake --build --preset vcpkg-release --parallel --target installThen build images:
docker build -f container/Containerfile -t simple-video-cms:latest distTo personalize front and backend, there is few environment variables to know:
- Super administrator (cannot be deleted):
- SUPER_ADMIN_USERNAME (default admin)
- Back server address:
- BACK_HOST (default 0.0.0.0)
- BACK_PORT (default 8080)
- Name of your hosted website:
- WEBSITE_NAME (default Simple Video CMS)
- SHORT_WEBSITE_NAME (default Video CMS)
TODO
All third party files are available offline.
- https://github.com/yhirose/cpp-httplib
- MIT License
- https://github.com/nlohmann/json
- MIT License
- https://github.com/sqlite/sqlite
- Public Domain
- https://github.com/fnc12/sqlite_orm
- AGPL License
- https://git.ffmpeg.org/gitweb/ffmpeg
- GNU LGPL v2 and GPL v2 for parts upgraded to v3
- https://github.com/madler/zlib/
- zlib License
- https://github.com/pnggroup/libpng
- PNG Reference Library License version 2
- https://www.openssl.org/
- Apache-2.0
- https://github.com/preactjs/signals
- MIT License
- https://github.com/preactjs/preact
- MIT License
- https://github.com/preactjs/preact-iso
- MIT License
- https://github.com/developit/htm
- MIT License
- https://github.com/krisk/fuse
- Apache License Version 2.0
- https://github.com/twbs/icons
- MIT License
- https://github.com/videojs/video.js
- Apache License Version 2.0
- https://github.com/mister-ben/videojs-mobile-ui
- MIT License
- https://github.com/paidless/videojs-yt-style
- Unlicensed
- https://github.com/n3r4zzurr0/svg-spinners
- MIT License