こんにちはきろたです
突然ですが先日ぎらくMisskey支部を立てました。もともと立ててたのですがいろいろあって廃墟になってたのをリメイクしたものです。久しぶりに立てたせいでいろいろ忘れてて時間を溶かしたので備忘録といつの日かのために書きます。(やったこと全部のせてます。)
環境
- VPS : conohaVPS
- OS : Linux ubuntu 22.04
- CPU: 3core
- RAM:2GB
事前準備
ドメインを買ってDNSを設定しておく(これあとあとにしておくと反映まで時間かかった時めんどくさいので先にやっておくのが吉)
ユーザーを追加する
VPSにログインしたら
adduser user_name
質問されたとおりにパスワードなどなど入力していく
ユーザーを追加したらsudo権限を与える
gpasswd -a user_name
追加したユーザーでログインする
su user_name
ログインできたらユーザーの追加と切り替えは完了です
dockerとdocker-composeをインストールする
上記のURLを参考にしました。
ここはいろいろながいので省略しておきます。
sudo docker -v
sudo docker-compose -v
上記のコマンドでバージョンが出たら成功です。
Nginxをインストールする
Nginxをプロキシとしてインストールします。記事の通りjwilder/nginx-proxyとサイトのHTTPS化のため、jrcs/letsencrypt-nginx-proxy-companion を使います。
上記の記事やなどを参考に
以下のdocker-compose.yml
を用意します。
version: "2"
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./certs:/etc/nginx/certs:ro
- /etc/nginx/vhost.d
- /usr/share/nginx/html
restart: always
networks:
- shared
letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: letsencrypt
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./certs:/etc/nginx/certs:rw
volumes_from:
- nginx-proxy
restart: always
networks:
- shared
networks:
shared:
external: true
今回はdocker-compose.ymlを分離しているため事前にDocker networkを作成し同じネットワークを利用する様に指定しておく必要があるので次のコマンドを入力します。
sudo docker network create --driver bridge shared
そして
sudo docker-compose up -d
で起動します。
Misskeyの構築
今回はDockerを使ってMisskeyをインストールしていきます。
MisskeyHubではDockerを使ったMisskeyの構築方法を公開しています。
これを参考に構築していきます。
Misskeyのリポジトリの取得
gitでMisskeyのリポジトリをcloneし、最新版にします。
git clone -b master git://github.com/misskey-dev/misskey.git && \
cd misskey && \
git checkout master
設定
以下のコマンドを使って、設定ファイルをコピーし編集していきます。
cp .config/example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
misskey/.configにあるdefault.yml
とdocker.env
をファイル内の説明に従って編集します。
- 9行目|url: ユーザがアクセスする時のTLD(URL)を指定します。
- 37行目|host: dbのhostを、localhostからdbにする。
- 44,45行目|user/pass: データベースのユーザ名とパスワードを設定する。
- 58行目|host: redisのhostをlocalhostからredisにする。
default.ymlのuser/passを変更した場合docker.envのユーザー名とパスワードを記載したdefault.ymlに従って編集します。(docker.envはパスワード/ユーザの順番なので気をつけること)
default.ymlとdocker.envがきちんと編集されてるか確認してください.。(自分はこれを間違えて2時間くらい潰しました。)
*行数や内容はアップデートで変更されていることがあるので公式のドキュメントなどで確認してください。
docker-compose.ymlの編集
misskey/に戻り、docker-compose.ymlを編集していきます。
以下のように編集(#追加と書かれている部分を追加)していきます。
version: "3"
services:
web:
build: .
restart: always
links:
- db
- redis
# - es
ports:
- "3000:3000"
networks:
- internal_network
#追加
- shared
- external_network
volumes:
- ./files:/misskey/files
- ./.config:/misskey/.config:ro
#追加
environment:
VIRTUAL_HOST: example.com
LETSENCRYPT_HOST: example.com
LETSENCRYPT_EMAIL: example@example.com
redis:
restart: always
image: redis:4.0-alpine
networks:
- internal_network
volumes:
- ./redis:/data
db:
restart: always
image: postgres:12.2-alpine
networks:
- internal_network
env_file:
- .config/docker.env
volumes:
- ./db:/var/lib/postgresql/data
# es:
# restart: always
# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2
# environment:
# - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
# - "TAKE_FILE_OWNERSHIP=111"
# networks:
# - internal_network
# volumes:
# - ./elasticsearch:/usr/share/elasticsearch/data
networks:
internal_network:
internal: true
external_network:
#追加
shared:
external: true
編集が完了したら、次のコマンドでビルドし、実行してMisskeyを立ち上げます。
ビルドは長いので気軽に待ちましょう。
sudo docker-compose build
sudo docker-compose run --rm web yarn run init
sudo docker-compose up -d
Misskeyのアップデート
以下を入力していきます。
git stash
git checkout master
git pull
git submodule update --init
git stash pop
sudo docker-compose build
sudo docker-compose stop && sudo docker-compose up -d
お疲れ様でした。
オブジェクトストレージを設定中なので完了したらまた続きの記事を書こうと思います。
お楽しみにー
コメント