Linux に ForeM をインストールする


この投稿は @benkei さんのリクエストによるものです

この記事では、解説にはあまり力を入れず、コマンドの実行をより明確にすることを好みます.したがって、シェル コマンド以外の単語を見つけたら、よく調べてください.

このガイドに従う際のもう 1 つのヒントは、1 つのコマンドが 1 行にあることです.

このガイドは、Linux に forem をインストールしたいすべての人に役立ちます.ある意味では、これは Docker または Podman を使用せずに Forem をインストールする代替方法です.

システムの更新とForemのダウンロード



sudo apt update
sudo apt upgrade
git clone https://github.com/forem/forem.git
cp ~/forem/.env_sample ~/forem/.env


ルビーのインストール



sudo apt install git curl autoconf bison build-essential \
    libssl-dev libyaml-dev libreadline6-dev zlib1g-dev \
    libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev



git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
exec $SHELL



git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
exec $SHELL



rbenv install $(cat ~/forem/.ruby-version)
rbenv global $(cat ~/forem/.ruby-version)


NVM と糸をインストールする



curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh -o install_nvm.sh



bash install_nvm.sh
source ~/.profile
nvm install $(cat ~/forem/.nvmrc)
nvm use $(cat ~/forem/.nvmrc)



npm install -g yarn


Postgresql のインストール



sudo apt-get install postgresql postgresql-contrib libpq-dev -y


次のコマンドで、「ubuntu」という用語を独自のユーザー名に置き換えます.

sudo -u postgres createuser -s ubuntu
createdb
sudo -u ubuntu psql


ここで、psql 内で \password コマンドを使用して、ユーザー ubuntu のパスワードを作成します.このパスワードでデータベースを作成します (後で).

コマンド \quit を使用して psql を終了できます.これは、VPS の元の bash/ターミナルに入るのに役立ちます.

それに応じて、DATABASE_URL ファイルで DATABASE_URL_TEST.env を更新しましょう.

nano ~/forem/.env



DATABASE_URL="postgresql://ubuntu:mypassword@localhost:5432/$DATABASE_NAME"
DATABASE_URL_TEST="postgresql://ubuntu:mypasswordk@localhost:5432/$DATABASE_NAME_TEST"


Imagemagick のインストール



sudo apt update && sudo apt install imagemagick


Redis のインストールと構成



sudo apt install redis-server -y



sudo nano /etc/redis/redis.conf


移動して変数 supervised を見つけ、その値を systemd に変更します.

sudo systemctl restart redis.service


エラスティック検索のインストール



wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-7.5.2-amd64.deb



sudo dpkg -i elasticsearch-oss-7.5.2-amd64.deb


ローエンド サーバーでこの Forem を試してみようとしている場合は、おそらく 1GB または 2GB の RAM です.メモリ ヒープを編集することは必須です.そして、もしあなたがそれらの中にいるなら、これらに従ってください.

If you are not sure about this, skip and continue with the next step, but if you are facing any error in starting Elasticsearch try referring to this.



sudo nano /etc/elasticsearch/jvm.options


  • まず、Xmx と Xms の値のコメントを外します.
  • 次に、-Xms と -Xmx の値を物理 RAM の 50% 以下に変更します.

  • # Xms represents the initial size of total heap space
    # Xmx represents the maximum size of total heap space
    # Use 128m if 1GB ram and 256m if 2GB ram
    
    -Xms128m
    -Xmx128m
    


    それでは、エラスティックサーチを開始しましょう

    sudo /bin/systemctl daemon-reload
    sudo /bin/systemctl enable elasticsearch.service
    sudo systemctl start elasticsearch.service
    


    ImgProxy のインストール



    git clone https://github.com/imgproxy/imgproxy.git
    cd imgproxy
    



    sudo add-apt-repository ppa:dhor/myway
    sudo apt-get update
    sudo apt-get install libvips-dev
    



    sudo add-apt-repository ppa:longsleep/golang-backports
    sudo apt-get update
    sudo apt-get install golang-go
    



    sudo CGO_LDFLAGS_ALLOW="-s|-w" \
      go build -o /usr/local/bin/imgproxy
    


    次に、Imgproxy の .env を構成しましょう
  • 端末で次のコマンドを 2 回実行して、キーとソルトのペアを生成します.次のステップで、これらの値を .env にコピーします

  • echo $(xxd -g 2 -l 64 -p /dev/random | tr -d '\n')
    


    ランダムな文字列が 1 つあります.しかし、2 つ必要なので、このコマンドをもう一度実行しましょう.

    echo $(xxd -g 2 -l 64 -p /dev/random | tr -d '\n')
    


    これで、2 つのランダムな文字列ができました.そのうちの 1 つを key とし、もう 1 つを salt とします.これは、.env ファイルに数行追加することで実行できます.

    nano ~/forem/.env
    


    この 3 行を追加して、ファイルを保存します.

    IMGPROXY_ENDPOINT='http://localhost:8080'
    IMGPROXY_KEY='1b1c9aae804e070b0864f2547fba7ce8ff31bf7..........'
    IMGPROXY_SALT='8c6d449d4fc2cada5bab538826cae709d2ade9f.........'
    

    keysalt を、数ステップ前に生成した値に置き換えます. (これらの値を入れ替えることはできますが、慣例として、最初の値をキーとして使用し、後の値をソルトとして使用します)

    また、これらの値をこの方法で保存して、このコマンドを使用して Imgproxy を開始できるようにします.

    IMGPROXY_KEY='your key' IMGPROXY_SALT='your salt' imgproxy
    


    これで、インストールに必要なサイド パックがすべて揃いました.

    Foremのインストールと起動



    VPS を使用している場合は、APP_DOMAIN ファイル内の VPS IP アドレスで .env の値を更新することが必須です.
  • コマンド ifconfig を使用して VPS IP アドレスを見つけることができます
  • .env ファイルを編集するには、次のコマンドを使用します: nano ~/forem/.env

  • sudo apt-get install libcurl4 libcurl4-openssl-dev -y
    cd ~/forem
    gem install bundler
    yarn install
    bin/setup
    rails db:reset
    rails data_updates:run
    


    Now open 3 Terminal, the three boxes below indicate 3 different terminals


  • ターミナル01

  • IMGPROXY_KEY='your key' IMGPROXY_SALT='your salt' imgproxy
    


  • ターミナル02

  • ./bin/webpack
    bundle exec sidekiq -t 25
    


  • ターミナル03

  • bin/rails s -p 3000 -b 0.0.0.0