GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - bakape/shamichan: anonymous realtime imageboard focused on high performance and transparent moderation

This repository was archived by the owner on Oct 3, 2022. It is now read-only.
BranchesTags
Open more actions menu

Latest commit

 

History

6,982 Commits
6,982 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
client
client
 
 
common
common
 
 
docker
docker
 
 
docs
docs
 
 
imager
imager
 
 
lang
lang
 
 
less
less
 
 
migrations
migrations
 
 
scripts
scripts
 
 
server
server
 
 
static/assets
static/assets
 
 
to_port
to_port
 
 
www
www
 
 
.clang-format
.clang-format
 
 
.dockerignore
.dockerignore
 
 
.gitignore
.gitignore
 
 
.npmignore
.npmignore
 
 
.rustfmt.toml
.rustfmt.toml
 
 
COC.md
COC.md
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
Dockerfile
Dockerfile
 
 
Dockerfile.dev
Dockerfile.dev
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 

Repository files navigation

Build

shamichan

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.

Runtime dependencies

  • PostgresSQL >= 10.0

Docker

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:

  • $image_dir is the directory to store uploaded images
  • $DB is the URL to a PostgreSQL database to use for data storage

Building from source

Native installation.

For installing shamichan directly onto a server follow the steps bellow. A reference list of commands can be found in ./docs/installation.md

Build dependencies

  • Go >=1.13 (for building server)
  • Node.js >=12.0 (for building client)
  • Rust >= 1.41
  • C11 compiler
  • make
  • pkg-config
  • pthread
  • ffmpeg >= 4.1 libraries (libavcodec, libavutil, libavformat, libswscale) compiled with:
    • libvpx
    • libvorbis
    • libopus
    • libtheora
    • libx264
    • libmp3lame
  • OpenCV 2-3
  • libgeoip
  • OpenSSL
  • git

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

Compilation

Run make

Setup

Deployment

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/.

Initial instance configuration

  • TODO: grant first user to go to a URL admin rights

Development

TODO: note about compile-time query checking and how to support it

  • See ./docs for more documentation
  • make install_tools to install required build tools
  • make server and make client build the server and client separately
  • Pass DEBUG=1 before make command to build in debug mode
  • Pass NO_DEPS=1 before make command to not install dependencies with npm on each build
  • make clean removes files from the previous compilation
  • make {test,test_no_race} run regular test and tests without data race detection, respectively
  • To run server unit tests add database creation rights to your PostgreSQL role

About

anonymous realtime imageboard focused on high performance and transparent moderation

Topics

goimageboardliverealtimerust

Resources

Readme
License
Activity

Stars

446 stars

Watchers

1 watching

Forks

79 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.