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]を訪問 / フォローしてください。

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