Skip to content
anonymous realtime imageboard focused on high performance, free speech and transparent moderation
Branch: master
Clone or download
Latest commit 7ae6ea3 May 18, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Migrate to Go 1.11 modules Mar 12, 2019
auth db: Force binary_parameters DB query string May 4, 2019
cache cache: Fix race conditions in tests May 4, 2019
client client: Don't abort client on post sync failure May 6, 2019
clientScripts client: Remove stub C++ client Apr 27, 2019
common assets: Don't check free space in CI May 18, 2019
config server: Graceful restarts May 4, 2019
db log: Don't log invalid image token errors May 15, 2019
docs docs: Fix systemd unit file May 4, 2019
geoip server: Use system-wide geoip database Apr 22, 2019
imager assets: Don't check free space in CI May 18, 2019
lang Migrate to Go 1.11 modules Mar 12, 2019
less less: Fix glass theme code operator visability Jan 5, 2019
log log: Shorter error mail subject Apr 21, 2019
parser cli: Remove inbuilt daemonization and config CLI May 4, 2019
scripts docker: Build image dynamically from debian stable image Apr 28, 2019
server server: Graceful restarts May 4, 2019
static db: Don't bump thread on IP deletion from posts May 15, 2019
templates client: Remove stub C++ client Apr 27, 2019
test test: Fix import cycle May 18, 2019
util Migrate to Go 1.11 modules Mar 12, 2019
websockets cli: Remove inbuilt daemonization and config CLI May 4, 2019
www *: Replace illyadance with customizable video background Jan 23, 2019
.clang-format wasm: Basic DOM mutation stack Oct 1, 2017
.gitignore Migrate to Go 1.11 modules Mar 12, 2019
.npmignore JS: Update package.json Sep 6, 2018
.travis.yml make: rule for dockerised testing Jan 29, 2019
Dockerfile docker: Build image dynamically from debian stable image Apr 28, 2019
LICENSE LICENSE: Update copyright year Oct 11, 2017
Makefile assets: Check, if there is enough disk space before writing new images May 18, 2019
README.md assets: Check, if there is enough disk space before writing new images May 18, 2019
go.mod server: Graceful restarts May 4, 2019
go.sum server: Graceful restarts May 4, 2019
gulpfile.js client: Revert service worker split Jul 4, 2018
main.go Migrate to Go 1.11 modules Mar 12, 2019
package-lock.json client: Remove stub C++ client Apr 27, 2019
package.json npm: version: 1.1.3 -> 1.1.4 Mar 10, 2019

README.md

GoDoc Build Status

meguca

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

Platforms: Linux, OSX

License: GNU AGPL

Runtime dependencies

Building from source

Native installation.

For installing meguca directly onto a server follow the steps bellow. 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

Docker

Meguca can be deployed in a self-contained Docker container. Install Docker and run

docker build -t meguca .
docker run -t -p 8000:8000 meguca

Setup

Deployment

meguca can be started in debug mode simply with ./meguca. Configurations are split between meguca instance configurations and server instance configurations, which are required to start the server and connect to the database. The meguca 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 meguca 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

  • 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

Development

  • See ./docs for more documentation
  • 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
You can’t perform that action at this time.