Moebooru, a fork of danbooru1 that has been heavily modified
Ruby HTML JavaScript PLpgSQL CSS Python Other
Pull request Compare This branch is 195 commits behind moebooru:master.
Failed to load latest commit information.
bin Double quotes everywhere. Nov 20, 2014
config Remove option to customize preview images subdomain. Mar 1, 2015
lib Properly reload page when user is logged in. Feb 24, 2015
public Move images assets to where it belongs. Nov 20, 2014
test Don't explode on empty params on post#update. May 19, 2015
.rspec Repo init, Dtext re-implementation attempt. May 9, 2012
.rubocop.yml Add basic rubocop configs. Nov 20, 2014
.rubocop_todo.yml Use self-assignment shorthand. Nov 20, 2014
Gemfile Update comment with correct version. Dec 24, 2014
Gemfile.lock Update gems. May 19, 2015
LICENSE Use default alias. Nov 20, 2014 Remove `enable_caching` variable, allow env-based memcache server set… Nov 20, 2014
Rakefile Double quotes everywhere. Nov 20, 2014

Code Climate


This project is based on original Moebooru which is being used in Image Board. Changes compared to original Moebooru:

  • Compatible with Ruby 1.9.3 and later (alternative implementations' compatiblity needs confirmation)
  • Uses Rails 4.0
  • Updated gems
  • Pool ZIP support for nginx (with mod_zip)

As this is still in development, bug reports are welcome.


As this is ongoing project, there will be more changes on requirement as this project goes. Currently this application requires:

  • Ruby 1.9+
  • PostgreSQL (tested with 8.4, 9.1, and 9.2)
  • Bundler gem
  • ImageMagick
  • And various other requirement for the gems (check Gemfile for the list)

On RHEL5 (and 6), it goes like this:

  • gcc
  • gcc-c++
  • ImageMagick
  • jhead
  • libxslt-devel
  • libyaml-devel
  • git
  • openssl-devel
  • pcre-devel
  • postgresql84-contrib
  • postgresql84-devel
  • postgresql84-server
  • readline-devel

Base and EPEL repositories contain all the requirements.

On Ubuntu 10.04.4 LTS

  • apt-get install postgresql-contrib python-software-properties postgresql libpq-dev libxml2-dev libxslt-dev mercurial jhead build-essential libgd2-noxpm-dev

  • Brightbox repo would work if you're too lazy to compile ruby

  • add the ppa and then apt-get install ruby1.9.3


Database Setup

After initializing PostgreSQL database, create user for moebooru with createdb privilege:

postgres# create user moebooru_user with password 'the_password' createdb;

And then install the required PostgreSQL extensions:

  • language plpgsql
  • test_parser

using these commands:

--- postgresql 9.1+
postgres# \c template1
postgres# create extension test_parser;

--- postgresql 8.3, 8.4
postgres# \c template1
postgres# create language plpgsql;
postgres# \q
--- postgresql 8.3, 8.4, 9.0 - from shell
# sudo -u postgres psql -d template1 -f "`pg_config --sharedir`/contrib/test_parser.sql"

Rails Setup

  • Run bundle install
  • Create config/database.yml and config/local_config.rb
  • Initialize database with bundle exec rake db:reset (there will be some errors reported which is expected)
  • Run bundle exec rake db:migrate
  • Start the server (bundle exec unicorn or bundle exec puma if using JRuby/Rubinius)


See config/local_config.rb.example. Additionally, as I move to ENV-based configuration, here's the list of currently supported ENV variables:

  • MB_DATABASE_URL: sets database connection configuration. Syntax: postgres://<user>(:<pass>)@<host>(:<port>)/<dbname>.
  • MB_MEMCACHE_SERVERS: addresses of memcache servers. Separated by comma.
  • MB_PIWIK_HOST: sets the host this application will attempt to contact a Piwik installation at. Defaults to false to not use Piwik if unset.
  • MB_PIWIK_ID: sets the Site ID this application will send analytics data for.
  • MB_THREADS: sets number of threads this application is running. Currently used to determine number of connection pool for memcached. Defaults to 1 if unset.


  • Bug fixes
  • Documentation
  • And more!