まめもま2と名付けたPleromaをタダでつかいたい。
mamemoma2.mamemo.online 、PleromaをGCEのf1-microで動かすメモです。
とりあえず動いた、というところまでです。
sudo sh -xe << 'EOS'
echo "Hello"
EOS
みたいな部分は、EOSを含む最初の行から最後のEOSまでをまるっとコピペすると一気に動きます。
GCEに直接ログインできるユーザはsudoでrootになれます。この先の作業でそれとは別に「pleromaユーザ」をつくります。 「rootになれるユーザ」と「pleromaユーザ」をいったりきたりするので、ターミナルやPuTTYを2つひらいて作業するとよいとおもいます。
一定条件を満たせば、GCPはずっと無料になるみたいです。その条件とは
- 1 f1-micro インスタンス(1 か月あたり、バージニア州北部を除く米国リージョンのみ)
- 30 GB の HDD(期間合計)、5 GB のスナップショット(期間合計)
- 1 GB の北米から全リージョン宛ての下りネットワーク(1 か月あたり、中国とオーストラリアを除く)
らしいです。ただ、外国からSSH攻撃とかあると若干カウントされるみたいなので、多少課金される場合があるみたいです。
ひとまず GCEで オレゴン(us-west1)にf1-micro, Debian9でVMインスタンスをつくります。ブートディスクは標準の永続ディスクで、30GBの無料枠一杯でわりあてます。外部 IPは静的にします。(VMを破棄した場合このIPの解放を忘れると課金されるので注意)
アップデートして再起動する
sudo sh -xe << 'EOS'
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get -y dist-upgrade
apt-get -y autoremove
apt-get autoclean
reboot
EOS
しばらくまって再度SSHで接続します。次に、elixirなどを導入
sudo sh -xe << 'EOS'
export DEBIAN_FRONTEND=noninteractive
apt-get -y install git build-essential openssl ssh sudo postgresql-9.6 postgresql-contrib-9.6
wget -P /tmp/ https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i /tmp/erlang-solutions_1.0_all.deb
apt-get update
apt-get -y install elixir erlang-dev erlang-parsetools erlang-xmerl erlang-tools
EOS
ユーザの作成します
sudo groupadd -g 10000 pleroma
sudo useradd -g 10000 -u 10000 -s /bin/bash -m pleroma
もうひとつターミナルを開いて、SSH接続します。そのあと、以下のコマンドでpleromaユーザになります。
sudo su - pleroma
以下、sudoでootになれるユーザを「rootになれるユーザ」、pleromaユーザを「pleromaユーザ」としてすすめます。
pleromaユーザでpleromaをビルド
cd ~
sh -xe << 'EOS'
git clone https://git.pleroma.social/pleroma/pleroma
cd ~/pleroma
mix local.hex --force
mix local.rebar --force
mix deps.get
mix generate_config
EOS
mix generate_config がエラーになってしまうので、再度実行します。ここで、サイト情報を設定します。
mix generate_config
configをコピーします
cp config/generated_config.exs config/prod.secret.exs
rootになれるユーザでDBを作成します
sudo su postgres -c 'psql -f /home/pleroma/pleroma/config/setup_db.psql'
pleromaユーザでマイグレーション実行します
cd pleroma
MIX_ENV=prod mix ecto.migrate
nginx導入からLet's Encrypt適用まで にすすみます。