AkkomaサーバーをUbuntu24.04上に構築する
技術ブログを作るにあたって、記事を拡散できる場所がほしいよねというわけでAkkomaサーバーを建て直すことにしました。
土台となるVPSサーバのスペックはこんな感じ
Ubuntu 24.04
2GBメモリ
仮想3コア
NVMe150GB
また、同じサーバー内でWordPressがすでに動いています。
最終的な構成を図示するとこうなります
WordPressはNginxとの相性がいまいちなのもあり、WordPressへのアクセスはNginxをリバースプロキシとして使う方式を採用しています。
ポートはApache側を8080/8443に適当に変更しています。
各設定はこんな感じ(SSL設定のパスだけ変えてます)
Nginx側
/etc/nginx/sites-enabled/wordpress.conf
server {
listen 80;
listen [::]:80;
# SSL configuration
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
# To use Let's Encrypt certificate
ssl_trusted_certificate ***.pem;
ssl_certificate ***/keyfile.pem;
ssl_certificate_key ***/privkey.pem;
server_name 7graphics.studio;
location / {
client_max_body_size 0;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://localhost:8080/;
}
}
Apache側
/etc/apache2/sites-available/wordpress.conf
<VirtualHost *:8080>
DocumentRoot /var/www/html/wordpress
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
/etc/apache2/sites-available/wordpress-ssl.conf
<VirtualHost *:8443>
DocumentRoot /var/www/html/wordpress
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(?:cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
Akkoma自体の構築は公式のドキュメントに従っていけばそんなに困ることはないんですが、ドキュメント通りElixirをaptでインストールするとバージョンが14になってしまいます。
こちらの方法でリポジトリを追加すると最新版がインストールできるようになるので作業前に追加しておきましょう。公式のドキュメントの別案にあるasdfはめんどいのでおすすめしません。
また、オブジェクトストレージを利用する場合は、初回の設定ファイル編集時に一緒に設定しておくとよいです。
ビルド後に管理画面から設定できそうに見えるのですが、R2(や他のS3互換ストレージ)だと設定してもアップロードがうまくいかないようで。
設定ファイルに以下のように記載しておくとOKでした。詳しくはR2の管理画面を見てね。
# Configure S3 support if desired.
# The public S3 endpoint (base_url) is different depending on region and provider,
# consult your S3 provider's documentation for details on what to use.
#
config :pleroma, Pleroma.Upload,
uploader: Pleroma.Uploaders.S3,
base_url: "social-media.7gsstudio.cc"
config :pleroma, Pleroma.Uploaders.S3,
bucket: "social-media",
bucket_namespace: "",
truncated_namespace: "",
streaming_enabled: true
# Configure S3 credentials:
config :ex_aws, :s3,
access_key_id: "ACCESS_KEY",
secret_access_key: "SECRET_ACCESS_KEY",
region: "auto",
scheme: "https://"
# For using third-party S3 clones like wasabi, also do:
config :ex_aws, :s3,
host: "***.r2.cloudflarestorage.com"
ひとりサーバーとして運用するのであればAkkomaが一番軽くていいのかなーと思ってます。
フロントエンドも自分でいじれるしね。
そんなななしろのアカウントはこちらです。 よかったらフォローしてみてね。