Linux」カテゴリーアーカイブ

GCPにDocker無しでMastodonを立てる

Mastodonって何?

2016年10月に公開された新しいタイプのSNS.それが,2ヶ月前の4月から爆発的にユーザ数が増え云々等という詳しい情報はWikipediaを見て戴くとして,誰でも自前のインスタンスを立ち上げられるというのが最大の特徴.

いつも通り(直ぐ挫折するくせに・・・)「取りあえずやってみよう」と言う軽い気持ちで,私もこの新SNS,Mastodonのインスタンスを立てて見ました.

SNSのインスタンスを立てるには,最低限「インターネットに繋がるサーバ」を確保する必要があるのですが,これが結構コストが掛かります.まぁ,RaspberryPiでThe Internetに常時接続と言う猛者も居られますが・・・

常時接続を個人のPCで運用するには,かなり敷居が高そう(って,30年以上前には運用してましたが^^;)なので,VPSを借りることに.

VPSの用意

さくらのVPSが最も有名で,始めやすそうですが,可能な限りコストを抑えたい私としては,無料の環境をと言う事で,GCP(Google Cloud Platform)のサービス,GCE(Google Compute Engine)を利用させて戴きました.

制約内で使う分にはAlways Freeとのことで以下の構成になります.非常にチープです.

  • マシンタイプ f1-micro
  • 仮想CPUコア 1
  • メモリー   0.60GB
  • HDD     25GB

リージョンがus限定だという事なので,

  • ゾーン    us-west1-a

OSイメージは,何でも御座れと言わんばかりなリストの中から,最近は使わなくなったモノの少しは理解できるUbuntuを選択(ver 17.04は2018/01でサポート切れ).その他いろいろ設定.

  • OS      Ubuntu 16.04LTS
  • 外部IP    エフェメラルを固定IP予約取得に・・・直ぐに割当完了
  • firewall    HTTP,HTTPSにチェック

ひとまずこれで,最低限のVPS環境は手に入りました.

ここで,今回お世話になった(参考にさせて戴いた)サイトをまとめておきます.有り難うございました.下記以外にも一見させて戴いたサイトは数知れず・・・併せて,有り難うございました.

SSH接続後に最初に行うこと

 1.スワップ確保

メモリーが0.6GBしかないので何はともあれスワップ領域が絶対に必要!

$ sudo fallocate -l 4G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
$ cat /proc/swaps

 2.パッケージの更新

$ sudo apt-get update
$ sudo apt-get upgrade

いよいよMastodon環境造り

1.依存パッケージのインストール

$ sudo apt-get install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev nodejs file git curl
$ curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -
$ sudo apt-get install nodejs
$ sudo npm install -g yarn

 2.Redis のインストール

$ sudo apt-get install redis-server redis-tools

 3.Postgres のインストールとセットアップ

$ sudo apt-get install postgresql postgresql-contrib

postgresユーザとなって,MastodonのユーザとDBのセットアップ.

$ sudo su - postgres
postgres$ psql
psgl (9.5.6)
Type "help" for help.

から,postgres端末に入り,

postgres=# CREATE USER mastodon CREATEDB;
CREATE ROLE
postgres=# \q
postgres$ exit

この部分は,最新のマニュアルではこうなっている.

$ sudo -u postgres psql
postgres=# CREATE USER mastodon CREATEDB;
\q

 4.Ubuntu 16.04以前の要求事項

マニュアル内で,以下の指示があるので,
Under Ubuntu 16.04, you will need to explicitly enable ident authentication so that local users can connect to the database without a password:

$ sudo sed -i '/^local.*postgres.*peer$/a host all all 127.0.0.1/32 ident' /etc/postgresql/9.?/main/pg_hba.conf
$ sudo apt-get install pidentd
$ sudo systemctl enable pidentd
$ sudo systemctl start pidentd
$ sudo systemctl restart postgresql

 5.rubyの実行環境セットアップ

ここから先は別サイトの説明文を見ながらになるので,ちょっとスキルが必要.私は何度も転けた.

事前準備として,以下,諸々をインストール.

$ sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev

次いで,Rbenvのインストール作業に入りますが,ここで始めて【mastodonユーザの追加】を行い,mastodonユーザで作業を行います.パスワード無しがミソ.

$ sudo adduser --disabled-password --disabled-login mastodon ?
$ sudo su - mastodon

いよいよrbenvのインストール.

mastodon$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv

マニュアルでは,高速対応オプションとして,以下の設定を勧めている.失敗しても良いらしいが,私の場合は成功した(様に思う).

mastodon$ cd ~/.rbenv && src/configure && make -C src

またまた,Ubuntu Desktop note: Modify your ~/.bashrc instead of ~/.bash_profile.と指示されているので,以下の設定では.bash_profileでは無く,.bashrcを使用.

mastodon/.rbenv$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
mastodon/.rbenv$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc

ここで一旦,シェルの再起動をしておく.

mastodon/.rbenv$ source ~/.bashrc

以下のコマンドでrbenvの定義らしきモノが表示されれば,インストールの確認完了.

mastodon/.rbenv$ type rbenv

ここで,念のためにrbenvを最新にしておくと良いとのこと.

mastodon/.rbenv$ git pull

Rubyをインストールするためのプラグイン,ruby-buildのインストール.

mastodon/.rbenv$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

ここでも,念のためにruby-buildを最新にしておく.

mastodon/.rbenv$ cd ~/.rbenv/plugins/ruby-build
mastodon/.rbenv/plugins/ruby-build$ git pull

やっとここで,rubyのインストールとなる.この手順を間違うと,後々厄介.

mastodon/.rbenv/plugins/ruby-build$ cd ~/.rbenv
mastodon/.rbenv$ rbenv install 2.4.1
mastodon/.rbenv$ rbenv rehash
mastodon/.rbenv$ rbenv global 2.4.1

mastodon のインストール

 1.mastodonを取り込む

liveに移動することを忘れずに.

mastodon/.rbenv$ cd ~
mastodon$ git clone https://github.com/tootsuite/mastodon.git live
mastodon$ cd live
mastodon/live$ git checkout $(git tag | tail -n 1)

 2.プロジェクトの依存関係をインストール

yarn installに[–pure-lockfile]が必要になったので,ここも注意.

mastodon/live$ gem install bundler
mastodon/live$ bundle install --deployment --without development test
mastodon/live$ yarn install --pure-lockfile

 3.設定ファイルのコピー

mastodon/live$ cp .env.production.sample .env.production

 4.秘密鍵を生成(要コピー):3回分

mastodon/live$ rake secret
mastodon/live$ rake secret
mastodon/live$ rake secret

 5..env.production の要変更内容

mastodon/live$ vim .env.production

REDIS_HOST=(localhost or 127.0.0.1 )
DB_HOST=localhost or 127.0.0.1
DB_USER=mastodon
DB_NAME=mastodon  ←  マニュアルでは mastodon_production
DB_PATH=(空欄)
DB_PORT=5432

LOCAL_DOMAIN=(取得済のドメイン名)
LOCAL_HTTPS=false ← 後で,true に

PAPERCLIP_SECRET= (rake secret 1個目の結果)
SECRET_KEY_BASE= (rake secret 2個目の結果)
OPT_SECRET= (rake secret 3個目の結果)

SINGLE_USER_MODE=true

DEFAULT_LOCALE=ja

SMTP_SERVER=(実は何でもよい・・・)
SMTP_PORT=587
SMTP_LOGIN=(適当に)
SMTP_PASSWORD=(要注意)
SMTP_FROM_ADDRESS=(まぁ,これもそれなりに)
SMTP_OPENSSL_VERIFY_MODE=none
SMTP_DOMAIN=(これも適当)

※ SMTP関係は適当にしていますが,[SINGLE_USER_MPDE]で運用しますので,ユーザアカウントも手動で登録します.

 6.データベースの初期化

mastodon/live$ RAILS_ENV=production bundle exec rails db:setup

 7.CSS,JavaScript の生成

mastodon/live$ RAILS_ENV=production bundle exec rails assets:precompile

(su 出来るユーザに戻る)

mastodon/live$ exit

 8.systemd 関連の設定

以下のファイルを作成し,マニュアルの内容を貼りつける

$ sudo touch /etc/systemd/system/mastodon-web.service
$ sudo touch /etc/systemd/system/mastodon-sidekiq.service
$ sudo touch /etc/systemd/system/mastodon-streaming.service

【各サービスの起動設定+起動】

$ sudo systemctl enable /etc/systemd/system/mastodon-*.service
$ sudo systemctl start mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service

http/httpsサーバ環境構築

 1.nginx のインストール

この時点までに GCP 側でファイアウォールルールに tcp:3000 を設定し,インスタンスに設定したネットワークタグを追加しておく

$ sudo apt-get install nginx

※ http://(ドメイン名):3000 → http://(ドメイン名):3000/admin で「Mastodon」画面表示

 2.Nginx設定ファイルの作成

$ sudo touch /etc/nginx/conf.d/mastodon.conf
$ sudo vim /etc/nginx/conf.d/mastodon.conf

設定をまるごとコピーし,ssl証明書部分のドメイン部分を書き換えてコメントアウト

※ http://(ドメイン名)で,Nginx の画面へ

 3.Let’s EncryptからSSH/TLS証明書取得

certbotの導入

$ cd /usr/local
$ sudo git clone https://github.com/certbot/certbot
$ cd certbot

正常インストールの確認

$ ./certbot-auto --help

【証明書の取得】

$ ./certbot-auto certonly --standalone -d (ドメイン名) -m (連絡先メールアドレス) --agree-tos -n

 4.Nginx設定ファイル編集

ssl証明書部分をコメントインして加筆

$ cd ~
$ sudo vim /etc/nginx/conf.d/mastodon.conf

※ ssl_dhparam /etc/ssl/certs/dhparam.pem; コメントアウト!

註:2017/06/09時点では,マニュアルから削除されているが,後ほど投稿する記事の通り,この設定を生かすことで,SSL Server Testの評価が上がる.

$ sudo su - mastodon
mastodon$ cd live
mastodon@live$ vim .env.production

LOCAL_HTTPS=true に戻すして,サーバを再起動.

mastodon@live$ exit
$ sudo systemctl reload nginx

※ GCP 側でインスタンスに設定したネットワークタグを削除しておく

管理者権限のユーザ登録

 1.ユーザ登録

ユーザ登録でログイン画面に移るが,メール送信が機能していないと確認メールは届かないので,ユーザーを手動で有効にする

※ メール機能が有効ならこの操作は不要

$ sudo su - mastodon
mastodon$ cd live
mastodon@live$ RAILS_ENV=production bundle exec rails mastodon:confirm_email USER_EMAIL={user e-mail}
mastodon@live$ exit

なお,未確認ユーザを一括消去するなら以下のコマンドを.

RAILS_ENV=production rake mastodon:users:clear

 2.管理者設定・・・未確認ユーザでも登録されていれば昇格可能

$ sudo su - mastodon
mastodon$ cd live
mastodon@live$ RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME={username}

Mastodonの管理画面

https://(ドメイン名)/admin/settings

で,設定画面に・・・(設定からは[管理]→[サイト設定])

・[新規登録を受け付ける]  有効 → 無効

ぐらいは最低限設定しておこう・・・

※ 次回からは

https://(ドメイン名)/web/getting-started

でOK?

実は未だ,いろいろ微調整が必要なようですが,それはまた別の記事で・・・

 

ubuntu 13.04 → 13.10 アップグレードに苦戦

ubuntu 13.10 がリリースされたというので,早速バージョンアップを考えていると,定期的に「ソフトウェアの更新」がアップグレードを煽ってくるんですよねぇ。? :)

Screenshot_from_2013-11-06 01:13:46

しかし,Ubuntu Japanese Team のリリース情報によると?リリースノートの日本語入力に関する部分?で iBus の仕様変更により,不都合だらけの改悪仕様に成り下がった様です。 :evil:

残念なことに,どうも 13.10 そのものが Windows 8 仕様を意識しているとかで,何とも情けない事情なのですが,対処療法的ではあるものの,その後リリースされた日本語 Remix でも導入されている環境を加えればほぼ元に戻せると判りましたので,手順を残しておきます。 ?:grin:

しかし・・・途中,かなりやばいことになってしまって・・・

では,アップグレード開始・・・その1(なぜ,その1なんでしょう :-|

Screenshot_from_2013-11-06 01:15:29

Screenshot_from_2013-11-06 01:16:00

Screenshot_from_2013-11-06 01:16:54

Screenshot_from_2013-11-06 01:17:31

Screenshot_from_2013-11-06 01:18:08

と,ここまでは順調。後はインストールを待つだけ・・・のはずが・・・

Screenshot_from_2013-11-06 01:19:32

あっ!そうか・・・こういうバージョンアップの時はゴッソリダウンロードしてから書き換えていくので,それだけの容量が必要なんですねぇ。忘れてた。? :?

しかも,我が愛機 eeePC 901X は買ったままの SSD 4GB+8GB 仕様のため,ギリギリで運用中だったのでした。「/」は4GB側のSLCに,「/usr」を8GB側のMLCに切り分けてはいるものの,システム側の4GBは厳しいのは確か。

と言うことで,Ubuntu Tweak や apt-get autoclean 等をせっせと行なって「/」側をダイエットし続けましたが,未だ数百MBの空きが足りない。

Baobab (ディスク使用量の解析)で見ると,どうやら Wine が500MB以上を食っていると判明。一旦,Wine を remove することにしました。これが正解!

何とかギリギリ1.7GB程確保して「ソフトウェアの更新」から再開。

では,アップグレード開始・・・その2

容量不足の難関は何とかクリアして(と言っても,時折「容量が少なくなっています」というメッセージは続くのですが・・・),アップグレードのインストール。

Screenshot_from_2013-11-09 20:25:12

Screenshot_from_2013-11-09 20:25:44

Screenshot_from_2013-11-09 20:27:07

Screenshot_from_2013-11-09 21:05:15

ま,その後もいろいろ有りましたが,無事インストールを済ませ,いまのところ問題なく・・・いや,iBusは使いづらくなっています・・・使えています。

Ubuntu 8.10 にアップグレード・・・いやぁ・・・大変!

EeePC901はWindowsXPとしては使うものの,まだLinuxマシンとしてはそれほどバリバリ使っている訳ではありません。日本語変換がATOK風にできないのが最大の難点。(方法は有るんでしょうが,ややこしくて・・・)

で,最近になってパッケージマネージャーが毎回「Ubuntu 8.10にアップグレードできます」と言ってくるので,どうせダメなら入れ替えればいいか?と,軽い気もちで試してみることにした。

そのままアップグレードを選ぶだけですが,長時間を要するらしいので,できれば有線LANが好ましいでしょうし,寝る前にスタートと言うのがベストかと。・・・私は一応,無線のままで就寝前に。

途中,残り7時間だの8時間だのと言ってきていましたが,朝には途中で「〜と入れ替えますか」と言うプロンプトで止まっていた。ま,残り2時間程度のところですが。

grubもちゃんと入れ替えられて,すんなり再起動できました。ここまでは順調。

で,やっぱりと言うか,無線LANが認識できません。 続きを読む

eeeUbuntu 8.04 インストール顛末

念願のUbuntuを,ASUS Eee PC 901-Xにインストール出来ましたので,その顛末をここにまとめておきます。 :)

私の目指したインストール環境はやや特殊かも知れませんが,こんな感じです。

  1. インストール先はSDHCとする
  2. SDHCからのブート方式を採用・・・(自動ではWinXPがSSD-SLCから起動)
  3. インストール用デバイスはSD
  4. LinuxディストリビューションはeeeUbuntu 8.04で,ライブCDの部屋から調達
  5. 調達方法はBitTorrent方式とする

先ずSHDCは,値段も手頃になってきた8GBタイプとする事に決定し,定番の上海問屋から購入することにしました。一応,class6の梅に鶯バージョンです。

続きを読む

Ubuntu を調べてみると・・・

Ubuntu はいったい幾つに派生しているのか?ちょっと,整理してみることにします。

まずは大元の Ubuntu ですが,[/ùbúntú/] (oo-BOON-too) と発音し,Debian をベースに開発されており,半年毎にリリースされることが特徴。現時点での最新版は8.04LTS(コードネーム:Hardy Heron)。→ 詳細を知る

こんなことが出来る

WINDOWS VISTA AERO VS LINUX UBUNTU BERYL

GNU/LINUX UBUNTU 7.04 Feisty Fawn

Fluxbuntu で補足

前回の調査では,Fluxbuntuについてよく判らなかったのですが,Wikipediaに詳しく載っていました。
それによると,Fluxbuntuは,Ubuntu系でありながら,非公式なディストリビューションらしい。Fluxboxウィンドウマネージャーを搭載しているところが,根本的に他とは違うとか。
とにかく軽量化ということで,OpenOffice.org, Firefox などが,他のソフトに置き換わっている。
Firefoxは,同じGeckoエンジンの風博士というのが入っているらしい。
なんか,面白そうなディストリではある。

EeePC には Ubuntu が良いらしい

KNOPPIX 続きでいろいろ調べていると,EeePC901のLinuxバージョンは「Ubuntu」だとか。「Xandros」だそうです。

いろんな方のインストール記事を見ていると,Xubuntu,Xandros ubuntu という名称も出てくる。・・・いつの間にか,Linux からの派生バージョンがいろいろと入り組んできているよう。ちょっと,まとめて見ます。

  • KNOPPIX <- Debian
  • Ubuntu <- Debian : GNOME 環境
  • Edubuntu <- Debian : GNOME 環境で教育用にカスタマイズ
  • Kubuntu <- Debian : KDE 環境
  • Xubuntu <- Debian : Xfce 環境で軽い
  • eeeXubuntu <- EeePC 用に特化した Xubuntu ・・・無線LAN等が一発
  • Fluxbuntu <- Debian : ubuntu シリーズで最も軽い → ここからDL
  • Gobuntu <- Debian : フリーソフトウェアのみの構成
  • Ecolinux <- Ubuntu : 日本の高校生が主導
  • Ecolinux-ez <- Ubuntu : 初心者向け
  • LinuxMint <- Ubuntu : GNOME, KDE, Xfce, Fluxbox 環境エディションに分かれる
  • gOS <- Ubuntu , Google アプリで統一?でも Good OS の意味らしい
  • Xandros <- CoreLinux ・・・海外版 eeePC/Linux
  • VineLinux <- RedHatLinux :日本オリジナル・・・製品版にはフォント多数
  • PuppyLinux <- Linux 系:最も軽量・・・日本語版で約100MB

ま,いろいろとありますが,SDHCカードを購入して,eeeXubuntu を導入してみようと思います。

KNOPPIX を試す-1-

CDから起動するタイプのLinuxとして,KNOPPIX と言うのが有名らしい。いつの間にか,様相は変わっているようで,隔世の感が・・・って20年近く前との比較ですが。

上のリンクは「公式ホームページ」になるそうですが,リンク元の方が詳しいので,そちらもURLを載せておきます。

http://unit.aist.go.jp/itri/knoppix/

ところでこの KNOPPIX ですが,「クノーピクス」と発音し,WikiPediaによると

元々はドイツのKlaus KnopperがDebianパッケージを元に開発しており、日本語版は独立行政法人産業技術総合研究所が日本語化をはじめとする、日本の国情にあわせた様々な機能を追加して配布を行っている、1枚のCD-ROMから起動することができるLinuxディストリビューションである。

とのこと。いち早く DVD 化したり,そのコンパクト版の CD も,産総研が手がけているとか。結構やりますねぇ・・・

続きを読む