Skip to content
High performance real-time imageboard in Go, TypeScript and RethinkDB
JavaScript Go TypeScript CSS HTML Shell Makefile
Latest commit e921def @bakape README: Correct godocs URL
Failed to load latest commit information.
auth server Move util, config and auth into separate packages
client client/connection: Completely clear old socket references
clientScripts clientScripts/loader Rework polyfill fetching
config server: Switch to httpTreeMux
db *: Use idiomatic Go error handling
docs Port: Server starting
imager imager Remove redundant directory
lang client/render Port post header rendering to TS
legacy legacy/client: Remove localStorage controller
less less/base Wider noscript header
scripts scripts Move legacy scripts
server server: Switch to httpTreeMux
templates *: Use idiomatic Go error handling
types types: Omit empty subject fields in JSON
util server: Switch to httpTreeMux
www client/render/image: Port and refactor image rendering
.gitignore travis: Add make rule for building ffmpeg on Debian-based
.tern-project .tern-project Add TERN config file
.travis.yml Makefile: Split build_ffmpeg_deb rule
CHANGELOG.md v1.7.3
LICENSE Update LICENSE
Makefile Makefile: Split build_ffmpeg_deb rule
README.md README: Correct godocs URL
gulpfile.js clientScripts/loader Rework polyfill fetching
main.go server/websockets.go Client.send test
main_test.go server/web.go Test image serving
package.json * Windows support

README.md

GoDoc Build Status Dependency Status

Note: The version in the master branch is currently in early development. For deploying a production-ready legacy meguca instance, download the latests release and consult the bundled README.

Platforms: Linux, OSX, Win64

Runtime dependencies

  • RethinkDB
    • RethinkDB does not enable a configuration file by default. If you don't want to configure anything, just copy /etc/rethinkdb/default.conf.sample into /etc/rethinkdb/instances.d/instance1.conf. You might also set it to autostart on boot. See the official guide.

Installable binaries

Coming soon™

Building from source

  • Windows only: Install MSYS2 and clone/move meguca somewhere within it's root directory (C:\msys64 by default)
  • Install:
    • GCC or Clang
    • make
    • Go
    • Node.js >=5.0 (for building the client)
    • ffmpeg >=3.0 development libraries (libavcodec, libavutil, libavformat, libswscale) compiled with:
      • libvpx
      • libvorbis
      • libopus
      • libtheora
      • libx264
      • libmp3lame
  • Run make
  • Prepare server for operation by running make init

Production

  • Edit ./config/config.json to configure your instance
  • See ./meguca help
    • Windows does not support daemonisation. The stop|restart arguments are not available and start is an alias for debug
  • For upgarding between semver major releases see docs/migration.md

Development

  • ./meguca debug to 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 dist_clean in addition to the above, removes configuration, images and stored assets

// TODO: Rewrite everything below for v2

Documentation

  • docs/api.md - JSON API spec
  • docs/dev_guide.md - Brief description on project operation for developers
  • docs/migration_*.js - Major semvser migration instructions
  • docs/doushio.initscript.example - Init script example
  • docs/nginx.config.example - ngingx configuration example

Standalone upkeep scripts

  • scripts/backup.js - uploads rdb to S3
  • scripts/backup.sh - MEGA backup script
  • scripts/purge_bans.sh - Removes all bans
  • scripts/purge_mod_sessions.sh - Closes all active moderator sessions
  • scripts/radio.js - icecast2 server integration
  • scripts/send.js - global websocket push messages
Something went wrong with that request. Please try again.