Fuze Mediaboard is a self-hosted multimedia messaging platform.
Read the deployment guide here
CMake, Boost::program_options, Boost::json, SQLite3 OR PostgreSQL.
cmake
libboost1.88-dev
libboost-program-options1.88-dev
libboost-json1.88-dev
libsqlite3-dev
boost-libs
ImageMagick7-nox11
sqlite3
First ensure that submodules are downloaded. Use this command:
git submodule update --init --recursive
Now, to build with the default SQLite interface:
cmake -B build -D WITH_MAGICK=OFF
If you have ImageMagick on your system, use this command, which will enable features such as thumbnails:
cmake -B build
Alternatively, you can build with the PostgreSQL interface instead. Refer to the deployment guide; a database needs to be configured.
cmake -B build -D FUZEDBI_USE_POSTGRES=ON
After building, you use this command:
cmake --install build --prefix install
The prefix can be changed. Simply using install will put it alongside the build directory.
And now you can run it:
./install/bin/MediaboardServer
If you built at the default directory, run ./build/MediaboardServer.
If you used --install, execute the binary MediaboardServer.
In a browser open localhost:8300
You should see an empty page with a toolbar at the top. If you reached this stage, refer to the http://localhost/software/mediaboard/documentation/#getting-started to complete setup.
Note: To build without ImageMagick, add -D WITH_MAGICK=OFF to the CMake -B command.
Note: FreeBSD users can skip this step because the pkg contains all the required delegates.
Clone and configure Imagemagick with the delegates for JPEG, PNG, WEBP, XML, and JPEG-XL.
You may need to install dependencies first:
libxml2-dev
libjxl-dev
Configure:
./configure --with-jpeg --with-jxl --with-png --with-xml
Ensure the configure output ends with all the delegates listed:
DELEGATES = jng jpeg jxl lcms png xml zlib
Then install:
make
sudo make install
ImageMagick may use significant amounts of memory, which can crash the program if system memory runs out. To set memory limits add these environment variables:
MAGICK_MEMORY_LIMIT=512MiB
MAGICK_MAP_LIMIT=1GiB
MAGICK_DISK_LIMIT=2GiB
No portion of the code is generated by AI. You may use AI to help make decisions and gain knowledge, but not to program for you.
Update submodules to the latest commit:
git submodule update --remote
To create Appdir required by AppImage, run:
cmake --install build --prefix AppDir/usr
Then to bundle the dependencies, use Linuxdeploy:
./linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage
pg_dump fuze_mediaboard > mediaboard_dump.sql
psql -X --set ON_ERROR_STOP=on fuze_mediaboard < mediaboard_dump.sql
Install Homebrew
Brew install: imagemagick boost postgresql@17 cmake
add to ~/.zshrc:
export PATH=/opt/homebrew/Cellar/postgresql@17/<INSERT VERSION>/bin:$PATH
The pkg-config for postgresql may not work out of the box. If that is the case, follow these instructions:
Brew ls postgresql | grep pkgconfig
export PATH=/opt/homebrew/Cellar/postgresql@17/<INSERT VERSION>/bin:$PATH - Adjust the postgresql version to match the result from brew ls in the line above.
export PKG_CONFIG_PATH=/opt/homebrew/Cellar/postgresql@17/<INSERT VERSION>/lib/pkgconfig/
