Skip to content

Liteb0t/Mediaboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

173 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FUZE Mediaboard

Fuze Mediaboard is a self-hosted multimedia messaging platform.
Read the deployment guide here

Dependencies

CMake, Boost::program_options, Boost::json, SQLite3 OR PostgreSQL.

Packages (Debian 13 "Trixie"/Devuan 6 "Excalibur")

cmake
libboost1.88-dev
libboost-program-options1.88-dev
libboost-json1.88-dev
libsqlite3-dev

Packages (FreeBSD 15.0)

boost-libs
ImageMagick7-nox11
sqlite3

Building

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

Installing

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

Execute the program

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.

Imagemagick

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

Developers' section

AI policy

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.

Submodules

Update submodules to the latest commit:
git submodule update --remote

Creating an AppImage

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

Dump PostgreSQL database

pg_dump fuze_mediaboard > mediaboard_dump.sql

Restore PostgreSQL database

psql -X --set ON_ERROR_STOP=on fuze_mediaboard < mediaboard_dump.sql

Developing on MacOS

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/

About

A modern imageboard/messageboard powered by Boost.

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Contributors