jointrashposs/content/ko/docs/3.for-admin/install/guides/ubuntu-manual.md
かっこかり d7ad8387a9
New Crowdin updates (#92)
* New translations 1.about-misskey.md (French)

* New translations 2.get-started.md (French)

* New translations 3.join-server.md (French)

* New translations 4.things-to-know.md (French)

* New translations ads.md (French)

* New translations drive.md (French)

* New translations mfm.md (French)

* New translations mute-and-block.md (French)

* New translations pages.md (French)

* New translations poll.md (French)

* New translations thread-mute.md (French)

* New translations webhook.md (French)

* New translations 1.troubleshooting.md (French)

* New translations donate.md (French)

* New translations misskey-hub.md (French)

* New translations announcement.md (French)

* New translations role.md (French)

* New translations 1.index.md (French)

* New translations bash.md (French)

* New translations docker.md (French)

* New translations kubernetes.md (French)

* New translations manual.md (French)

* New translations ubuntu-manual.md (French)

* New translations cdn.md (French)

* New translations disable-timelines.md (French)

* New translations 1.index.md (French)

* New translations permission.md (French)

* New translations 1.index.md (French)

* New translations token.md (French)

* New translations 5.releases.md (French)

* New translations 1.about-misskey.md (Italian)

* New translations 2.get-started.md (Italian)

* New translations 3.join-server.md (Italian)

* New translations 4.things-to-know.md (Italian)

* New translations ads.md (Italian)

* New translations drive.md (Italian)

* New translations mfm.md (Italian)

* New translations mute-and-block.md (Italian)

* New translations pages.md (Italian)

* New translations poll.md (Italian)

* New translations share-form.md (Italian)

* New translations thread-mute.md (Italian)

* New translations webhook.md (Italian)

* New translations 1.troubleshooting.md (Italian)

* New translations donate.md (Italian)

* New translations misskey-hub.md (Italian)

* New translations announcement.md (Italian)

* New translations role.md (Italian)

* New translations 1.index.md (Italian)

* New translations bash.md (Italian)

* New translations docker.md (Italian)

* New translations kubernetes.md (Italian)

* New translations manual.md (Italian)

* New translations ubuntu-manual.md (Italian)

* New translations cdn.md (Italian)

* New translations disable-timelines.md (Italian)

* New translations 1.index.md (Italian)

* New translations permission.md (Italian)

* New translations 1.index.md (Italian)

* New translations token.md (Italian)

* New translations 5.releases.md (Italian)

* New translations 1.about-misskey.md (Korean)

* New translations 1.warning.md (Korean)

* New translations 2.get-started.md (Korean)

* New translations 3.join-server.md (Korean)

* New translations 4.things-to-know.md (Korean)

* New translations ads.md (Korean)

* New translations drive.md (Korean)

* New translations mfm.md (Korean)

* New translations mute-and-block.md (Korean)

* New translations pages.md (Korean)

* New translations poll.md (Korean)

* New translations share-form.md (Korean)

* New translations thread-mute.md (Korean)

* New translations webhook.md (Korean)

* New translations 1.troubleshooting.md (Korean)

* New translations donate.md (Korean)

* New translations misskey-hub.md (Korean)

* New translations announcement.md (Korean)

* New translations role.md (Korean)

* New translations 1.index.md (Korean)

* New translations bash.md (Korean)

* New translations docker.md (Korean)

* New translations kubernetes.md (Korean)

* New translations manual.md (Korean)

* New translations ubuntu-manual.md (Korean)

* New translations cdn.md (Korean)

* New translations disable-timelines.md (Korean)

* New translations 1.index.md (Korean)

* New translations permission.md (Korean)

* New translations 1.index.md (Korean)

* New translations token.md (Korean)

* New translations 5.releases.md (Korean)

* New translations 1.about-misskey.md (Polish)

* New translations 2.get-started.md (Polish)

* New translations 3.join-server.md (Polish)

* New translations 4.things-to-know.md (Polish)

* New translations ads.md (Polish)

* New translations drive.md (Polish)

* New translations mfm.md (Polish)

* New translations mute-and-block.md (Polish)

* New translations pages.md (Polish)

* New translations poll.md (Polish)

* New translations share-form.md (Polish)

* New translations thread-mute.md (Polish)

* New translations webhook.md (Polish)

* New translations 1.troubleshooting.md (Polish)

* New translations donate.md (Polish)

* New translations misskey-hub.md (Polish)

* New translations announcement.md (Polish)

* New translations role.md (Polish)

* New translations 1.index.md (Polish)

* New translations bash.md (Polish)

* New translations docker.md (Polish)

* New translations kubernetes.md (Polish)

* New translations manual.md (Polish)

* New translations ubuntu-manual.md (Polish)

* New translations cdn.md (Polish)

* New translations disable-timelines.md (Polish)

* New translations 1.index.md (Polish)

* New translations permission.md (Polish)

* New translations 1.index.md (Polish)

* New translations token.md (Polish)

* New translations 5.releases.md (Polish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations 1.about-misskey.md (Chinese Simplified)

* New translations 2.get-started.md (Chinese Simplified)

* New translations 3.join-server.md (Chinese Simplified)

* New translations 4.things-to-know.md (Chinese Simplified)

* New translations ads.md (Chinese Simplified)

* New translations drive.md (Chinese Simplified)

* New translations mfm.md (Chinese Simplified)

* New translations mute-and-block.md (Chinese Simplified)

* New translations pages.md (Chinese Simplified)

* New translations poll.md (Chinese Simplified)

* New translations share-form.md (Chinese Simplified)

* New translations thread-mute.md (Chinese Simplified)

* New translations webhook.md (Chinese Simplified)

* New translations 1.troubleshooting.md (Chinese Simplified)

* New translations donate.md (Chinese Simplified)

* New translations misskey-hub.md (Chinese Simplified)

* New translations announcement.md (Chinese Simplified)

* New translations role.md (Chinese Simplified)

* New translations 1.index.md (Chinese Simplified)

* New translations bash.md (Chinese Simplified)

* New translations docker.md (Chinese Simplified)

* New translations kubernetes.md (Chinese Simplified)

* New translations manual.md (Chinese Simplified)

* New translations ubuntu-manual.md (Chinese Simplified)

* New translations cdn.md (Chinese Simplified)

* New translations disable-timelines.md (Chinese Simplified)

* New translations 1.index.md (Chinese Simplified)

* New translations permission.md (Chinese Simplified)

* New translations 1.index.md (Chinese Simplified)

* New translations token.md (Chinese Simplified)

* New translations 5.releases.md (Chinese Simplified)

* New translations 1.about-misskey.md (Chinese Traditional)

* New translations 2.get-started.md (Chinese Traditional)

* New translations 3.join-server.md (Chinese Traditional)

* New translations 4.things-to-know.md (Chinese Traditional)

* New translations ads.md (Chinese Traditional)

* New translations drive.md (Chinese Traditional)

* New translations mfm.md (Chinese Traditional)

* New translations mute-and-block.md (Chinese Traditional)

* New translations pages.md (Chinese Traditional)

* New translations poll.md (Chinese Traditional)

* New translations share-form.md (Chinese Traditional)

* New translations thread-mute.md (Chinese Traditional)

* New translations webhook.md (Chinese Traditional)

* New translations 1.troubleshooting.md (Chinese Traditional)

* New translations donate.md (Chinese Traditional)

* New translations misskey-hub.md (Chinese Traditional)

* New translations announcement.md (Chinese Traditional)

* New translations role.md (Chinese Traditional)

* New translations 1.index.md (Chinese Traditional)

* New translations bash.md (Chinese Traditional)

* New translations docker.md (Chinese Traditional)

* New translations kubernetes.md (Chinese Traditional)

* New translations manual.md (Chinese Traditional)

* New translations ubuntu-manual.md (Chinese Traditional)

* New translations cdn.md (Chinese Traditional)

* New translations disable-timelines.md (Chinese Traditional)

* New translations 1.index.md (Chinese Traditional)

* New translations permission.md (Chinese Traditional)

* New translations 1.index.md (Chinese Traditional)

* New translations token.md (Chinese Traditional)

* New translations publish-on-your-website.md (Chinese Traditional)

* New translations 5.releases.md (Chinese Traditional)

* New translations 1.about-misskey.md (English)

* New translations 2.get-started.md (English)

* New translations 3.join-server.md (English)

* New translations 4.things-to-know.md (English)

* New translations ads.md (English)

* New translations drive.md (English)

* New translations mfm.md (English)

* New translations mute-and-block.md (English)

* New translations pages.md (English)

* New translations poll.md (English)

* New translations share-form.md (English)

* New translations thread-mute.md (English)

* New translations webhook.md (English)

* New translations 1.troubleshooting.md (English)

* New translations donate.md (English)

* New translations misskey-hub.md (English)

* New translations announcement.md (English)

* New translations role.md (English)

* New translations 1.index.md (English)

* New translations bash.md (English)

* New translations docker.md (English)

* New translations kubernetes.md (English)

* New translations manual.md (English)

* New translations ubuntu-manual.md (English)

* New translations cdn.md (English)

* New translations disable-timelines.md (English)

* New translations 1.index.md (English)

* New translations permission.md (English)

* New translations 1.index.md (English)

* New translations token.md (English)

* New translations 5.releases.md (English)

* New translations 1.about-misskey.md (Indonesian)

* New translations 2.get-started.md (Indonesian)

* New translations 3.join-server.md (Indonesian)

* New translations 4.things-to-know.md (Indonesian)

* New translations ads.md (Indonesian)

* New translations drive.md (Indonesian)

* New translations mfm.md (Indonesian)

* New translations mute-and-block.md (Indonesian)

* New translations pages.md (Indonesian)

* New translations poll.md (Indonesian)

* New translations share-form.md (Indonesian)

* New translations thread-mute.md (Indonesian)

* New translations webhook.md (Indonesian)

* New translations 1.troubleshooting.md (Indonesian)

* New translations donate.md (Indonesian)

* New translations misskey-hub.md (Indonesian)

* New translations announcement.md (Indonesian)

* New translations role.md (Indonesian)

* New translations 1.index.md (Indonesian)

* New translations bash.md (Indonesian)

* New translations docker.md (Indonesian)

* New translations kubernetes.md (Indonesian)

* New translations manual.md (Indonesian)

* New translations ubuntu-manual.md (Indonesian)

* New translations cdn.md (Indonesian)

* New translations disable-timelines.md (Indonesian)

* New translations 1.index.md (Indonesian)

* New translations permission.md (Indonesian)

* New translations 1.index.md (Indonesian)

* New translations token.md (Indonesian)

* New translations 5.releases.md (Indonesian)
2023-12-29 13:23:03 +09:00

17 KiB
Raw Blame History

Ubuntu 버전 Misskey 설치 방법 자세히 알아보기

기타 Misskey 설치 방법

  • [기본 버전 Misskey 구축 가이드 (manual)](. /manual/)
  • [기타 설치 방법 목록](/docs/for-admin/install/guides/#설치 방법 목록)

쉘 스크립트 안내

복사, 붙여넣기만 하면 쉘 스크립트로 하면 되지 않겠느냐는 생각으로 쉘 스크립트로 거의 모든 것을 해주는 방법을 만들어 보았습니다!
쉘 스크립트에 대한 자세한 내용과 사용법은 여기에서 확인하세요!

:::tip

シェルスクリプトでの開発環境へのインストールは想定されていません。

:::

:::tip

이 글에서는 Misskey 구축 가이드 (manual)에 소개된 대로 systemd에서 Misskey를 동작시키고 있습니다.

:::

不具合があれば @aqz@p1.a9z.dev へのメンションにてお知らせいただければと思います。

소개

이 글에서는 Misskey 구축 가이드 (manual)을 바탕으로 일반적인 우분투 서버에 Misskey를 설치하고 공개하는 방법을 하나하나 설명합니다.

docker-composeなら、手作業でももうちょっと簡単に実行できるはずです。

:::danger

OS의 차이, Misskey 본체나 의존하는 소프트웨어의 버전업으로 변경된 부분 등이 있을 수 있지만, 양해 부탁드립니다.

:::

환경 및 조건

この記事では、Misskey構築の手引き (manual)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。

Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。

この記事では、具体性を重視し、特定の環境に特化した記述をしている。

OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。

わからない単語については、『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』 で調べて分かった気になってほしい。

環境と条件

  • OSはUbuntu 22.04.1 LTSを利用する。
  • ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。
  • メモリは1.5GB程度あればよい。Viteの導入等により、1.5GB程度でもビルド可能になった)
  • 独自のドメインを購入し、CloudFlareを使用する。
  • ドメインはGoogle Domainsなどで予め用意しておくこと。
  • ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます設定ファイルの項で別途説明

:::danger

一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください!

:::

nanoの使い方

今回はテキストエディターにnanoを使う。次のように起動する。

nano /path/to/file

기본적인 소프트웨어를 설치합니다.

終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。

Node.js는 서버사이드 자바스크립트 환경으로 Misskey의 기본 실행 환경입니다.

ユーザーの作成

Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。

sudo adduser --disabled-password --disabled-login misskey

:::tip

開発環境の場合はユーザーを分ける必要はありません

:::

基本的なソフトウェアのインストールと設定

active라면 OK.

사용자 및 데이터베이스 생성

psql을 실행합니다.

sudo -u postgres psql

Misskey에서 사용할 사용자를 생성합니다.
사용자 이름을 misskey, 비밀번호를 hoge로 설정하면 다음과 같습니다.

PostgreSQL

PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。

インストール

シェルスクリプトを実行し、最新バージョンv15をインストールしよう。

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を起動。

sudo -u postgres psql

Misskeyで使うユーザーを作成する。
ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。
LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。

CREATE ROLE misskey LOGIN PASSWORD 'hoge';

データベースを作成。データベース名をmk1としている。

CREATE DATABASE mk1 OWNER misskey;
¥q

Redis

Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https://redis.io/docs/getting-started/installation/install-redis-on-linux/

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로 데몬 상태 확인.

systemctl status nginx

activeならOK。

nginx

http://localhost에 접속하여 *Welcome to nginx!*라고 표시되면 OK.
curl에서 확인하는 것도 좋은 방법입니다.

:::tip

開発環境の場合はnginxのセットアップは不要です

:::

nginx.orgのドキュメント http://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。

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

서버를 인터넷에 공개할 준비를 합니다.

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でデーモンの状態を確認。

systemctl status nginx

activeならOK。そうでなければ、次のコマンドを実行。

sudo ufw enable

sudo ufw default deny

sudo ufw limit 22

sudo ufw allow 80

sudo ufw allow 443

http://localhost にアクセスし、*Welcome to nginx!*と表示されればOK。
curlで確認するのもよいだろう。

sudo ufw status

その他

Gitバージョン管理ソフトおよびbuild-essentialMisskeyのビルド時に必要をインストールする。

sudo apt update

sudo apt install -y git build-essential

CloudFlare

サーバーをインターネットに公開する準備をする。

:::tip

DNS 등록 화면에서 서버의 IP 주소를 입력하면 됩니다.

:::

Certbot (Let's Encrypt) 설정

HTTPS・WSS 통신에 사용할 인증서를 CloudFlare를 사용하는 방식으로 Let's Encrypt에서 발급받습니다.

certbot과 CloudFlare 플러그인 설치하기

sudo apt install -y certbot python3-certbot-dns-cloudflare

ufwのステータスを確認しておく。

sudo ufw status

CloudFlare의 정보를 담은 설정 파일 /etc/cloudflare/cloudflare.ini를 생성합니다.

mkdir /etc/cloudflare
nano /etc/cloudflare/cloudflare.ini

:::tip

ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。

:::

CloudFlare

준비가 되었으니 명령을 실행합니다.중간에 있는 2곳의 example.tld는 자신의 것으로 교체.

CloudFlareにサインアップ し、購入したドメインを案内に従って登録する。

DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。

자동 업데이트 설정은 설치와 동시에 이루어지기 때문에 불필요합니다.

Misskey 설치하기

이제 사전 준비는 어느 정도 끝났으니 미스키를 준비할 차례입니다.

misskey 사용자로 변경.

sudo su - misskey

CloudflareのAPIキーを取得する。以下の手順で取得されたい。

  1. https://dash.cloudflare.com/profile/api-tokens にアクセス
  2. Global API KeyのViewを選択
  3. パスワードを入力しhCaptchaを解除、Viewを選択

필요한 npm 패키지를 설치합니다.

NODE_ENV=production pnpm install --frozen-lockfile

dns_cloudflare_email下の例ではbar@fuga.fooにはCloudFlareで登録しているメールアドレスを設定する。

dns_cloudflare_email = bar@fuga.foo
dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx

설정 파일 .config/default.yml을 생성합니다.

nano .config/default.yml

다음 내용을 붙여넣고 적절하게 바꿉니다.설정값의 변경이 필요한 부분은 ●, 지금까지의 흐름에서 설정된 값을 사용하는 부분은 ○으로 표시하였습니다.

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ユーザーに変更。

sudo su - misskey

루트 권한으로 변경합니다.

exit

/etc/nginx/conf.d/misskey.conf를 작성합니다.

sudo nano /etc/nginx/conf.d/misskey.conf

Misskeyを設定する

default.yml

변경 사항을 저장합니다.

nano .config/default.yml

次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。

OK라면 nginx 데몬을 재시작합니다.

設定できる値と記述方法は.config/example.ymlに書かれている。

:::tip

開発環境の場合、urlはurl: http://localhost:3000と指定します。

:::

# ● 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

misskey 사용자로 다시 로그인합니다.

nginxの設定

nginxの設定を行う。

ルート権限で行う。

exit

/etc/nginx/conf.d/misskey.confを作成する。

sudo nano /etc/nginx/conf.d/misskey.conf

Misskey Hubの設定例をnanoへコピーペーストし、次の部分を自分のものに書き換える。

  • 서버에 스왑 추가하기
  • 로컬에서 빌드한 것(built 디렉토리)을 sftp로 전송하기
  • 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除

変更を保存する。

設定ファイルがきちんと機能するか確認。

sudo nginx -t

OKならば、nginxデーモンを再起動。

sudo systemctl restart nginx

Misskey의 웰컴 페이지가 표시되어야 합니다.

sudo systemctl status nginx

activeであればOK。

CloudFlare의 DNS 확인하기

CloudFlare의 DNS 설정이 올바른 IP 주소로 설정되어 있는지 다시 한 번 확인해봅니다.

sudo su - misskey

ビルドをする。yes we can…

cd misskey
NODE_ENV=production pnpm run build

:::tip

開発環境の場合、NODE_ENV=productionは不要です。以降のコマンドでも同様に削除してください。

:::

サーバーでビルドできない場合

RAMの不足が考えられる。

Misskeyのビルドやデータベースのマイグレーション初期化を含むには、RAMが2GB以上必要になっている。
RAMが足りない場合、以下のような解決策が考えられる。

  • サーバーにスワップを追加する
  • ローカルでビルドしたものbuiltディレクトリをsftpで転送する

データベースの初期化

[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

Misskeyを起動する

sudo systemctl daemon-reload

sudo systemctl enable misskey

sudo systemctl start misskey

Now listening on port 3000 on http://example.tld と表示されたら、設定したURLにアクセスする。

Misskeyのウェルカムページが表示されるはずだ。

active라면 OK.

アクセスできない場合

CloudFlareのDNSを確認する

CloudFlareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。

ルーターの設定を確認する

自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。

[Misskey 업데이트 방법](. /manual/#misskey 업데이트 방법)

Misskeyのデーモンを作成

:::tip

開発環境の場合、デーモンの作成は不要です。

:::

재부팅 후 Misskey는 자동으로 시작됩니다.

ルート権限で行う。

sudo systemctl start misskey

/etc/systemd/system/misskey.serviceを作成する。

sudo nano /etc/systemd/system/misskey.service

次の内容を貼り付け、保存する。

[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デーモンを開始。

sudo systemctl daemon-reload

sudo systemctl enable misskey

sudo systemctl start misskey

systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。

sudo systemctl status misskey

activeならOK。

これでMisskeyのインストールはほぼ完了だ。

Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。

Misskeyの設定を続ける

Misskeyのアップデート

Misskeyのアップデート方法

作業中はMisskeyを使うことができません。

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をする場合

sudo apt update -y
sudo apt full-upgrade -y
sudo reboot

再起動後はMisskeyは自動で起動します。

Case 2: そのまま起動

sudo systemctl start misskey