Web Systemの最近のブログ記事

uehatsu (2017年4月25日 15:15)

【2017/04/26 01:17 追記】

本格運用されたい方は外付けHDDをUSBでつないで、swap領域をそちらに逃がしてください。

【2017/04/25 19:18 追記】

今回利用したのはRaspberry Pi 2B 1Gです。3Bならもう少し速く使えるかも。


さて、横浜鯖管理人のHatsuhito UENOことuehatsuです。先日からmastodonにはまってます。このゆるさがいいですね。

昨晩ふと思い立ってRaspberry Piにmastodonを立ち上げて見ましたので簡単にまとめます。

1. Raspbianをインストール

いろいろとサイトがあるので見てインストールしてください。

2. Dockerをインストール

$ curl -sSL https://get.docker.com/ | sh
$ sudo systemctl start docker
$ sudo usermod -aG docker pi

3. docker-composeをインストール

以下のサイトを参考にしました。Raspberry Pi用のdocker-composeをDockerイメージで配布してくださっています。

https://hub.docker.com/r/t0rx/rpi-docker-compose/

$ curl -L https://github.com/docker/compose/releases/download/1.7.1/run.sh > docker-compose
$ sudo mv docker-compose /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo vi /usr/local/bin/docker-compose
===== IMAGE行を以下に書き換え =====
IMAGE="t0rx/rpi-docker-compose:latest"
===== IMAGE行を以上に書き換え =====
$ docker-compose --version
↑イメージのダウンロードなどが始まりしばらくするとバージョンが表示されます

4. rpi-mastodonをgit clone

$ cd /var/lib/
$ sudo git clone https://github.com/gilir/rpi-mastodon.git
$ cd rpi-mastodon

5. rpi-mastodonの初期設定

$ sudo cp .env.production.sample .env.production
$ vi .env.production
↑よしなに編集

6. テスト起動

念のためテスト起動してみる

$ sudo docker-compose up -d

ここで色々とエラーがでるので、表示の通りに実行する。
何度か繰り返すと無事に起動する。docker-compose buildはする必要はない。

7. rake secretの実行

$ sudo docker-compose run --rm web rake secret

3回繰り返し、その結果を PAPERCLIP_SECRET, SECRET_KEY_BASE, OTP_SECRET に(この辺は普通のmastodonと変わらないので省略)

8. もう一度起動 & swap領域の拡張

$ sudo docker-compose stop
$ sudo docker-compose up -d

ここでメモリーが足りないことに気づいたのでswapを増やしておく。このswapの場所がSDカード上のため読み書きが頻発しSDカードの寿命を縮める事に。本格運用するなら外付けHDDなどに置く必要があるかも。ここを参照にした → http://qapla.blog52.fc2.com/blog-entry-296.html

$ sudo docker-compose stop
$ swapon -s
Filename                                Type            Size    Used    Priority
/var/swap                               file            102396  0       -1
$ sudo systemctl stop dphys-swapfile
$ sudo vi /etc/dphys-swapfile
=====
CONF_SWAPSIZE=1024
=====
$ sudo systemctl start dphys-swapfile
(しばらく時間かかる)
$ swapon -s
Filename                                Type            Size    Used    Priority
/var/swap                               file            1048572 0       -1
$ sudo docker-compose up -d

9. もろもろ

$ sudo docker-compose run --rm web rails db:migrate
$ sudo docker-compose run --rm web rails assets:precompile

10. nginxのインストール

SSL証明書はとりあえずオレオレ証明書を使いました。いろいろ検索すれば出てきますので省略。

$ sudo apt-get install nginx
$ vi /etc/nginx/conf.d/mastodon.conf 

https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Production-guide.md に書いてあるnginxの設定ファイルを書き換えて使いました。このまま使うとアセットが表示されないので以下の修正をしています。ホスト名は rpi.mastodon.local にしました。

  location /assets {
    add_header Cache-Control "public, max-age=31536000, immutable";
    try_files $uri @proxy;
  }

11. nginxの起動

$ sudo systemctl start nginx

これでブラウザからアクセスすると表示されました。

95b9016a3b3861b8.jpeg

cronの設定などは同じなので省略。
この時点で投稿は出来るようになりますが、メールの送信ができないので以下の方法でユーザーを強引に登録します。

$ sudo docker-compose run --rm web rails mastodon:confirm_email USER_EMAIL={登録したメールアドレス}



ついでにadminの設定もしておきます

$ sudo docker-compose run --rm web rails mastodon:make_admin USERNAME={登録したユーザー名}

これでお一人様インスタンスは完成です。自宅ネットワークからだとFWの問題などあって外部とは繫がりません。それ以上の事は自宅サーバの立ち上げ方なので省略します。


こんな感じでインスタンスがRaspberry Piに立ち上がりました。自宅で眠っているRaspberry Piがあったら立ち上げて見るのも面白いかもしれません。docker-compose buildをするにはハードルがまだまだ高いので、自分はこのあたりで手を引く予定ですw


私の所属している会社 アルカセット・コンサルティング株式会社 ではECサイトを一緒に作ってくれるエンジニアを募集中です。気になったかたは以下にメンションかDMを送ってください。

mastodon : @uehatsu@mastodon.yokohama

twitter : @uehatsu


uehatsu (2013年7月12日 20:31)

前回の懸案だったnginxでMovable Type 6.0 Beta 1 の Loupe (mt-data-api.cgi) が動作しなかった点が解消されたのでご報告いたします。

内容はいたって簡単。proxy設定をするだけでした(^^;;

既に nginx で MT が PSGI 起動している場合は、その設定をコピーして書き換えるだけでOKです。

自分の環境ではこんな感じ。nginx の設定を変更したら、サービスをリスタートします。

    location ~ ^/cgi-bin/mt/mt-data-api.cgi {
        proxy_connect_timeout 90;
        proxy_send_timeout 90;
        proxy_read_timeout    90;
        proxy_pass http://mt;
        break;
    }
    location ~ \.cgi$ {
        proxy_connect_timeout 90;
        proxy_send_timeout 90;
        proxy_read_timeout    90;
        proxy_pass http://mt;
        break;
    }

プラグイン設定で Loupe の出力先を設定し、PCのウェブブラウザやスマホでアクセスするとログイン画面の後、以下のような画面が表示されます。

IMG_0661.PNGIMG_0660.PNG

スマホ画面から MT Data API, MT Chart API を利用した Loupe の画面にアクセスできます。サイト、ブログごとのPV、ファイルアップロード機能、コメントなどのフィードバック、1週間のアクセス数一覧、1日分のトップPVベスト3、1週間分のトップPVベスト3、などが表示されます。

iPhone の Safari でアクセスした場合、ローカルメディアにはアクセスできないので、ファイルアップロード機能のエリアは表示されないみたいです。PC からアクセスしたら表示されました。Android ではどうでしょう、手元に端末が無いので試せていませんが、、、

こんな感じで Loupe は、MT Data API, MT Chart API のポテンシャルを覗かせてくれています。MT Data API, MT Chart API のドキュメントはMT github wikiにまとまりつつあるようですが、トップページからはまだリンクされていないようなので(どうだろう?)ここではリンクしないでおきますね :-Pリンクされていました。追記2参照)

追記1:
yujiさんからご指摘あったように iOS 6 ではローカルメディアから写真のアップロード(ストック済みでも、その場で撮影でも可)が出来る事を確認しました。以下添付した画面。
image.jpg

追記2:
ドキュメントですが、既にトップに張られていました。うっかりミス(^^;;) こちらです。
https://github.com/movabletype/Documentation/wiki/English-developer-guide

Movable Type 5.1 プロの現場の仕事術
Movable Type 5.1 プロの現場の仕事術 荒木 勇次郎 蒲生 トシヒロ 藤本 壱 西畑 一馬 柳 泰久 伊藤 のりゆき 金子 順 高橋 真弓 天野 卓 奥脇 知宏

毎日コミュニケーションズ 2011-06-30
売り上げランキング : 104299


Amazonで詳しく見る
by G-Tools
基本からしっかりわかる Movable Type 5カスタマイズブック (Web Designing BOOKS)
基本からしっかりわかる Movable Type 5カスタマイズブック (Web Designing BOOKS) 大藤幹 シックス・アパート株式会社

毎日コミュニケーションズ 2010-03-24
売り上げランキング : 115011


Amazonで詳しく見る
by G-Tools
Movable Type 5でつくる!最強のブログサイト
Movable Type 5でつくる!最強のブログサイト 小川 晃夫 南大沢ブロードバンド研究会

ソーテック社 2010-03-13
売り上げランキング : 147634


Amazonで詳しく見る
by G-Tools
uehatsu (2013年6月20日 15:38)

最近NoSQLがもてはやされておりますが、代表と言ったらMongoDBでしょうか。そのMongoDBをディスリまくっていることで有名(?)なのがRedis。スピードもさることながら、導入の手軽さや、レプリケーション実装、ホットバックアップなどなどいたれりつくせり。ただ、今ひとつ有名になりきれていない感が。

今、githubクローンのgitlabというRailsアプリを動かしているんですが、その中のコンポーネントの一つとしてこのRedisが必要でした。Ubuntuなんかには普通にポーティングされているけど、Amazon Linuxのレポジトリには無く、CentOSもremiレポジトリに用意されているのはちょっと古いバージョンだったりと、そこも残念感たっぷり。そこでインストール手順をまとめてみました。

1. Redisのインストール
make test に tcl が必要なので、test 前にインストールしています。

# cd /usr/local/src
# wget http://download.redis.io/redis-stable.tar.gz
# tar zxvf redis-stable.tar.gz
# cd redis-stable
# make
# yum install tcl
# make test
# make install

2. 設定ファイルの配置
設定ファイル無しでもサービスは起動できますが、この後する自動起動に必要なので用意します。

# mkdir /etc/redis /var/lib/redis
# cp redis.conf /etc/redis/.
# vi /etc/redis/redis.conf
以下の箇所を書き換えて下さい

(修正前)
=====
daemonize no

logfile stdout

dir ./
=====

(修正後)
=====
daemonize yes

logfile /var/log/redis.log

dir /var/lib/redis/
=====

3. Initファイルの用意
同梱のInitファイルはそのまま使えないのでGistからダウンロードします。

# curl https://gist.github.com/uehatsu/5800543/download | tar zx -O > /etc/init.d/redis-server
# chmod a+x /etc/init.d/redis-server

4. 起動設定と起動
サービスインストール後のお約束です。

# chkconfig redis-server on
# chkconfig redis-server --list
=====
redis-server 0:off 1:off 2:on 3:on 4:on 5:on 6:off
=====
# service redis-server start

これで準備が出来ました。Redis自体の利用方法などは、他に詳しいサイトがありますので、そちらをご覧下さい:-P

WEB+DB PRESS Vol.73
WEB+DB PRESS Vol.73 設樂 洋爾 白土 慧 奥野 幹也 佐藤 鉄平 後藤 秀宣 mala 中島 聡 堤 智代 森田 創 A-Listers はまちや2 大和田 純 松田 明 後藤 大輔 ひろせ まさあき 小林 篤 近藤 宇智朗 まかまか般若波羅蜜 Mr. O WEB+DB PRESS編集部

技術評論社 2013-02-23
売り上げランキング : 9773


Amazonで詳しく見る
by G-Tools

NOSQLの基礎知識 (ビッグデータを活かすデータベース技術)
NOSQLの基礎知識 (ビッグデータを活かすデータベース技術) 本橋信也 河野達也 鶴見利章 太田 洋

リックテレコム 2012-04-25
売り上げランキング : 8038


Amazonで詳しく見る
by G-Tools

NoSQLデータベースファーストガイド
NoSQLデータベースファーストガイド 佐々木 達也

秀和システム 2011-04
売り上げランキング : 182418


Amazonで詳しく見る
by G-Tools
uehatsu (2012年10月30日 22:13)

30からのBlog」さんの「[雑記]無線LANが遅くてチャネルを調べるときmacが便利だった件」からの転載です。

Wifiのチャネルを調べるツールを探していたら、OS Xには標準でついてました。いやー、知らなかった。

$ cd /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/
$ ./airport -s

自宅でチェックする限り家で使っているチャネルは周囲のお宅とコンフリクトしていない模様

このコマンドで出力される内容は"SSID", "MACアドレス", "チャネル", "暗号化方式"など。
こんな便利なツール、今まで知らなかったのが悔やまれますw

WiFi.jpg
uehatsu (2012年10月30日 12:31)
例年の行事(?)だったインストールマニアックスの開催が告知されました。
しかし、今回で最後との事、大変残念です。

インストールマニアックスはWindows Web Server 2008にオープンソースのソフトウェアをインストールしようという話から始まり、その後Windows Web Server 2008 R2、Windows Azureとインストール対象が変更されつつ運営されてきました。

初期はNECのサーバとOSが無料でもらえるというおごった企画でした。ただAzureになってからはマンネリになってしまい、参加者のモチベーションも低かった気がします。

インストールするのにAzureのインスタンスを立ち上げるのに最低でも7,000円かかるので、それがネック。

今回はAmazonの商品券が参加者全員に15,000円分もらえる(条件は1つでもOSSをインストールする事)ので、それ狙いです。

どうなる事やら、まずはMTOSのインストールですねw

install-maniax-final.png

uehatsu (2012年8月 2日 14:57)
前回は「MacOS X(OS X)にImageMagickをインストールするには (ImageMagick for MacOS X Install Log)」をレポートしましたが、今回はImageMagickのPerlモジュール、Image::Magick(PerlMagick)のインストール方法を書いてみたいと思います。

uehatsu (2012年7月29日 20:57)
さて、先日のエントリー(google-api-perl-client のインストール!! - uehatsu's tech blog)で書きましたように、ただ今 Google APIのお勉強中でございます。

Google APIの中には特に気にすること無くAPIをたたけば結果が返ってくる物もありますが、今回自分で使うAPIはOAuth 2.0を前提としたGoogle Calendar API v3 なので、プロジェクトを作ってみました。特に難しくないので、スクリーンショットなどは取っていませんが、作業ログ代わりです。

Who is uehatsu?

uehatsu

アーカイブ

Facebook page