banner
老孙

老孙博客

资深网民孙先生
mastodon
email

fly.ioでGotosocialをデプロイする

Gotosocial について#

GoToSocial は、非常に軽量な(ユーザーインターフェースがなく、サードパーティのプログラムを使用してログインし、Mastodon アプリと互換性がある必要があります)ActivityPub フェデレーテッドソーシャルネットワークプログラムです。GoToSocial を自分で構築することで、インスタンスの閉鎖や不可抗力などの理由で情報が失われることを防ぐことができます。

準備#

  • Fly.io アカウントを登録し、カードをバインドします(乱用を防ぐため)。
  • Cloudflare に登録し、R2 を有効にします。R2 を有効にするには、カードをバインドする必要があります。ストレージバケットを作成し、API トークンを作成します。
  • render.com に登録し、POSTGRESQL データベースを作成し、データベースのパスワードなどの情報を記録します。

flyctl のインストール#

  • Linux
curl -L https://fly.io/install.sh | sh
  • macOS
curl -L https://fly.io/install.sh | sh
  • Windows、RemoteSigned を有効にする必要があります:管理者として実行する
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
powershell -Command "iwr https://fly.io/install.ps1 -useb | iex"

ログイン#

flyctl auth login

# ログインに失敗した場合は、次のコマンドを使用します
# flyctl auth login -i 
# アカウントとパスワードを入力してログインします

アプリの作成#

YOURAPPNAMEを自分が設定したい名前に変更してください

flyctl launch --name YOURAPPNAME --image=superseriousbusiness/gotosocial:latest --region hkg --no-deploy

ボリュームの作成#

flyctl volumes create social_data --region hkg --size 1

設定の編集#

ルートディレクトリの fly.toml 設定ファイルを編集し、以下を参照してください

app = "gotos" ## カスタム名
primary_region = "hkg" ##サーバーノード、現在は香港

[experimental]
  vm = true

[build]
  image = "superseriousbusiness/gotosocial:latest"

[env]
  GTS_DB_ADDRESS = "#データベースアドレス"
  GTS_DB_DATABASE = "#データベース名"
  GTS_DB_PORT = "5432"
  GTS_DB_TLS_MODE = "enable"
  GTS_DB_TYPE = "postgres"
  GTS_DB_USER = "データベースユーザー名"
  GTS_HOST = "GTSのドメイン"
  GTS_LETSENCRYPT_ENABLED = "false"
  GTS_STORAGE_BACKEND = "s3"
  GTS_STORAGE_S3_BUCKET = "BUCKET名"
  GTS_STORAGE_S3_ENDPOINT = "#S3 API"
  GTS_STORAGE_S3_ACCESS_KEY = "#api-tokens"
  GTS_STORAGE_S3_SECRET_KEY = "#api-tokens"
  GTS_STORAGE_S3_PROXY = "true"

[[mounts]]
  source = "social_data"
  destination = "/gotosocial/storage"

[http_service]
  internal_port = 8080
  force_https = true
  auto_stop_machines = false
  auto_start_machines = true
  min_machines_running = 1
  processes = ["app"]

上記の設定のうち、GTS_STORAGE_S3_ENDPOINTにはhttps:と最後の/BUCKET名は不要です。

デプロイ#

flyctl deploy

起動に成功したら、URL が表示され、アクセスできればデプロイが成功しています。

ユーザーと管理者の作成#

fly.toml ファイルのディレクトリで次のコマンドを実行します

flyctl ssh console
  • ユーザーの作成
/gotosocial/gotosocial admin account create --username YOUR_USERNAME --email YOUR@EMAIL.COM --password 'SOME_VERY_GOOD_PASSWD'

YOUR_USERNAMEはユーザー名です
YOUR@EMAIL.COMはメールアドレスです
SOME_VERY_GOOD_PASSWDはパスワードです。十分に複雑に設定してください。簡単すぎる場合は、セキュリティが不十分として再設定する必要があります。

  • 管理者の設定
/gotosocial/gotosocial admin account promote --username YOUR_USERNAME

デモ#

https://m.ima.cm

https://m.ima.cm/@jkjoy

データベースのダウンロード#

fly.toml ファイルのディレクトリで次のコマンドを実行します

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