-
Notifications
You must be signed in to change notification settings - Fork 24
DevelopmentInstall
以下の情報は、1.4系(mainブランチ)について、Dockerを利用せずに一から構築する方法を示すものです。通常のインストール方法は、Installを参照してください。
- 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
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
Xcode と Homebrew をインストールした後、以下のコマンドを実行します。
$ 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のユーザを作成します。
# 必要に応じて -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をインストールし、起動します。
$ 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 3.2を、rbenv と ruby-build を使用してインストールします。
$ rbenv install 3.2.5
ソースコードを取得します。
$ 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