2022-07-02 21:00:01 +00:00
|
|
|
|
# Akkomaの入れ方
|
2019-03-28 16:46:30 +00:00
|
|
|
|
## 日本語訳について
|
|
|
|
|
|
|
|
|
|
この記事は [Installing on Debian based distributions](Installing on Debian based distributions) の日本語訳です。何かがおかしいと思ったら、原文を見てください。
|
|
|
|
|
|
|
|
|
|
## インストール
|
|
|
|
|
|
2022-07-02 21:00:01 +00:00
|
|
|
|
このガイドはDebian Stretchを利用することを想定しています。Ubuntu 16.04や18.04でもおそらく動作します。また、ユーザはrootもしくはsudoにより管理者権限を持っていることを前提とします。もし、以下の操作をrootユーザで行う場合は、 `sudo` を無視してください。ただし、`sudo -Hu akkoma` のようにユーザを指定している場合には `su <username> -s $SHELL -c 'command'` を代わりに使ってください。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
|
|
|
|
### 必要なソフトウェア
|
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
- PostgreSQL 9.6以上 (Ubuntu16.04では9.5しか提供されていないので,[](https://www.postgresql.org/download/linux/ubuntu/)こちらから新しいバージョンを入手してください)
|
2020-03-03 03:58:12 +00:00
|
|
|
|
- `postgresql-contrib` 9.6以上 (同上)
|
2022-07-02 21:00:01 +00:00
|
|
|
|
- Elixir 1.8 以上 ([Debianのリポジトリからインストールしないこと!!! ここからインストールすること!](https://elixir-lang.org/install.html#unix-and-unix-like)。または [asdf](https://github.com/asdf-vm/asdf) をakkomaユーザーでインストールしてください)
|
2020-03-03 03:58:12 +00:00
|
|
|
|
- `erlang-dev`
|
|
|
|
|
- `erlang-nox`
|
|
|
|
|
- `git`
|
|
|
|
|
- `build-essential`
|
2020-08-10 13:12:45 +00:00
|
|
|
|
- `cmake`
|
2020-06-16 13:11:45 +00:00
|
|
|
|
- `libmagic-dev`
|
2019-08-31 07:23:15 +00:00
|
|
|
|
|
|
|
|
|
#### このガイドで利用している追加パッケージ
|
|
|
|
|
|
2020-03-03 03:58:12 +00:00
|
|
|
|
- `nginx` (おすすめです。他のリバースプロキシを使う場合は、参考となる設定をこのリポジトリから探してください)
|
|
|
|
|
- `certbot` (または何らかのLet's Encrypt向けACMEクライアント)
|
2020-09-26 16:32:16 +00:00
|
|
|
|
- `ImageMagick`
|
|
|
|
|
- `ffmpeg`
|
|
|
|
|
- `exiftool`
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
|
|
|
|
### システムを準備する
|
|
|
|
|
|
|
|
|
|
* まずシステムをアップデートしてください。
|
|
|
|
|
```
|
2019-08-31 07:23:15 +00:00
|
|
|
|
sudo apt update
|
|
|
|
|
sudo apt full-upgrade
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
* 上記に挙げたパッケージをインストールしておきます。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
2020-10-09 16:26:10 +00:00
|
|
|
|
sudo apt install git build-essential postgresql postgresql-contrib cmake ffmpeg imagemagick libmagic-dev
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
2019-08-31 07:23:15 +00:00
|
|
|
|
|
2019-03-28 16:46:30 +00:00
|
|
|
|
### ElixirとErlangをインストールします
|
|
|
|
|
|
|
|
|
|
* Erlangのリポジトリをダウンロードおよびインストールします。
|
|
|
|
|
```
|
2020-05-28 15:32:56 +00:00
|
|
|
|
wget -P /tmp/ https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
|
|
|
|
|
sudo dpkg -i /tmp/erlang-solutions_2.0_all.deb
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* ElixirとErlangをインストールします、
|
|
|
|
|
```
|
2019-08-31 07:23:15 +00:00
|
|
|
|
sudo apt update
|
2020-03-03 03:58:12 +00:00
|
|
|
|
sudo apt install elixir erlang-dev erlang-nox
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2021-01-10 08:25:36 +00:00
|
|
|
|
### オプションパッケージ: [`docs/installation/optional/media_graphics_packages.md`](../installation/optional/media_graphics_packages.md)
|
2020-09-26 16:32:16 +00:00
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
sudo apt install imagemagick ffmpeg libimage-exiftool-perl
|
|
|
|
|
```
|
|
|
|
|
|
2022-07-02 21:00:01 +00:00
|
|
|
|
### Akkoma BE (バックエンド) をインストールします
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
2022-07-02 21:00:01 +00:00
|
|
|
|
* Akkoma用に新しいユーザーを作ります。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo useradd -r -s /bin/false -m -d /var/lib/akkoma -U akkoma
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-07-02 21:00:01 +00:00
|
|
|
|
**注意**: Akkomaユーザとして単発のコマンドを実行したい場合はは、`sudo -Hu akkoma command` を使ってください。シェルを使いたい場合は `sudo -Hu akkoma $SHELL`です。もし `sudo` を使わない場合は、rootユーザで `su -l akkoma -s $SHELL -c 'command'` とすることでコマンドを、`su -l akkoma -s $SHELL` とすることでシェルを開始できます。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
|
|
|
|
* Gitリポジトリをクローンします。
|
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo mkdir -p /opt/akkoma
|
|
|
|
|
sudo chown -R akkoma:akkoma /opt/akkoma
|
|
|
|
|
sudo -Hu akkoma git clone https://akkoma.dev/AkkomaGang/akkoma.git /opt/akkoma
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* 新しいディレクトリに移動します。
|
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
cd /opt/akkoma
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-07-02 21:00:01 +00:00
|
|
|
|
* Akkomaが依存するパッケージをインストールします。Hexをインストールしてもよいか聞かれたら、yesを入力してください。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo -Hu akkoma mix deps.get
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* コンフィギュレーションを生成します。
|
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo -Hu akkoma MIX_ENV=prod mix pleroma.instance gen
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
* rebar3をインストールしてもよいか聞かれたら、yesを入力してください。
|
2022-07-02 21:00:01 +00:00
|
|
|
|
* このときにakkomaの一部がコンパイルされるため、この処理には時間がかかります。
|
2019-08-31 07:23:15 +00:00
|
|
|
|
* あなたのインスタンスについて、いくつかの質問されます。この質問により `config/generated_config.exs` という設定ファイルが生成されます。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* コンフィギュレーションを確認して、もし問題なければ、ファイル名を変更してください。
|
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo -Hu akkoma mv config/{generated_config.exs,prod.secret.exs}
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
* 先程のコマンドで、すでに `config/setup_db.psql` というファイルが作られています。このファイルをもとに、データベースを作成します。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo -Hu akkoma MIX_ENV=prod mix pleroma.instance gen
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
* そして、データベースのマイグレーションを実行します。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo -Hu akkoma MIX_ENV=prod mix ecto.migrate
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-07-02 21:00:01 +00:00
|
|
|
|
* これでAkkomaを起動できるようになりました。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo -Hu akkoma MIX_ENV=prod mix phx.server
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
### インストールの最終段階
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
2022-07-02 21:00:01 +00:00
|
|
|
|
あなたの新しいインスタンスを世界に向けて公開するには、nginx等のWebサーバやプロキシサーバをAkkomaの前段に使用する必要があります。また、Akkoma のためにシステムサービスファイルを作成する必要があります。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
|
|
|
|
#### Nginx
|
|
|
|
|
|
|
|
|
|
* まだインストールしていないなら、nginxをインストールします。
|
|
|
|
|
```
|
2019-08-31 07:23:15 +00:00
|
|
|
|
sudo apt install nginx
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* SSLをセットアップします。他の方法でもよいですが、ここではcertbotを説明します。
|
|
|
|
|
certbotを使うならば、まずそれをインストールします。
|
|
|
|
|
```
|
2019-08-31 07:23:15 +00:00
|
|
|
|
sudo apt install certbot
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
そしてセットアップします。
|
|
|
|
|
```
|
2019-08-31 07:23:15 +00:00
|
|
|
|
sudo mkdir -p /var/lib/letsencrypt/
|
|
|
|
|
sudo certbot certonly --email <your@emailaddress> -d <yourdomain> --standalone
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
2019-08-31 07:23:15 +00:00
|
|
|
|
もしうまくいかないときは、nginxが正しく動いていない可能性があります。先にnginxを設定してください。ssl "on" を "off" に変えてから再試行してください。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
* nginxの設定ファイルサンプルをnginxフォルダーにコピーします。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo cp /opt/akkoma/installation/akkoma.nginx /etc/nginx/sites-available/akkoma.nginx
|
|
|
|
|
sudo ln -s /etc/nginx/sites-available/akkoma.nginx /etc/nginx/sites-enabled/akkoma.nginx
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
* nginxを起動する前に、設定ファイルを編集してください。例えば、サーバー名、証明書のパスなどを変更する必要があります。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
* nginxを再起動します。
|
|
|
|
|
```
|
2019-08-31 07:23:15 +00:00
|
|
|
|
sudo systemctl enable --now nginx.service
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
もし証明書を更新する必要が出てきた場合には、nginxの関連するlocationブロックのコメントアウトを外し、以下のコマンドを動かします。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
|
|
|
|
```
|
2019-08-31 07:23:15 +00:00
|
|
|
|
sudo certbot certonly --email <your@emailaddress> -d <yourdomain> --webroot -w /var/lib/letsencrypt/
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
#### 他のWebサーバやプロキシ
|
2022-07-02 21:00:01 +00:00
|
|
|
|
これに関してはサンプルが `/opt/akkoma/installation/` にあるので、探してみてください。
|
2019-08-31 07:23:15 +00:00
|
|
|
|
|
|
|
|
|
#### Systemd サービス
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
* サービスファイルのサンプルをコピーします。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo cp /opt/akkoma/installation/akkoma.service /etc/systemd/system/akkoma.service
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
* サービスファイルを変更します。すべてのパスが正しいことを確認してください
|
2022-07-02 21:00:01 +00:00
|
|
|
|
* サービスを有効化し `akkoma.service` を開始してください
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo systemctl enable --now akkoma.service
|
2019-03-28 16:46:30 +00:00
|
|
|
|
```
|
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
#### 初期ユーザの作成
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
新たにインスタンスを作成したら、以下のコマンドにより管理者権限を持った初期ユーザを作成できます。
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
```
|
2022-07-02 21:00:01 +00:00
|
|
|
|
sudo -Hu akkoma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin
|
2019-08-31 07:23:15 +00:00
|
|
|
|
```
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
2019-08-31 07:23:15 +00:00
|
|
|
|
#### その他の設定とカスタマイズ
|
2019-03-28 16:46:30 +00:00
|
|
|
|
|
2020-06-22 09:41:22 +00:00
|
|
|
|
{! backend/installation/further_reading.include !}
|