Prismo をインストールしてみたが、ドキュメントが腐っているという、オープンソースフリーソフトにありがちなものだったので、インストール手順をまとめておく。
- ソースを
git clone https://gitlab.com/prismosuite/prismoとかして ダウンロードする。 - ruby 2.5.1 が必要なので、rvm なり、rbenv なりで環境を整えておく。おすすめは、rbenv。
- Node.JS 10.x と yarn が必要なので、インストールしておく。
- bundler をインストール。
gem isntall bundler - sidekiq をインストール。
gem install sidekiq - Gemfile を修正する。
--- Gemfile.orig 2019-06-26 09:30:35.440184122 -0700
+++ Gemfile 2019-06-26 06:50:29.313718143 -0700
@@ -77,17 +77,19 @@
gem 'webmention'
gem 'webmention-endpoint'
gem 'doorkeeper'
+gem 'listen', '>= 3.0.5', '< 3.2'
+gem 'bullet'
group :development, :test do
gem 'dotenv-rails'
gem 'byebug', platforms: %i[mri mingw x64_mingw]
- gem 'bullet'
+ # gem 'bullet'
gem 'rspec-rails', '~> 3.7'
end
group :development do
gem 'web-console', '>= 3.3.0'
- gem 'listen', '>= 3.0.5', '< 3.2'
+ #gem 'listen', '>= 3.0.5', '< 3.2'
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
gem 'spring-commands-rspec'
@@ -118,4 +120,3 @@
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
bundle instlal --without development testyarnbundle exec rails assets:precompile RAILS_ENV=productionbundle exec rails secretで、SECRET_KEY を取得しておく。- 以下の環境変数を設定する。あとで、sidekiq の設定をするので、スクリプトにまとめておくと便利。名前は仮に、sidekiq.env としておく。
#! /bin/bash
export RAILS_ENV=production
export DB_NAME=prismo
export DB_USER=prismo
export DB_PASS=password
export DB_HOST=localhost
export REDIS_URL=redis://localhost:6379/1
export SECRET_KEY_BASE=[`bundle exec rails secret`で取得した値]
export LOCAL_DOMAIN=example.com
export WEB_DOMAIN=example.com
export S3_ENABLED=true
export S3_BUCKET=prosmo
export AWS_ACCESS_KEY_ID=[AWS S3 のアクセスキー]
export AWS_SECRET_ACCESS_KEY=[AWS S3 のシークレットキー]
export S3_REGION=us-east-1
export S3_HOSTNAME=https://s3.amazonaws.com
export SMTP_DOMAIN=example.com
export SMTP_SERVER=example.com
export SMTP_PORT=25
export SMTP_FROM_ADDRESS=no-reply@example.com
- Passenger を使う場合は、ここでインストールする。ウェブサーバー用のモジュールを作成して、a2enmod で有効にしておくことを忘れない。
- ウェブサーバーを設定する。例えば、apache なら以下の通り。
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.exmaple.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SetEnv NODE_ENV prod
SetEnv REDIS_URL redis://localhost:6379/1
SetEnv DB_HOST localhost
SetEnv DB_USER prismo
SetEnv DB_NAME prismo
SetEnv DB_PASS db-password
SetEnv DB_PORT 5432
SetEnv SECRET_KEY_BASE (bundle exec rails secret で取得した値)
SetEnv LOCAL_DOMAIN example.com
SetEnv S3_ENABLED true
SetEnv S3_BUCKET prosmo
SetEnv AWS_ACCESS_KEY_ID (S3のアクセスキー)
SetEnv AWS_SECRET_ACCESS_KEY (S3 のシークレットキー)
SetEnv S3_REGION us-east-1
SetEnv S3_HOSTNAME https://s3.amazonaws.com
RailsEnv production
DocumentRoot /srv/prismo/public
<Directory "/srv/prismo/public">
Options SymLinksIfOwnerMatch
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
- ここで、指定した URL にアクセスして正常に表示されることを確認する。
- 次に sidekiq 起動スクリプトを作成する。以下は、rbenv を使って ruby をインストールした場合の例である。
#! /bin/sh
PATH="/srv/prismo/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
source /srv/prismo/sidekiq.env
bundle exec sidekiq -q default -q mailers -q pull -q push
- OS 起動時に自動的に起動するよう、systemd のサービスファイルを作成する。名前は、仮に、/lib/systemd/system/prismo.service とする。
[Unit]
Description=Prismo - a link aggregator
After=network.target
[Service]
Type=simple
User=prismo
WorkingDirectory=/srv/prismo
ExecStart=/srv/prismo/sidekiq.sh
Restart=on-abort
[Install]
WantedBy=multi-user.target
- sidekiq を起動する。
sudo systemctl enable prismo
sudo system start prismo
- ここでブラウザに戻って、ユーザー登録を行い、確認メールが配送されることを確かめる。
- 確認メールの confirm my account というリンクをクリックして、ログインする。