Skip to content
Snippets Groups Projects
Commit 6a36b032 authored by tamaina's avatar tamaina
Browse files

✌️

parent 93a2263b
No related branches found
No related tags found
No related merge requests found
......@@ -37,7 +37,7 @@ There is also an update script.
First, download the script.
```
wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh;
wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh
```
Run it when you want to update Misskey.
......@@ -64,3 +64,116 @@ If it does not work in the above environment, it may be a bug. We would apprecia
It is difficult to provide assistance for environments other than the above, but we may be able to solve your problem if you provide us with details of your environment.
Suggestions for features are also welcome.
# Tips
仕様や選択肢の選び方など。
## Systemd or Docker?
v1から、インストールメソッドにsystemdとDockerとを選べるようにしました。
Dockerと言っても、**MisskeyだけをDockerで実行**し、RedisやPostgresなどはホストで直接実行します。
[docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0)
Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になるため、**一番お勧めです**
ただし、マイグレーションは必要なので、Misskeyを使えない時間がゼロになるわけではありません。
また、Misskeyのビルド環境を準備しない(git pullしない)ので、フォークを動かしたくなった時に設定が面倒になります。
ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。
systemdは、Docker Hubにイメージを上げるまでもないものの、フォークを使いたい場合にお勧めです。
お勧めする順番は次の通りです。
1. Docker Hub
2. systemd
3. Dockerビルド
## .envファイルについて
インストールスクリプトは、2つの.envファイルを作成します。
アップデートの際に使用します。
### /root/.misskey.env
misskeyを実行するユーザーを覚えておくために必要です。
### /home/(misskeyユーザー)/.misskey.env
systemdの場合に生成されます。
主にディレクトリを覚えておくのに使用します。
### /home/(misskeyユーザー)/.misskey-docker.env
Dockerの場合に生成されます。
実行されているコンテナとイメージの番号を保存しています。
コンテナの番号はアップデートの際に更新されます。古いイメージは削除されます。
## 自分で管理する
インストール後、構成を変更する際に役立つはずのメモです。
"example.com"を自分のドメインに置き換えて読んでください。
### Misskeyディレクトリ
Misskeyのソースは`/home/ユーザー/ディレクトリ`としてcloneされます。
(ユーザー、ディレクトリの初期値はともにmisskeyです。)
Misskeyディレクトリへは、以下のように移動するとよいでしょう。
```
sudo su - ユーザー
cd ディレクトリ
```
もとのユーザーに戻るにはexitを実行します。
```
exit
```
### systemd
systemdのプロセス名はexample.comです。
たとえば再起動するには次のようにします。
```
sudo systemctl restart example.com
```
journalctlでログを確認できます。
```
journalctl -t example.com
```
設定ファイルは`/etc/systemd/system/example.com.service`として保存されています。
### Docker
DockerはMisskeyユーザーでrootless実行されています。
sudo suでMisskeyユーザーに入るときは、`XDG_RUNTIME_DIR``DOCKER_HOST`を変更する必要があります。
```
sudo su - ユーザー
export XDG_RUNTIME_DIR=/run/user/$UID
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock
docker ps
```
### nginx
nginxの設定は`/etc/nginx/conf.d/example.com.conf`として保存されています。
### Redis
requirepassとbindを`/etc/redis/misskey.conf`で設定しています。
## Q. アップデート後に502でアクセスできない
アップデート後にアクセスできない、ということが稀にあります。
スクリプトのバグはともかくとして、一般的に一番多い理由は、yarn installに失敗している場合です。
Misskeyディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。
```
npm run cleanall
```
journalctlでログを確認すると、たいていre2が云々という記述が見当たります。
## Q. 同じサーバーにもう1つMisskeyを建てたい
スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。
幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。
......@@ -41,7 +41,7 @@ example.comは自分のドメインに置き換えてください。
まずはダウンロードします。
```
wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh;
wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh
```
アップデートしたいときにスクリプトを実行してください。
......@@ -75,18 +75,16 @@ sudo bash update.sh
## Systemd or Docker?
v1から、インストールメソッドにsystemdとDockerとを選べるようにしました。
Dockerと言っても、**MisskeyだけをDockerで実行します**
RedisやPostgresはホストマシンで実行します。
Dockerと言っても、**MisskeyだけをDockerで実行**し、RedisやPostgresなどはホストで直接実行します。
[docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0)
Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になります。
**一番お勧めです。**
Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になるため、**一番お勧めです**
ただし、マイグレーションは必要なので、Misskeyを使えない時間がゼロになるわけではありません。
さらに、Misskeyのビルド環境を準備しないので、自分のフォークを動かしたくなった時に設定が面倒になります。
また、Misskeyのビルド環境を準備しない(git pullしない)ので、フォークを動かしたくなった時に設定が面倒になります。
逆に、ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。
ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。
systemdは、Docker Hubにイメージを上げるまでもないけれど、自分のフォークを使いたい場合にお勧めです。
systemdは、Docker Hubにイメージを上げるまでもないものの、フォークを使いたい場合にお勧めです。
お勧めする順番は次の通りです。
......
......@@ -60,32 +60,64 @@ echo "method: $method / user: $misskey_user / dir: $misskey_directory / $misskey
if [ $method == "systemd" ]; then
#region systemd
tput setaf 3;
echo "Process: update (systemd);";
tput setaf 7;
#region work with misskey user
su "$misskey_user" << MKEOF
set -eu;
cd ~/$misskey_directory;
tput setaf 3;
echo "Process: git pull;";
tput setaf 7;
git pull;
MKEOF
#endregion
tput setaf 3;
echo "Process: stop daemon;";
tput setaf 7;
systemctl stop "$host"
#region work with misskey user
su "$misskey_user" << MKEOF
set -eu;
cd ~/$misskey_directory;
tput setaf 3;
echo "Process: yarn install;";
tput setaf 7;
npx yarn install;
tput setaf 3;
echo "Process: build misskey;";
tput setaf 7;
npm run clean;
NODE_ENV=production npm run build;
tput setaf 3;
echo "Process: migrate db;";
tput setaf 7;
npm run migrate;
MKEOF
#endregion
if [ $# == 1 ] && [ $1 == "-r" ]; then
tput setaf 3;
echo "Process: apt upgrade;";
tput setaf 7;
apt update -y;
apt full-upgrade -y;
tput setaf 3;
echo "reboot;";
tput setaf 7;
reboot;
else
tput setaf 3;
echo "Process: start daemon;";
tput setaf 7;
systemctl start "$host";
fi
#endregion
......@@ -94,6 +126,9 @@ else
oldid=$(sudo -u "$misskey_user" XDG_RUNTIME_DIR=/run/user/$m_uid DOCKER_HOST=unix:///run/user/$m_uid/docker.sock docker images --no-trunc --format "{{.ID}}" $docker_repository);
if [ $method == "docker" ]; then
tput setaf 3;
echo "Process: docker build;";
tput setaf 7;
if [ $# == 1 ]; then
docker_repository="$1";
else
......@@ -103,6 +138,9 @@ else
sudo -u "$misskey_user" XDG_RUNTIME_DIR=/run/user/$m_uid DOCKER_HOST=unix:///run/user/$m_uid/docker.sock docker build -t $docker_repository "/home/$misskey_user/$misskey_directory";
else
tput setaf 3;
echo "Process: docker pull;";
tput setaf 7;
if [ $# == 1 ]; then
docker_repository="$1";
else
......@@ -112,7 +150,14 @@ else
sudo -u "$misskey_user" XDG_RUNTIME_DIR=/run/user/$m_uid DOCKER_HOST=unix:///run/user/$m_uid/docker.sock docker pull "$docker_repository";
fi
tput setaf 3;
echo "Process: docker rm container;";
tput setaf 7;
sudo -u "$misskey_user" XDG_RUNTIME_DIR=/run/user/$m_uid DOCKER_HOST=unix:///run/user/$m_uid/docker.sock docker rm -f "$docker_container";
tput setaf 3;
echo "Process: docker run;";
tput setaf 7;
docker_container=$(sudo -u "$misskey_user" XDG_RUNTIME_DIR=/run/user/$m_uid DOCKER_HOST=unix:///run/user/$m_uid/docker.sock docker run -d -p $misskey_port:$misskey_port --add-host=$misskey_localhost:$docker_host_ip -v /home/$misskey_user/$misskey_directory/files:/misskey/files -v "/home/$misskey_user/$misskey_directory/.config/default.yml":/misskey/.config/default.yml:ro --restart unless-stopped -t "$docker_repository");
su "$misskey_user" <<-MKEOF
......@@ -136,5 +181,8 @@ else
_EOF
MKEOF
sudo -u $misskey_user XDG_RUNTIME_DIR=/run/user/$m_uid DOCKER_HOST=unix:///run/user/$m_uid/docker.sock docker image rmi "$oldid"
tput setaf 3;
echo "Process: docker remove image;";
tput setaf 7;
sudo -u $misskey_user XDG_RUNTIME_DIR=/run/user/$m_uid DOCKER_HOST=unix:///run/user/$m_uid/docker.sock docker rmi "$oldid"
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment