2017年04月26日

おひとり様用マストドンを無料で立てたぞ

今、巷で「マストドン」なるものが流行っております。
世界最大の「mstdn.jp」を立ち上げた大学院生“ぬるかるさん”は一体何者か その素顔とドワンゴ入社が決まるまでの10日間に迫る

なんかおもすろそうなので、わたすもおひとり様用インスタンスを立ててみますた。
gyudn.png
気が向いたら遊びに来てください。


基本、以下サイトで出来るはずです。
今何かと話題のマストドン(mastodon)鯖を自分用に無料で立てる方法

この記事の難点は、AWSの準備が出来た以降となってるところですな。
なので、以下補足。
[補足1:AWS]
t2.micro 前提
OS:Ubuntu 16.04 LTS 前提

1)以下をやっとく。
AWSで無料枠を超えた時にアラートを飛ばす

2)Elastic IPを割り当てる(※インスタンス再起動時は解除してやらないと課金発生)

3)以下ポートを開ける
22(既に空いてる、というか開けとかないとSSH接続できない)
80
443
3000
4000

4)スワップの追加
以下をやっとく。やらないと、out of memory 出まくり。
t2.micro にスワップ領域を追加するための設定例

[補足2:今何かと話題のマストドン(mastodon)鯖を自分用に無料で立てる方法]
1).env.production
SMTP に SparkPost を使った場合の設定は以下
SMTP_SERVER=smtp.sparkpostmail.com
SMTP_PORT=587
SMTP_LOGIN=SMTP_Injection
SMTP_PASSWORD=発行されたAPIキー
SMTP_FROM_ADDRESS=mail@example.com→ここは任意に書き換え


2)証明書の取得は記事通りにやるとあきまへん。
certbot certonly --webroot -w /var/www/example -d example.com
certbot certonly --standalone -d xxxxx.com→ここは自分のドメインに書き換え

3)Nginxの設定
公式をパクればOK、と書いてあるけどダメ。
これだとブラウザアクセスはOKだけど、スマホアプリからのアクセス時に白アイコンになる。
下が良いと思う。
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name xxxxx.com; → 自分のドメイン
root /var/www/xxxxxxx; → このフォルダは適当な名称で作成する。実体はここじゃない。
index index.html index.php index.xml;

#ssl
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
ssl_certificate /etc/letsencrypt/live/xxxxx.com/fullchain.pem; → xxxxx.com は自分のドメイン
ssl_certificate_key /etc/letsencrypt/live/xxxxx.com/privkey.pem; → xxxxx.com は自分のドメイン
ssl_dhparam /etc/nginx/ssl/dhparam.pem; → こいつは作成してやる(後述)
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/xxxxx.com/fullchain.pem; → xxxxx.com は自分のドメイン
resolver 8.8.4.4 8.8.8.8 valid=300s;
resolver_timeout 10s;
add_header Strict-Transport-Security 'max-age=315360000; includeSubDomains; preload';
add_header Content-Security-Policy "script-src 'self'; frame-ancestors 'none'; object-src 'none';";

#gzip
 ここから下は、公式とおんなじだから省略

4)/etc/nginx/sites-enabled にある default(シンボリックリンク)を消去。
これをやっとかないと、nginx 再起動でエラーとなる。(ubuntu 特有の現象)

5)dhparam の作成。結構時間がかかる。
# mkdir /etc/nginx/ssl
# cd /etc/nginx/ssl
# openssl dhparam 2048 -out dhparam.pem

6)最後に以下をたたいて終わり
# su -
# docker stop $(docker ps -a -q) && docker-compose up -d
# nginx -s reload


posted by NERDY at 17:53 | Comment(0) | 技術 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。