anonymous realtime imageboard focused on high performance, free speech and transparent moderation
bakape e1e13db1f0 Merge branch 'master' of github.com:bakape/meguca 13 hours ago
assets Migrate to Go 1.11 modules 1 month ago
auth deps: Bump capthouli version 6 days ago
cache Migrate to Go 1.11 modules 1 month ago
client Client: fix TTL 2 days ago
clientScripts client: Remove fetch() polyfill 7 months ago
client_cpp *: Normalize thread counter names 3 days ago
common *: Normalize thread counter names 3 days ago
config deps: Bump capthouli version 6 days ago
db captchouli: Fix creating captchas before init 13 hours ago
docs server: Use system-wide geoip database 3 days ago
geoip server: Use system-wide geoip database 3 days ago
imager imager: Reject image sekritposts 1 day ago
lang Migrate to Go 1.11 modules 1 month ago
less less: Fix glass theme code operator visability 3 months ago
log log: Shorter error mail subject 4 days ago
parser db: Init pyu through trigger 1 month ago
scripts moderation: Optimise post deletion 1 month ago
server server: Use system-wide geoip database 3 days ago
static imager: Reject image sekritposts 1 day ago
templates *: Normalize thread counter names 3 days ago
test *: Rename bumptime and replytime columns 3 days ago
util Migrate to Go 1.11 modules 1 month ago
websockets server: Use system-wide geoip database 3 days ago
www *: Replace illyadance with customizable video background 3 months ago
.clang-format wasm: Basic DOM mutation stack 1 year ago
.gitignore Migrate to Go 1.11 modules 1 month ago
.gitmodules wasm: Move JSON lib to submodule 1 year ago
.npmignore JS: Update package.json 7 months ago
.travis.yml make: rule for dockerised testing 2 months ago
Dockerfile Revert "travis: Compile C++ client during tests" 1 year ago
LICENSE LICENSE: Update copyright year 1 year ago
Makefile Migrate to Go 1.11 modules 1 month ago
README.md server: Use system-wide geoip database 3 days ago
go.mod captchouli: Fix creating captchas before init 13 hours ago
go.sum captchouli: Fix creating captchas before init 13 hours ago
gulpfile.js client: Revert service worker split 9 months ago
main.go Migrate to Go 1.11 modules 1 month ago
main_test.go Migrate to Go 1.11 modules 1 month ago
package-lock.json imager: Reject image sekritposts 1 day ago
package.json npm: version: 1.1.3 -> 1.1.4 1 month ago

README.md

GoDoc Build Status

meguca

anonymous realtime imageboard focused on high performance, free speech and transparent moderation

Platforms: Linux, OSX, Win64

License: GNU AGPL

Runtime dependencies

Country flags

To enable poster country flags on posts please download GeoLite2-Country.mmdb from https://www.maxmind.com and place it inside meguca’s root directory. Country lookup will become available after a server restart.

Building from source

A reference list of commands can be found in ./docs/installation.md

Build dependencies

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

Linux and OSX

  • Run make

Windows

  • Install MSYS2
  • Open MSYS2 shell
  • Install dependencies listed above with the mingw-w64-x86_64- prefix with pacman
  • Navigate to the meguca root directory
  • Run make

Setup

  • See ./meguca help for server operation
  • Login into the “admin” account via the infinity symbol in the top banner with the password “password”
  • Change the default password
  • Create a board from the administration panel
  • Configure server from the administration panel
  • To enable country flags on posts download and place GeoLite2-Country.mmdb into the root directory
  • To avoid having to always type in CLI flags on server start you can specify them in config.json file in the project root. A sample file with all the default settings can be found in docs/.

Development

  • See ./docs for more documentation
  • ./meguca or ./meguca debug run the server in development mode
  • make server and make client build the server and client separately
  • make watch watches the file system for changes and incrementally rebuilds the client
  • make clean removes files from the previous compilation
  • make {test,test_no_race,test_docker} run regular, without data race detection and Dockerized test suites, respectively
  • To run server unit tests (unless Dockerized) add database creation rights to your PostgreSQL role

C++ client

For developing the new C++ client

  • Run git submodule update --init --recursive
  • Install Emscripten
  • Ensure Emscripten environment variables by running source emsdk_env.sh in your shell
  • Use DEBUG=1 make wasm and make wasm_clean to compile the C++ client and clean build directories
  • To use the C++ client for meguca add the ?wasm=true query string to the end of the URL