google日本語入力のアニメ辞書をDocker無しで動かしてみる(Pythonの知識ほぼゼロ)
honeshabri.hatenablog.com
元ネタはここです。すごいですね。スターつけちゃう仕事ですね。
ただ、cronで定期的に回したかったですね。
流行りのDockerでやる方法が紹介されています。
Dockerだと自動で動かす方法がわからなかったのでDocker無しでやる方法を模索しました。
git clone
git clone https://github.com/anilogia/animedb.git
python
2.7系なんですねー。pyenvを導入
qiita.com
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
~/.bashrcやら~/.zshrcやらに書き込んで(そのままですけど)
export PYENV_ROOT=$HOME/.pyenv export PATH=$PYENV_ROOT/bin:$PATH eval "$(pyenv init -)"
docker-compose.ymlを読むと2.7.12なので
pyenv install 2.7.12
じっと待つ。
git cloneしたanimedbにcdして
pyenv local 2.7.12
すると.python-versionというファイルが出来がるので
source ~/.zshrc python --version # 2.7.12
でうまく2.7.12になりました。
How to serve Mastodon via h2o web server(Mastodonをh2oで配信する方法)
h2o is great http/2 web server(MIT license).
http/2 protocol leads very good performance with page with many files.
I love h2o server!
I will write about how to serve Mastodon via h2o.
h2oは素晴らしいhttp/2対応のwebサーバーです(MIT ライセンス)。
http/2はたくさんのファイル読み込みがあるページなどで良いパフォーマンスを発揮します。
h2oが好きだー!
h2oでMastodonを配信する方法を記述します。
environment(環境)
server: ubuntu16.04
Front web server is h2o,backend server are apache2.4 and masdon server(docker).
フロントはh2o。バックエンドはapache2.4とdockerのmastodonです
h2o ---- apache2 (domain1) port:81 | ---- docker server(domain2 - mastodon) port:3000,4000
h2o config
very simple,but "//api/v1/streaming/" is little complex.why "/api/v1/streaming/" ? I think this is mastodon's problem but I solved.
とてもかんたんですね。"//api/v1/streaming/"のところがちょっときもいですけど、まぁ、なんとか。
user: www-data hosts: "lovesaemi.daemon.asia": listen: port: 80 paths: "/": redirect: "https://lovesaemi.daemon.asia" "lovesaemi.daemon.asia:443": listen: port: 443 ssl: certificate-file: /etc/letsencrypt/live/lovesaemi.daemon.asia/fullchain.pem key-file: /etc/letsencrypt/live/lovesaemi.daemon.asia/privkey.pem cipher-suite: "EECDH+AESGCM:AES256+EECDH:AES128+EECDH" cipher-preference: server minimum-version: TLSv1.2 paths: "/": proxy.reverse.url: http://127.0.0.1:81/ "mastdn.lovesaemi.daemon.asia": listen: port: 80 paths: "/": redirect: "https://mastdn.lovesaemi.daemon.asia" "mastdn.lovesaemi.daemon.asia:443": listen: port: 443 ssl: certificate-file: /etc/letsencrypt/live/mastdn.lovesaemi.daemon.asia/fullchain.pem key-file: /etc/letsencrypt/live/mastdn.lovesaemi.daemon.asia/privkey.pem cipher-suite: "EECDH+AESGCM:AES256+EECDH:AES128+EECDH" cipher-preference: server minimum-version: TLSv1.2 paths: "//api/v1/streaming/": proxy.websocket: ON proxy.preserve-host: ON proxy.reverse.url: http://127.0.0.1:4000/ "/": proxy.preserve-host: ON proxy.reverse.url: http://127.0.0.1:3000/ access-log: /var/log/h2o/access-log error-log: /var/log/h2o/error-log pid-file: /tmp/h2o.pid
check http/2 ? http/2で動いてる?
OK,http/2
http/2ですね。良い感じ。
enjoy!
是非h2oを使ってみてください。
Mastodonの画像消すブックマークレット
javascript:(function(){ var a=document.createElement("script"); a.src="https://j.mp/1bPoAXq"; document.head.appendChild(a); setInterval( function(){ $("a[style^='background']").parent().parent().css("display","none");} ,100); } )();
Mastodonでrake task avatarとheader再取得
DRYにしろといわれたのでやってみました。
send祭り。ちょっと動的すぎるかね。
rubocopとcodeclimateの解析がちがうのでウガーってなったし。
CIでyarnが503だして失敗してウガーってなった。
本当に取り込まれたい。
gistb415ac44f80294bdf199008b2f2b974f
Mastodonにプルリクしてみました。
辛い。
でもやる価値があるとおもうんだよ。
コミッターに載れたらめっちゃ嬉しいやん!
機能は簡単なもので、間違えてavatar消してしまったときにavatarを再取得するって言うrake task。
- 手元の環境のrubocopが上手く動いていなくてそこで怒られる。
- ループをnextで飛ばせと怒られる。
→辛い。
でも、たしかに言われたことやるとループの深さも浅くなって見通し良くなった。
これは力がつくね。rubocopは手元の環境をもうちょっときちんとしてそこでつまづきたくないね。
ともかくMastadonから目が離せない今日このごろ。
ていうかブランチ切らないでmasterで作業していたことにプルリクしてから気づく有様。
ちょっと無様だねー
どうか本家に取り込まれますように。お願い!
Mastodonのアップデートv1.2へ(追記あり ほぼ無停止更新)(docker system prune -a追記)
dockerのデプロイ、アップデートの方法がごっそり消えとる(キレ気味)
サンクス@nukosu@pao.moeさん
Main README developer documentation · Issue #1830 · tootsuite/mastodon · GitHub
短絡的。documentの方を整備してから変更してよ。あんまり英語読みきれてないけどお前のshouldとか知らん。
仕方がないので
README.mdを掘る
github.com
docker-compose.ymlとか編集しているので退避しないとだめね~
以下、流したコマンド
git stash save git pull git describe --tags `git rev-list --tags --max-count=1` # versionを確認 git checkout -b v1.2 $(git describe --tags `git rev-list --tags --max-count=1`) git checkout -b v1.3.1 refs/tags/v1.3.1 #こっちが良いかも #追記 2017/04/28 git stash list git stash list -p git stash show stash@{0} git stash apply stash@{0} docker-compose stop docker-compose build docker-compose run --rm web rails db:migrate docker-compose run --rm web rails assets:precompile docker-compose up -d #追記 git stash drop stash@{0}
以上です。
次はdb/redisもバックアップすべきですねー。
2017/4/29 追記 1.3.1
2017/6/24 追記 1.4.6
1.3.1への更新がありました。
あれから考えたのですが、Linuxはプロセスを立ち上げる際に必要なファイルを別領域にコピーして使うので、起動しながらapacheをビルド、とかできるわけです。で、ビルド後restartして最新へ、とかできる。dockerも同じなはずで、今回は、バックアップ取ってから起動しながらdocker-composeのbuildをためしてみました。行けました。
以下、流したコマンド。スクリプトにして一気に行ける感じがでてきました。
2017/6/24 追記 1.4.6
docker system prune -aを追記します。いらないイメージ消しておきましょ。
git stash save git pull git checkout -b local$(git describe --tags `git rev-list --tags --max-count=1`) $(git describe --tags `git rev-list --tags --max-count=1`) git stash apply stash@{0} docker-compose build docker-compose run --rm web rails db:migrate docker-compose run --rm web rails assets:precompile docker-compose stop && docker-compose up -d git stash drop stash@{0} docker system prune -a
基本ほぼ無停止で行けました。