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. 後期のメンテナンスとバックアップ
証明書を申請#
まず、サイト - 証明書に入ります。
DNS アカウントを作成#
私は Cloudflare を使用しています。他の方法は自分で調べて API キーを取得してください。
現在、CloudFlare はAPI トークンを使用する必要があります。
Acme アカウントを作成#
証明書を申請をクリックし、完了を待ちます。
リバースプロキシ設定#
主ドメイン名を入力し、あなたのウェブサイトのアドレスとします。
プロキシアドレスにはあなたのサーバーの IP: サービスポート番号を入力します。
設定に入ります。
以前に作成したAcme アカウントと証明書を選択し、保存します。
DNS サービスプロバイダーでレコードを追加するのを忘れないでください!#
これであなたのウェブサイトは構築されました。アカウント作成時にサーバーが生成したコマンドを入力してパスワード設定を行い、使用を開始できます。
中国語検索の設定#
データベースプラグインを使用する方法は個人的に複雑すぎると思うので(えへへ)、Meilisearchを選びました。
1Panel でMeiliSearchを検索し、インストールします。
パラメータを確認します。
あなたのサイトを開き、右上のボタンをクリックしてコントロールパネルに入ります。
Settings-Searchをクリックします。
Meilisearchを選択します。
Url:1Panel に戻り、コンテナをクリックします。
ここでIP アドレス、ポート、Key を確認し、インストール前に見たパラメータを入力します。
右下のSubmitをクリックして送信します。
ホームページに戻り、テストを行います。
完了です。
この記事があなたに役立った場合は、@[email protected]を訪問 / フォローしてください。