anonymous realtime imageboard focused on high performance and transparent moderation
anonymous realtime imageboard focused on high performance, free speech and transparent moderation
Platforms: Linux, Docker
License: GNU GPLv3
The master branch is currently undergoing active breaking changes towards shamichan v7. If you intend to deploy shamichan, please use the v6 branch.
Shamichan can be deployed in a self-contained Docker container.
Simply run
docker run --restart unless-stopped -d --network host --mount type=bind,source=$image_dir,destination=/shamichan/images ghcr.io/bakape/shamichan -d $DB
where:
For installing shamichan directly onto a server follow the steps bellow.
A reference list of commands can be found in ./docs/installation.md
NB: Ubuntu patches to ffmpeg on some Ubuntu versions <19.10 break image processing. In that case please compile from unmodified ffmpeg sources using:
sudo apt build-dep ffmpeg
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
git checkout n4.1
./configure
make -j`nproc`
sudo make install
Run make
shamichan can be started in debug mode simply with ./shamichan
.
Configurations are split between shamichan instance configurations
and server instance configurations, which are required to start
the server and connect to the database.
The shamichan instance configurations are stored in the database, but
server instance configurations are optionally loaded from a config.json
file on server start.
A sample configuration file can be found under docs/config.json
.
Documentation for this file is available under docs/config.jsonc
.
It is recommended to serve shamichan behind a reverse proxy like NGINX or Apache
with properly configured TLS settings. A sample NGINX configuration file can be
found in docs/
.
TODO: note about compile-time query checking and how to support it
./docs
for more documentationmake install_tools
to install required build toolsmake server
and make client
build the server and client separatelyDEBUG=1
before make command to build in debug modeNO_DEPS=1
before make command to not install dependencies with npm on
each buildmake clean
removes files from the previous compilationmake {test,test_no_race}
run regular test and tests without data race
detection, respectively