Raspberry Pi で Let’s Encrypt (続き)

サイトを引っ越した。
引っ越しページも何も無く、唐突に動かしたので、元々、独り言ブログだったのが、さらに極まることに(笑)

以前、dynamic dns サービスの mydns と Let’s Encrypt の組み合わせで、制限に当たってうまくいかないという話と、格安 SSL に関する調査の話を書いた。
今回はそれの続き。

色々考えたんだけど、ドメインを取って、Let’s Encrypt を使うのと、無料DNSで格安SSLを使うのとで、どっちがいいかと考えると、金額的には変わらないし、同じくらいの金額でシンプルなドメイン名がとれるならと、結局、ドメインを取って無料SSLという、非常にオーソドックスな解決法に落ち着いた。

ドメイン名を買って、mydns に登録して、Let’s Encrypt で暗号化して今に至っている。 ドメインは某有名格安業者だが、dynamic dns の更新が Windows にしか対応していないので、DNS サーバは継続して、mydns を使うことにした。

Let’s Encrypt の更新も cron に登録したが、実際に更新されるのは 2ヶ月後になる。

サイト全体をSSL化することができたので、ついでに HTTP/2 にも対応した。

サーバーは Raspberry Pi だが、サクサク動いて、ちょっと感動的である。

Raspberry Pi で node.js

Raspberry Pi で node.js 。

といっても、先日、Meteor 動かしたんだけど、重すぎだったので、もうちょっと軽い構成にしてみようと思った。

Meteor は内包された node.js を使う (ちょっと古いやつ) ので、個別に node.js は入っていなかった。

で、インストールするのだが、これは特に書くほどでもなくて、公式の Linux – armv7 用のバイナリがそのまま動く。 なので、基本的にダウンロード、展開して、パスを通すだけである。

Meteor は正直、重くて、使う気にならないレベルだったが、素の node.js ならば、問題なく動くようだ。 メモリ使用量も virtual は結構使うが、 real はそれほどでもないので、実用性はありそう。

いわゆる MEAN スタックも動くが、 MongoDBがちょっとメモリ食いかなと思う。 MEAN の フルスタック scaffold は、さすがに重いので、個別に Express.js, Angular.js, socket.io あたりを集めてくれば、軽い。

今は、Express.js, Vue.js, socket.io でリアクティブの勉強中。

MacBook Pro から Surface Book に

最近 Surface Book を買い増した。 MacBook Pro も別に捨てたわけではないので、タイトルは多少、刺激的(?)に書いたw

MacBook Pro はだいぶ長く使っていて、2011年のモデル(MacBook Pro 15 inch early 2011)だったが、壊れずに使えていた。 古いとはいえCore i7だし、ドライブもSSDにしてあったので、修理もしながらだったが長く使うことができた。

Retinaになる前で、側面にI/Fがずらりと並ぶタイプ(Ethernet, Thunderbolt/1, FireWire 800とか…)なので、いざという時に便利だった。 もう6年も前のモデルだが、クリエイター達には需要があるらしく、まだ中古でも値が付くらしい。
Full HD の dot by dot とか、いろいろ接続したりとか、古いアプリを使わざるを得ない場合(映像系とか音楽系とか…)で非Retinaが必要だったり、確かにまだ需要はありそう。

手持ちの MacOS 環境として使えるだけ使おうかなと思っている。

で、Surface だが、Surface Pro 2 も使っていたので、実質は Mac からというよりも、Surface 同士のアップグレードに近かったりする。

Mac を使っていた理由は、OSX 以降の NeXT の流れを汲んだシステムが気に入っていて、本物の UNIX が GUI 環境ときれいに共存していたからなのであるが、最近は Windows でも、Git for Windows の bash や、ConsoleZ / ConEmu、Docker, Hyper-V あたりで十分な環境を作れるなと感じていたので、新しく買う機械は Surface Book にした次第である。

あと、Windows の嫌なところはフォントがショボいことだったが、鬼のように高解像度な環境だとビットマップフォントが使用されなくなり、Clear Typeのアラも見えなくなる。好みのフォントを一通り設定してしまえば、嫌な感じは無くなる。Windows マシンの中では、高解像度なマシンを選ぶのは必須条件として、Surface Book ということになった。

Surface Book は写真で見たりすると、グレーでぱっとしないが、実際に触ってみると、ざらっとしたマグネシウムのボディで、意外と高級感がある。ヒンジ部分のデザインが特徴的だが、個人的には嫌いじゃない。
ディスプレイ部分が外せて特大のタブレットとしても使えるし、Macと違って、ペンのサポートもある。

最近、趣味のプログラミング以外にも、多少、絵をかいてみたりするようになった。 昔の Bob Ross の絵画教室みたいな感じで風景を描いてみたりしている。 ツールは ArtRage を使っている。 Painter のスタッフがスピンアウトして作ったとか。 非常によくできていると思った。

Apple は Mac に関しては、タッチとかペンとかは、ものすごく消極的なのは一体何なんだろうと思う。 I/Fもごっそり削って、で、クリエイター向き、プロ向きをうたってるんだから笑わせる。

いったい何のプロ向きなんだろう。格好付けのプロ?

Raspberry Pi で Meteor

Raspberry Pi で Javascript / Node.js フレームワークの Meteor を動かす。

といっても、バイナリを用意してくれているプロジェクトがあるので、git clone するだけでインストールできる。 GitHub のプロジェクト 4commerce-technologies-AG/meteor の README.md に手順が書いてある。

このプロジェクトでバイナリが配布される前でも、ソースからビルドすれば動いたようだが、ビルドは1日掛かりになったとか。まあそんな感じはする。

基本的に

git clone --depth 1 https://github.com/4commerce-technologies-AG/meteor.git

して、PATHを通すだけ。

初回の実行に Rasberry Pi 3B で約20分掛かった。 他の遅い機種では厳しそう。
また create や、サンプルの起動にもそれぞれ5分くらい掛かる。
起動してしまえば、ちょっと重いが、普通に動作するように見えるので、省電力で上げっぱなしに出来ることを考えれば、使えなくはないかもしれない。

しかし、Rails とか Node.js とか、プロジェクトの実行時にライブラリを用意して、かつ、x86/x64 以外はビルドが入るようなやつだと、どうしても重いなあ~と思う。

起動時に MongoDB が Locale が認識できないというエラーが出る場合は、sudo raspi-config でロケールを en_US.UTF-8 に変更すると回避できる。

MySQL 5.5から MariaDB 10.0 へのアップグレードで、ログインできなくなる

MySQL 5.5 から MariaDB 10.0 へアップグレードする話。

MySQLからMariaDBは、データ本体、(データーベースの方の)ログファイルともに、そのまま移行できるようになっているようだ。 とはいえ、一応バックアップは採った。

mysqldump -u root -p --events --all-databases > mysqlbackup.out

あと、my.cnf のバックアップも採っておく。

あとは、お気楽にやってみる。。。

sudo apt-get remove mysql-server
sudo apt-get autoremove

sudo apt-get mariadb-server

MariaDB のインストール時に、画面が切り替わって、本当にアップグレードするか?と聞いてくるので、Yes と答えれば、完了。

のはずだったのだが、mysql コマンドでログインできない。 ネットで検索すると sudo すれば入れるとの情報があったが、何をやっても入れず、滝のように汗が出る。。。

結局、以下のような情報を見つけて、パスワードのリセットをし、無事に移行完了。

How to reset your MariaDB root password?


root# service mysql stop

root# mysqld_safe --skip-grant-tables &

root# mysql -u root

MariaDB [(none)]> use mysql;
MariaDB [(none)]> update user set password=PASSWORD("NEWPASSWORD") where User='root';
MariaDB > flush privileges;
MariaDB [(none)]> exit; 

root# service mysql restart

root だけこの方法で変更したら、他のユーザーについては問題なかったようです。

久しぶりにビビりました。。。。