架設你自己的 mastodon instance

poga

mastodon 是個最近突然爆紅的去中心化的 twitter clone。

mastodon 概念上類似 mail server:每個人都能架設他自己的 instance,每個 instance 之間都能互相溝通,使用者可以跨 instance follow、reply、reblog… 等等。

以下是架設 g0v.social (v1.1.2)過程的筆記:

update: 我已不再用 docker-compose 設定 production 環境。細節請參考 https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Production-guide.md


取得 SSL certificate

參考 let’s encrypt.tw 的詳盡說明。

安裝 nginx、docker、docker-compose

根據你用的 linux distro,參考對應的文件:nginx, docker, docker-compose

取得 mastodon 最新的 release 版本

$ git clone git@github.com:tootsuite/mastodon.git 
$ cd mastodon
$ git fetch --all --tags --prune
$ git checkout tags/v1.2 -b v1.2 # 目前的最新版本是 v1.2

設定 nginx.conf

參考以下範例,其中 <YOUR DOMAIN NAME> , <YOUR CERTIFICATE PATH> , 與 <YOUR MASTODON PATH> 請自行代換。

填入你的設定值後,啟動 nginx

$ nginx -c /PATH/TO/nginx.conf

啟動 mastodon

到你下載的 mastodon 路徑下建立設定檔:

$ cp .env.production.sample .env.production

修改 docker-compose.yml,打開 DB/Redis persistence

https://github.com/tootsuite/mastodon/blob/972f6bc861affd9bc40181492833108f905a04b6/docker-compose.yml#L7-L16

建立 docker image:

$ docker-compose build

打開 .env.production ,填上:

  • LOCAL_DOMAIN: 你的 domain
  • LOCAL_HTTPS : true
  • PAPER_CLIP_SECRET, SECRET_KEY_BASE, OTP_SECRET :執行 `docker-compose run --rm web rake secret 三次,取得三個 secret-key 後分別填在三個欄位內
  • SMTP_* : 註冊 mailgun 後將對應的設定值填過來

最後:

$ docker-compose up

連上你的 domain,應該就能看到登入畫面了。

其他

參考 Production Guide

poga

Written by

poga

Web/Decentralization/g0v, https://devpoga.org

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade