Skip to content
Kosuke Tanabe edited this page Aug 25, 2024 · 9 revisions

開発者向けインストール

以下の情報は、1.4系(mainブランチ)について、Dockerを利用せずに一から構築する方法を示すものです。通常のインストール方法は、Installを参照してください。

必要なもの / Requirement

  • Ruby 3.2以上
  • Ruby on Rails 7.1
  • Java SE / OpenJDK 11以上
  • PostgreSQL 13以上 (強く推奨 / recommended)
    • Next-L Enjuは、1.4以降ではPostgreSQLのみをサポートします。詳細はRoadmapをごらんください。
  • ImageMagick
  • Redis
  • Apache Solr 8以上
  • yarn
  • Node.js

セットアップ / Setup

Debian / Ubuntu / RPi

Debianは11以降、Ubuntuは22.04以降を推奨します。

$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install imagemagick libicu-dev zlib1g-dev unzip \
 openjdk-11-jre-headless git libxslt1-dev build-essential nodejs redis-server
$ sudo apt-get install postgresql libpq-dev nodejs
$ npm install yarn

macOS

XcodeHomebrew をインストールした後、以下のコマンドを実行します。

$ brew install rbenv ruby-build imagemagick node redis yarn
$ brew install openssl readline icu4c postgresql
$ initdb /usr/local/var/postgres

以下のコマンドでPostgreSQLを起動します。

$ postgres -D /usr/local/var/postgres & # PostgreSQLを起動

PostgreSQLの設定

PostgreSQLのユーザを作成します。

# 必要に応じて -p オプションでパスワードを設定すること
$ sudo su postgres -c 'createuser vagrant --interactive' # -p yourpassword
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) y

上の例では、ログイン中のログインID(vagrant)と合わせたPostgresSQLのユーザ名を作成しています。ログイン中のログインIDとPostgresSQLのユーザ名を合わせておくとUbuntuではパスワードの設定なしで利用できます。実行する環境にあわせて適宜変更してください。

Solrの設定

Solrをインストールし、起動します。

$ wget https://archive.apache.org/dist/lucene/solr/8.11.3/solr-8.11.3.tgz
$ tar zxvf solr-8.11.3.tgz
$ cd solr-8.11.3
$ bin/solr start

Rubyのインストール

Ruby 3.2を、rbenvruby-build を使用してインストールします。

$ rbenv install 3.2.5

Enju Leaf本体のインストール

ソースコードを取得します。

$ git clone -b main https://github.com/next-l/enju_leaf.git

必要なライブラリをインストールします。

$ cd enju_leaf
$ bundle install

環境変数を保存する設定ファイル.envを作成します。

$ cp .env.template .env

.envを開き、データベースの接続情報を編集します。

# development環境で構築する場合、"production"を"development"に変更
RAILS_ENV=production
# production環境でリバースプロキシを使用しない場合、コメントを解除
RAILS_SERVE_STATIC_FILES=true

# ユーザ名、ホスト名、パスワードを適宜変更
POSTGRES_USER=vagrant
POSTGRES_HOST=localhost
POSTGRES_PASSWORD=password
DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}/enju_leaf_${RAILS_ENV}

# ホスト名を変更
REDIS_URL=redis://localhost:6379

# ホスト名を変更
SOLR_URL=http://localhost:8983/solr/enju_leaf_${RAILS_ENV}

PostgreSQLのデータベースを作成します。

$ bundle exec rake db:create:all
$ bundle exec rake db:migrate

Solrのコアを作成します。

# development環境で構築する場合、"production"を"development"に変更
$ ~/solr-8.11.3/bin/solr create -c enju_leaf_production -d solr/configsets/sunspot/conf/

enju_leafのインストールスクリプトを実行します。

$ bundle exec rake enju_leaf:setup
$ bundle exec rake db:seed

以下のような出力があれば、インストールスクリプトの実行は成功しています。

Administrator account created.

JavaScriptとスタイルシートを作成します。

$ yarn install

# development環境の場合は不要
$ bundle exec rake assets:precompile

インストールはこれで完了です。

アプリケーションの起動

端末をふたつ開き、一方の端末で非同期処理用サーバを起動します。

$ QUEUE=* bundle exec rake environment resque:work

もう一方の端末でWebサーバを起動します。

# development環境の場合、"-e production"は不要
$ bundle exec rails s -e production

以下のようなメッセージが表示されたら、Webブラウザで http://localhost:8080 を開いてください。 初期ユーザ名は "enjuadmin", パスワードは "adminpassword" です。

Puma starting in single mode...
* Puma version: 5.6.4 (ruby 2.7.6-p219) ("Birdie's Version")
*  Min threads: 5
*  Max threads: 5
*  Environment: production
*          PID: 33755
* Listening on http://0.0.0.0:3000
Use Ctrl-C to stop

停止はCtrl+Cキーで行います。

アップデート

以下の手順を実行した後、アプリケーションを再起動してください。

$ cd enju_leaf
$ git pull
$ bundle install
$ rake db:migrate
$ rake assets:precompile