Overview

Code Climate

Moebooru

This project is based on original Moebooru which is being used in yande.re 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.

Requirements

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

Installation

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)

Configuration

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.

Plans

  • Bug fixes
  • Documentation
  • And more!