No longer in use! See for the current code that runs Okebooru. A fork of Moebooru (which is a fork of Danbooru) with minimal customizations.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Joe 66da9d0d61
Merge branch 'master' of into master
3 years ago
app Merge branch 'master' of into master 3 years ago
bin Add webpacker 4 years ago
config Update js packages 3 years ago
db Lowercase usernames app-side 3 years ago
lib Correctly return blank zip file on empty pools 3 years ago
public add custom favicon 3 years ago
script Update travis and bundler, and downgrade minimum postgresql 4 years ago
test Lowercase usernames app-side 3 years ago
.browserslistrc Add webpacker 4 years ago
.codeclimate.yml Shiny codeclimate platform engine. 8 years ago
.gitignore Add webpacker 4 years ago
.hgignore Ignore generated translations.js. 9 years ago
.travis.yml Actually update nodejs version 3 years ago
Gemfile Remove rubygems-based js libraries 4 years ago
Gemfile.lock Update gems 3 years ago
LICENSE Update license year and wording 7 years ago Update build env 3 years ago
Rakefile Double quotes everywhere. 9 years ago
babel.config.js Add webpacker 4 years ago Increse memory limit 7 years ago
package.json Update js packages 3 years ago
postcss.config.js Add webpacker 4 years ago
yarn.lock Update js packages 3 years ago

Code Climate


An image board.


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

  • Ruby (2.6 or later)
  • PostgreSQL (11 or later)
  • Bundler gem
  • node.js (10.17 or later)
  • yarn
  • ImageMagick
  • And various other requirement for the gems (check Gemfile for the list)

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

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

Base, EPEL, and postgresql official repositories contain all the requirements.


Database Setup

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

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

Rails Setup

  • Run bundle install
  • Create config/database.yml and config/local_config.rb
  • Initialize database with bundle exec rake db:reset
  • 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.

Additional configuration for web server

On setup with separate image servers, additional configuration is required for avatar and inline image cropping to work. Specifically, due to how the image cropping library works, the image servers need to allow CORS for image access from main url.


  • Bug fixes
  • Documentation
  • And more!