banner
 Aeris

Aerisの小宇宙

使用1PanelでAkkomaをデプロイする

Sharkey を展開した後、Pleroma の別のブランチである Akkoma を見ました。Sharkey よりも軽量に見えます。

(Mastodon は期待していません、結局小型サーバーです)

というわけで、また展開の旅を始めました。

この記事で共有する方法は、1panel を使用して簡単にインストールする方法で、テストシステムは Debian 12 です。

皆さんの参加を歓迎します。

公式リポジトリ:https://akkoma.dev/AkkomaGang/akkoma/

公式ドキュメント:https://docs.akkoma.dev/stable/

準備作業#

展開前に、ドメイン名とクリーンな VPS を用意する必要があります。この記事では Debian 12 システムを使用しています。他のシステムを使用している場合は、公式ドキュメントを参照して関連コードを探してください。

Swap の設定#

(または 1panel パネルの ツールボックス - クイック設定 - Swap で見つけてください)

wget https://www.moerats.com/usr/shell/swap.sh && bash swap.sh

正式展開#

curl のインストール#

apt install curl

1Panel のインストール#

1panel 公式ドキュメント:https://1panel.cn/docs/installation/online_installation/

1Panel のインストール中に Docker と Docker-Compose もインストールされます。

私が使用している Debian

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh

akkoma という名前のユーザーを作成#

sudo useradd -r -s /bin/false -m -d /var/lib/akkoma -U akkoma

akkoma に Docker 権限を追加#

sudo usermod -aG docker akkoma

新しい Shell ウィンドウを開き、akkoma でログイン#

su -l akkoma -s $SHELL

元の root ウィンドウに戻り、akkoma フォルダーの権限を与え、リソースを取得#

sudo mkdir -p /opt/akkoma
sudo chown -R akkoma:akkoma /opt/akkoma
sudo -Hu akkoma git clone https://akkoma.dev/AkkomaGang/akkoma.git -b stable /opt/akkoma

akkoma ウィンドウに戻り、ダウンロードディレクトリに移動#

cd /opt/akkoma

docker-composed.yml ファイルを変更#

version: "3.7"

services:
  db:
    image: akkoma-db:latest
    build: ./docker-resources/database
    restart: unless-stopped
    user: ${DOCKER_USER}
    environment: {
      # これは不安に思えるかもしれませんが、通常は問題ありません。
      # これを「akkoma」のデフォルトのままにしてください。
      # DBは同じdockerネットワーク内のコンテナからのみアクセス可能で、
      # 公開インターネットには公開されていません。
      #
      # これを変更する場合は、「config.exs」を更新することを忘れないでください。
      POSTGRES_DB: akkoma,
      POSTGRES_USER: akkoma,
      POSTGRES_PASSWORD: akkoma,
    }
    env_file:
      - .env 
    volumes:
      - type: bind
        source: ./pgdata
        target: /var/lib/postgresql/data

  akkoma:
    image: akkoma:latest
    build: .
    restart: unless-stopped
    env_file:
      - .env
    links:
      - db
    ports: [
      # 必要に応じて以下のポートマッピングをコメント解除/変更してください。
      # 左側はホストマシン、右側はakkomaコンテナです。
      # 左側にIPをプレフィックスすることができます。

      # Webサーバー(docker外のリバースプロキシ用)
      # docker化されたプロキシを使用する場合は、これをコメントアウトして
      # コンテナリンクを代わりに使用できます。
      "0.0.0.0:4000:4000",
    ]
    volumes:
      - .:/opt/akkoma

  # リバースプロキシを使用する場合は以下をコメント解除
  #proxy:
  #  image: caddy:2-alpine
  #  restart: unless-stopped
  #  links:
  #    - akkoma
  #  ports: [
  #     "443:443",
  #     "80:80"
  #  ]
  #  volumes:
  #    - ./docker-resources/Caddyfile:/etc/caddy/Caddyfile
  #    - ./caddy-data:/data
  #    - ./caddy-config:/config

私が行った変更:

akkoma の展開 IPを 127.0.0.1 から 0.0.0.0 に変更しました。

公式ドキュメントに従って展開を開始#

cp docker-resources/env.example .env
echo "DOCKER_USER=$(id -u):$(id -g)" >> .env

コンテナを構築#

./docker-resources/build.sh

インスタンスを生成#

mkdir pgdata
./docker-resources/manage.sh mix deps.get
./docker-resources/manage.sh mix compile
./docker-resources/manage.sh mix pleroma.instance gen

最後の行のコードを入力すると、いくつかの質問がされます

データベースホスト名は db、データベースパスワードは akkoma(自動生成を回避するために Enter を押さないでください)、IP を 0.0.0.0 に設定する必要があります。

パラメータを入力#

What domain will your instance use? 
(e.g akkoma.example.com) [] #自分のインスタンスのドメイン名を入力

What is the name of your instance? 
(e.g. The Corndog Emporium) [kaixin.meme] #サイト名
What is your admin email address? [] #管理者のメールアドレス
What email address do you want to use for sending email notifications? [[email protected]]  #メール通知を送信するためのメールアドレス
Do you want search engines to index your site? (y/n) [y]  #検索機能を有効にしますか
Do you want to store the configuration in the database (allows controlling it from admin-fe)? (y/n) [n]  #管理パネルからデータベースの内容を変更できるようにしますか、推奨
What is the hostname of your database? [localhost] #データベースのアドレス、dockerを使用する場合はdbを入力
# この3項目はすべてakkomaを入力
# ——————————————————
What is the name of your database? [akkoma]   
What is the user used to connect to your database? [akkoma]  
What is the password used to connect to your database? [autogenerated]  akkoma
# ——————————————————
Would you like to use RUM indices? [n]  #何に使うのか不明なため、私は有効にしませんでした(えへへ、初心者
What port will the app listen to (leave it if you are using the default setup with nginx)? [4000]  #ポート番号
What ip will the app listen to (leave it if you are using the default setup with nginx)? [127.0.0.1]  0.0.0.0 #1panelを使用しているので、0.0.0.0と記入
#以下の2項目は変更しませんでした
# ————————————————
What directory should media uploads go in (when using the local uploader)? [uploads]  
What directory should custom public files be read from (custom emojis, frontend bundle overrides, robots.txt, etc.)? [instance/static/] 
# ————————————————
Do you want to strip location (GPS) data from uploaded images? This requires exiftool, it was detected as installed. (y/n) [y]  n #アップロードされた写真からGPS情報を取得しますか、私は有効にしませんでした
Do you want to anonymize the filenames of uploads? (y/n) [n]  y #ファイル名を匿名化しますか、私は有効にしました
Do you want to deduplicate uploaded files? (y/n) [n]  y
#アップロードされたファイルの重複を除去しますか、私ははいを選びました

もし email などを間違えて入力しても、/config/generated_config.exsファイルで修正できます。

または、--forceオプションを追加して再展開できます。

展開を続ける#

cp config/generated_config.exs config/prod.secret.exs

データベースを初期化#

docker compose run --rm --user akkoma -d db 
# ここで与えられた名前をメモしてください。akkoma_db_runのような名前になります。1panelコンテナにログインして確認できます。
docker compose run --rm akkoma psql -h db -U akkoma -f config/setup_db.psql
docker stop akkoma_db_run # メモした名前に置き換えてください。

マイグレーションを実行#

./docker-resources/manage.sh mix ecto.migrate

サービスを起動し、バックグラウンドで実行#

docker compose up -d

IP アドレス:4000 でサービスがあるか確認してください。もしない場合は、以前に 127.0.0.1 が残っていないか確認してください。

すべてが順調であれば、アカウントの作成を続けることができます。

アカウントを作成#

./docker-resources/manage.sh mix pleroma.user new MY_USERNAME MY_EMAIL@SOMEWHERE --admin

MY_USERNAMEを自分のユーザー名に変更してください。

MY_EMAIL@SOMEWHEREを自分のメールアドレスに変更してください。

実行後、初期アカウントパスワードを設定するための URL が生成されるので、保存しておいてください。リバースプロキシを設定した後に使用します。

フロントエンドをインストール#

./docker-resources/manage.sh mix pleroma.frontend install pleroma-fe --ref stable
./docker-resources/manage.sh mix pleroma.frontend install admin-fe --ref stable

1Panel 操作部分#

1. 証明書を申請

2. リバースプロキシ設定

3.meilisearch をインストール

4. 後期メンテナンスとバックアップ

証明書を申請#

まずはサイト - 証明書に入ります。

image

DNS アカウントを作成#

私は Cloudflare を使用しています。他の方法は自分で調べて API キーを取得してください。

image-20240208201948972

現在、CloudFlare はAPI トークンを使用する必要があります。

Acme アカウントを作成#

image

証明書を申請をクリックし、完了を待ちます。

リバースプロキシ設定#

image

メインドメインを入力し、ウェブサイトのアドレスを設定します。

プロキシアドレスにはサーバーの IP: サービスポート番号を入力します。

設定に入ります。

image

image

以前作成したAcme アカウントと証明書を選択し、保存します。

DNS サービスプロバイダーでレコードを追加するのを忘れないでください!#

image

これでウェブサイトの構築が完了しました。アカウント作成時にサーバーが生成したコマンドを入力してパスワードを設定し、使用を開始できます。

中国語検索の設定#

データベースプラグインの使用方法は個人的に複雑すぎると思うので(えへへ)、Meilisearchを選びました。

1Panel でMeiliSearchを検索し、インストールします。

image

パラメータを確認します。

image

サイトを開き、右上を確認してコントロールパネルに入ります。

image

Settings-Searchをクリックします。

image

Meilisearchを選択します。

Url:1Panel に戻り、コンテナをクリックします。

image

ここでIP アドレス、ポート、Key を確認し、インストール前に見たパラメータを入力します。

右下のSubmitをクリックして送信します。

ホームページに戻ってテストします。

image

完了です。


この記事が役に立った場合は、@[email protected]を訪問 / フォローしてください。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。