No longer in use! See https://git.thisisjoes.site/butterbutt/shimmie2 for the current code that runs Okebooru. A fork of Moebooru (which is a fork of Danbooru) with minimal customizations.
Go to file
Joe 66da9d0d61
Merge branch 'master' of https://github.com/moebooru/moebooru into master
2020-09-29 17:34:32 -05:00
app Merge branch 'master' of https://github.com/moebooru/moebooru into master 2020-09-29 17:34:32 -05:00
bin Add webpacker 2020-04-04 02:51:27 +09:00
config Update js packages 2020-09-23 17:22:04 +09:00
db Lowercase usernames app-side 2020-09-12 19:33:54 +09:00
lib Correctly return blank zip file on empty pools 2020-09-24 10:03:23 +09:00
public add custom favicon 2020-07-06 21:02:33 -05:00
script Update travis and bundler, and downgrade minimum postgresql 2020-03-17 16:59:38 +00:00
test Lowercase usernames app-side 2020-09-12 19:33:54 +09:00
.browserslistrc Add webpacker 2020-04-04 02:51:27 +09:00
.codeclimate.yml Shiny codeclimate platform engine. 2015-09-12 15:51:57 +09:00
.gitignore Add webpacker 2020-04-04 02:51:27 +09:00
.hgignore Ignore generated translations.js. 2014-11-20 17:50:48 +09:00
.travis.yml Actually update nodejs version 2020-09-24 10:16:37 +09:00
Gemfile Remove rubygems-based js libraries 2020-04-04 02:55:52 +09:00
Gemfile.lock Update gems 2020-09-12 19:56:38 +09:00
LICENSE Update license year and wording 2017-03-25 18:02:01 +09:00
README.md Update build env 2020-09-24 09:48:32 +09:00
Rakefile Double quotes everywhere. 2014-11-20 17:50:29 +09:00
babel.config.js Add webpacker 2020-04-04 02:51:27 +09:00
config.ru Increse memory limit 2017-04-02 17:06:10 +09:00
package.json Update js packages 2020-09-23 17:22:04 +09:00
postcss.config.js Add webpacker 2020-04-04 02:51:27 +09:00
yarn.lock Update js packages 2020-09-23 17:22:04 +09:00

README.md

Code Climate

Moebooru

An image board.

Requirements

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.

Installation

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)

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.

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.

Plans

  • Bug fixes
  • Documentation
  • And more!