2023-07-08 10:36:02 +02:00
|
|
|
|
# Ubuntu版Misskeyインストール方法詳説
|
|
|
|
|
|
|
|
|
|
## その他のMisskeyインストール方法
|
|
|
|
|
|
2023-07-17 18:42:23 +02:00
|
|
|
|
- [基本版 Misskey構築の手引き (manual)](./manual/)
|
2023-11-15 15:01:44 +01:00
|
|
|
|
- [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧)
|
2023-07-08 10:36:02 +02:00
|
|
|
|
|
|
|
|
|
## シェルスクリプトのお知らせ
|
|
|
|
|
|
|
|
|
|
コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\
|
2023-07-17 18:42:23 +02:00
|
|
|
|
[**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/)
|
2023-07-08 10:36:02 +02:00
|
|
|
|
|
2023-07-10 17:44:03 +02:00
|
|
|
|
:::tip
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
シェルスクリプトでの開発環境へのインストールは想定されていません。
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
:::
|
|
|
|
|
|
2023-07-10 17:44:03 +02:00
|
|
|
|
:::tip
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。
|
|
|
|
|
|
|
|
|
|
## この記事について
|
|
|
|
|
|
2023-07-17 18:42:23 +02:00
|
|
|
|
この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。
|
2023-07-08 10:36:02 +02:00
|
|
|
|
|
2023-07-17 18:42:23 +02:00
|
|
|
|
[docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。
|
2023-07-08 10:36:02 +02:00
|
|
|
|
|
2023-07-10 17:44:03 +02:00
|
|
|
|
:::danger
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-09-09 08:06:36 +02:00
|
|
|
|
一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください!
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
## はじめに
|
|
|
|
|
|
2023-07-17 18:42:23 +02:00
|
|
|
|
この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。
|
2023-07-08 10:36:02 +02:00
|
|
|
|
|
|
|
|
|
Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。
|
|
|
|
|
|
|
|
|
|
この記事では、具体性を重視し、特定の環境に特化した記述をしている。
|
|
|
|
|
|
|
|
|
|
OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。
|
|
|
|
|
|
|
|
|
|
わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。
|
|
|
|
|
|
|
|
|
|
## 環境と条件
|
|
|
|
|
|
|
|
|
|
* OSは**Ubuntu 22.04.1 LTS**を利用する。
|
|
|
|
|
* ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。
|
|
|
|
|
* メモリは1.5GB程度あればよい。(Viteの導入等により、1.5GB程度でもビルド可能になった)
|
|
|
|
|
* 独自のドメインを購入し、CloudFlareを使用する。
|
|
|
|
|
* ドメインは[Google Domains](https://domains.google/intl/ja_jp/)などで予め用意しておくこと。
|
|
|
|
|
* ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明)
|
|
|
|
|
|
2023-07-10 17:44:03 +02:00
|
|
|
|
:::danger
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください!
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
## nanoの使い方
|
|
|
|
|
|
|
|
|
|
今回はテキストエディターにnanoを使う。次のように起動する。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
nano /path/to/file
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。
|
|
|
|
|
|
|
|
|
|
終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。
|
|
|
|
|
|
|
|
|
|
下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。
|
|
|
|
|
|
|
|
|
|
## ユーザーの作成
|
|
|
|
|
|
|
|
|
|
Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。
|
|
|
|
|
|
2023-07-17 18:42:23 +02:00
|
|
|
|
```sh
|
2023-07-08 10:36:02 +02:00
|
|
|
|
sudo adduser --disabled-password --disabled-login misskey
|
|
|
|
|
```
|
|
|
|
|
|
2023-07-10 17:44:03 +02:00
|
|
|
|
:::tip
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
開発環境の場合はユーザーを分ける必要はありません
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
## 基本的なソフトウェアのインストールと設定
|
|
|
|
|
|
|
|
|
|
基本的なソフトウェアのインストールを行う。
|
|
|
|
|
|
|
|
|
|
### Node.js
|
|
|
|
|
|
|
|
|
|
Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo apt install -y curl
|
|
|
|
|
|
|
|
|
|
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -
|
|
|
|
|
|
|
|
|
|
sudo apt install -y nodejs
|
|
|
|
|
|
|
|
|
|
# Node.jsがインストールされたので、バージョンを確認する。
|
|
|
|
|
node -v
|
|
|
|
|
|
|
|
|
|
# corepack enable
|
|
|
|
|
sudo corepack enable
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
v20.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。
|
|
|
|
|
|
|
|
|
|
### PostgreSQL
|
|
|
|
|
|
|
|
|
|
PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。
|
|
|
|
|
|
|
|
|
|
#### インストール
|
|
|
|
|
|
|
|
|
|
シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。
|
|
|
|
|
|
2023-07-17 18:42:23 +02:00
|
|
|
|
```sh
|
2023-07-08 10:36:02 +02:00
|
|
|
|
sudo apt install -y postgresql-common
|
|
|
|
|
|
|
|
|
|
sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15;
|
|
|
|
|
|
|
|
|
|
# systemctlでデーモンの状態を確認。
|
|
|
|
|
systemctl status postgresql
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
activeならOK。
|
|
|
|
|
|
|
|
|
|
#### ユーザーとデータベースの作成
|
|
|
|
|
|
|
|
|
|
psqlを起動。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo -u postgres psql
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Misskeyで使うユーザーを作成する。\
|
|
|
|
|
ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\
|
|
|
|
|
(LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。)
|
|
|
|
|
|
|
|
|
|
```sql
|
2023-09-09 08:06:36 +02:00
|
|
|
|
CREATE ROLE misskey LOGIN PASSWORD 'hoge';
|
2023-07-08 10:36:02 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
データベースを作成。データベース名をmk1としている。
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
CREATE DATABASE mk1 OWNER misskey;
|
|
|
|
|
¥q
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Redis
|
|
|
|
|
|
|
|
|
|
Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。
|
|
|
|
|
redis.ioのドキュメントに従いインストールする。 https://redis.io/docs/getting-started/installation/install-redis-on-linux/
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo apt install -y curl ca-certificates gnupg2 lsb-release
|
|
|
|
|
|
|
|
|
|
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
|
|
|
|
|
|
|
|
|
|
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
|
|
|
|
|
|
|
|
|
|
sudo apt update
|
|
|
|
|
|
|
|
|
|
sudo apt install -y redis
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
systemctlでデーモンの状態を確認。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
systemctl status redis-server
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
activeならOK。
|
|
|
|
|
|
|
|
|
|
### nginx
|
|
|
|
|
|
|
|
|
|
nginxは、主としてリバースプロキシに用いられるWebサーバーソフトである。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。
|
|
|
|
|
|
2023-07-10 17:44:03 +02:00
|
|
|
|
:::tip
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
開発環境の場合はnginxのセットアップは不要です
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
nginx.orgのドキュメント http://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo apt install ubuntu-keyring
|
|
|
|
|
|
|
|
|
|
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
|
|
|
|
|
|
|
|
|
|
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
|
|
|
|
|
|
|
|
|
|
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
|
|
|
|
|
|
|
|
|
|
sudo apt update
|
|
|
|
|
|
|
|
|
|
sudo apt install -y nginx
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
systemctlでデーモンの状態を確認。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
systemctl status nginx
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
activeならOK。そうでなければ、次のコマンドを実行。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo systemctl start nginx
|
|
|
|
|
|
|
|
|
|
sudo systemctl enable nginx
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
<http://localhost> にアクセスし、\*Welcome to nginx!\*と表示されればOK。\
|
|
|
|
|
curlで確認するのもよいだろう。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
curl http://localhost
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### その他
|
|
|
|
|
|
|
|
|
|
Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo apt update
|
|
|
|
|
|
|
|
|
|
sudo apt install -y git build-essential
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 追加の設定とインストール
|
|
|
|
|
|
|
|
|
|
サーバーをインターネットに公開する準備をする。
|
|
|
|
|
|
2023-07-10 17:44:03 +02:00
|
|
|
|
:::tip
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
開発環境の場合はファイヤーウォールやCloudFlare、Certbotの設定は不要です
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
### ファイヤーウォール
|
|
|
|
|
|
|
|
|
|
今回は、ファイヤーウォールとしてufwを使用する。
|
|
|
|
|
|
|
|
|
|
次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo ufw enable
|
|
|
|
|
|
|
|
|
|
sudo ufw default deny
|
|
|
|
|
|
|
|
|
|
sudo ufw limit 22
|
|
|
|
|
|
|
|
|
|
sudo ufw allow 80
|
|
|
|
|
|
|
|
|
|
sudo ufw allow 443
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
ufwのステータスを確認しておく。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo ufw status
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
systemctlで永続化する。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo systemctl enable ufw
|
|
|
|
|
```
|
|
|
|
|
|
2023-07-10 17:44:03 +02:00
|
|
|
|
:::tip
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
### CloudFlare
|
|
|
|
|
|
|
|
|
|
CloudFlareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\
|
|
|
|
|
CloudFlareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。
|
2023-11-15 15:01:44 +01:00
|
|
|
|
[**→ CDNの設定**](../resources/cdn/)
|
2023-07-08 10:36:02 +02:00
|
|
|
|
|
|
|
|
|
[CloudFlareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。
|
|
|
|
|
|
|
|
|
|
DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。
|
|
|
|
|
|
|
|
|
|
ドメインを購入した所によっては適用に3日程度かかる場合がある。
|
|
|
|
|
|
|
|
|
|
### Certbot (Let’s Encrypt) の設定
|
|
|
|
|
|
|
|
|
|
HTTPS・WSS通信に使用する証明書をCloudFlareを使う方式でLet’s Encryptから取得する。
|
|
|
|
|
|
|
|
|
|
certbotとCloudFlareプラグインをインストール
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo apt install -y certbot python3-certbot-dns-cloudflare
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
CloudflareのAPIキーを取得する。以下の手順で取得されたい。
|
|
|
|
|
|
|
|
|
|
1. <https://dash.cloudflare.com/profile/api-tokens> にアクセス
|
|
|
|
|
2. Global API KeyのViewを選択
|
|
|
|
|
3. パスワードを入力しhCaptchaを解除、Viewを選択
|
|
|
|
|
|
|
|
|
|
CloudFlareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
mkdir /etc/cloudflare
|
|
|
|
|
nano /etc/cloudflare/cloudflare.ini
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
dns_cloudflare_email(下の例ではbar@fuga.foo)にはCloudFlareで登録しているメールアドレスを設定する。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
dns_cloudflare_email = bar@fuga.foo
|
|
|
|
|
dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
これを保存し、パーミッションを600に設定。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo chmod 600 /etc/cloudflare/cloudflare.ini
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
\*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。
|
|
|
|
|
|
|
|
|
|
自動更新の設定はインストールと同時に行われているため不要。
|
|
|
|
|
|
|
|
|
|
## Misskeyのインストール
|
|
|
|
|
|
|
|
|
|
これで前準備はあらかた終わったので、Misskeyを準備していく。
|
|
|
|
|
|
|
|
|
|
misskeyユーザーに変更。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo su - misskey
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Gitでファイル類を展開。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules
|
|
|
|
|
|
|
|
|
|
cd misskey
|
|
|
|
|
|
|
|
|
|
git checkout master
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
必要なnpmパッケージをインストール。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
NODE_ENV=production pnpm install --frozen-lockfile
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Misskeyを設定する
|
|
|
|
|
|
|
|
|
|
### default.yml
|
|
|
|
|
|
|
|
|
|
設定ファイル.config/default.ymlを作成。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
nano .config/default.yml
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。
|
|
|
|
|
|
|
|
|
|
この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。
|
|
|
|
|
|
|
|
|
|
設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。
|
|
|
|
|
|
2023-07-10 17:44:03 +02:00
|
|
|
|
:::tip
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
開発環境の場合、urlは`url: http://localhost:3000`と指定します。
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
```yml
|
|
|
|
|
# ● Misskeyを公開するURL
|
|
|
|
|
url: https://example.tld/
|
|
|
|
|
# ポートを3000とする。
|
|
|
|
|
port: 3000
|
|
|
|
|
|
|
|
|
|
# ● PostgreSQLの設定。
|
|
|
|
|
db:
|
|
|
|
|
host: localhost
|
|
|
|
|
port: 5432
|
|
|
|
|
db : mk1 # 〇 PostgreSQLのデータベース名
|
|
|
|
|
user: misskey # 〇 PostgreSQLのユーザー名
|
|
|
|
|
pass: hoge # ● PostgreSQLのパスワード
|
|
|
|
|
|
|
|
|
|
# Redisの設定。
|
|
|
|
|
redis:
|
|
|
|
|
host: localhost
|
|
|
|
|
port: 6379
|
|
|
|
|
|
|
|
|
|
# IDタイプの設定。
|
|
|
|
|
id: 'aid'
|
|
|
|
|
|
|
|
|
|
# syslog
|
|
|
|
|
syslog:
|
|
|
|
|
host: localhost
|
|
|
|
|
port: 514
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
指定できたら保存する。
|
|
|
|
|
|
|
|
|
|
### nginxの設定
|
|
|
|
|
|
|
|
|
|
nginxの設定を行う。
|
|
|
|
|
|
|
|
|
|
ルート権限で行う。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
exit
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
/etc/nginx/conf.d/misskey.confを作成する。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo nano /etc/nginx/conf.d/misskey.conf
|
|
|
|
|
```
|
|
|
|
|
|
2023-07-17 18:42:23 +02:00
|
|
|
|
[Misskey Hub](https://misskey-hub.net/docs/admin/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。
|
2023-07-08 10:36:02 +02:00
|
|
|
|
|
|
|
|
|
* 18行目と30行目のドメイン名
|
|
|
|
|
* 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK)
|
|
|
|
|
* 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除
|
|
|
|
|
|
|
|
|
|
変更を保存する。
|
|
|
|
|
|
|
|
|
|
設定ファイルがきちんと機能するか確認。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo nginx -t
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
OKならば、nginxデーモンを再起動。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo systemctl restart nginx
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
ステータスを確認。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo systemctl status nginx
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
activeであればOK。
|
|
|
|
|
|
|
|
|
|
## Misskeyのビルド
|
|
|
|
|
|
|
|
|
|
misskeyユーザーにログインし直す。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo su - misskey
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
ビルドをする。yes we can…
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
cd misskey
|
|
|
|
|
NODE_ENV=production pnpm run build
|
|
|
|
|
```
|
|
|
|
|
|
2023-07-10 17:44:03 +02:00
|
|
|
|
:::tip
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
### サーバーでビルドできない場合
|
|
|
|
|
|
|
|
|
|
RAMの不足が考えられる。
|
|
|
|
|
|
|
|
|
|
Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\
|
|
|
|
|
RAMが足りない場合、以下のような解決策が考えられる。
|
|
|
|
|
|
|
|
|
|
* サーバーにスワップを追加する
|
|
|
|
|
* ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する
|
|
|
|
|
|
|
|
|
|
## データベースの初期化
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
pnpm run init
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Misskeyを起動する
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
NODE_ENV=production pnpm run start
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。
|
|
|
|
|
|
|
|
|
|
Misskeyのウェルカムページが表示されるはずだ。
|
|
|
|
|
|
|
|
|
|
アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。
|
|
|
|
|
|
|
|
|
|
### アクセスできない場合
|
|
|
|
|
|
|
|
|
|
#### CloudFlareのDNSを確認する
|
|
|
|
|
|
|
|
|
|
CloudFlareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。
|
|
|
|
|
|
|
|
|
|
#### ルーターの設定を確認する
|
|
|
|
|
|
|
|
|
|
自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。
|
|
|
|
|
|
|
|
|
|
クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。
|
|
|
|
|
|
|
|
|
|
## Misskeyのデーモンを作成
|
|
|
|
|
|
2023-07-10 17:44:03 +02:00
|
|
|
|
:::tip
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
開発環境の場合、デーモンの作成は不要です。
|
2023-12-27 06:27:22 +01:00
|
|
|
|
|
2023-07-08 10:36:02 +02:00
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。
|
|
|
|
|
|
|
|
|
|
ルート権限で行う。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
exit
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
/etc/systemd/system/misskey.serviceを作成する。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo nano /etc/systemd/system/misskey.service
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
次の内容を貼り付け、保存する。
|
|
|
|
|
|
2023-07-17 18:42:23 +02:00
|
|
|
|
```ini
|
2023-07-08 10:36:02 +02:00
|
|
|
|
[Unit]
|
|
|
|
|
Description=Misskey daemon
|
|
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
|
Type=simple
|
|
|
|
|
User=misskey
|
|
|
|
|
ExecStart=/usr/bin/npm start
|
|
|
|
|
WorkingDirectory=/home/misskey/misskey
|
|
|
|
|
Environment="NODE_ENV=production"
|
|
|
|
|
TimeoutSec=60
|
|
|
|
|
StandardOutput=journal
|
|
|
|
|
StandardError=journal
|
|
|
|
|
SyslogIdentifier=misskey
|
|
|
|
|
Restart=always
|
|
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
|
WantedBy=multi-user.target
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
systemdを設定し、misskeyデーモンを開始。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo systemctl daemon-reload
|
|
|
|
|
|
|
|
|
|
sudo systemctl enable misskey
|
|
|
|
|
|
|
|
|
|
sudo systemctl start misskey
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo systemctl status misskey
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
activeならOK。
|
|
|
|
|
|
|
|
|
|
**これでMisskeyのインストールはほぼ完了だ。**
|
|
|
|
|
|
|
|
|
|
Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。
|
|
|
|
|
|
|
|
|
|
## Misskeyの設定を続ける
|
|
|
|
|
|
|
|
|
|
* [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp)
|
|
|
|
|
* [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw)
|
|
|
|
|
* [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk)
|
|
|
|
|
|
|
|
|
|
## Misskeyのアップデート
|
|
|
|
|
|
2023-11-15 15:01:44 +01:00
|
|
|
|
[Misskeyのアップデート方法](./manual/#misskeyのアップデート方法)
|
2023-07-08 10:36:02 +02:00
|
|
|
|
|
|
|
|
|
作業中はMisskeyを使うことができません。
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo systemctl stop misskey
|
|
|
|
|
|
|
|
|
|
su - misskey
|
|
|
|
|
|
|
|
|
|
git pull;
|
|
|
|
|
NODE_ENV=production pnpm install --frozen-lockfile
|
|
|
|
|
pnpm run clean;
|
|
|
|
|
NODE_ENV=production pnpm run build;
|
|
|
|
|
pnpm run migrate;
|
|
|
|
|
|
|
|
|
|
exit
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Case 1: apt upgradeをする場合
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo apt update -y
|
|
|
|
|
sudo apt full-upgrade -y
|
|
|
|
|
sudo reboot
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
再起動後はMisskeyは自動で起動します。
|
|
|
|
|
|
|
|
|
|
### Case 2: そのまま起動
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo systemctl start misskey
|
|
|
|
|
```
|