2022-07-18 / @syui

gnu-social , heroku

gnu-socialをherokuで立てる[2022年度版]

gnu-socialも触ってみました。今回もherokuでdeployするヒントを書いていきたいと思います。

いろいろな変化があるものの、srcは相変わらず古い感じがします。

3.0

https://code.undefinedhackers.net/GNUsocial/gnu-social

  • postgres + nginx

とりあえず、bin/configureにdockerfileを作成するscriptがありますので実行するようです。Makefileにいろんなコマンドが定義されているようですが、項目を読めばだいたい分かるでしょう。

$ git clone https://code.undefinedhackers.net/GNUsocial/gnu-social
$ cd gnu-social
$ ./bin/configure
$ make
$ sudo docker ps -a
$ paru -S php-pear
$ sudo pecl install vips
$ sudo vim /etc/php/php.ini
extension=iconv
extension=vips

以下を追記、または編集します。

"require": {
	"php": "^8.1.0",
	"ext-vips":"*",
	"jcupitt/vips": "1.0.9"
}
$ composer update --ignore-platform-reqs
$ git add composer.*
$ heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt

Aptfile

php-pear

herokunの場合、残念ながらphp-vipssupportされていません。

したがって、buildpacksを自前で用意するしかないのですが、用意してやってみたところ、peclが動作しません。

いくつか調整してみたものの、これでは実現できたとしても完全にやるべきことではないと判断し、途中でやめることにしました。

sed -i -e "s#/usr/bin/php#/app/.heroku/php-min/bin/php#g" $build_dir/.apt/usr/bin/pecl
pecl install vips
web: vendor/bin/heroku-php-nginx public/

ref : https://devcenter.heroku.com/ja/articles/php-support#using-optional-extensions

ref : https://devcenter.heroku.com/ja/articles/deploying-php

2.0

https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/nightly

  • mysql + apache

php7.4で動きますので、herokuのstack-20を使用します。これは簡単でそのまま通ります。

$ git checkout nightly
$ heroku stack:set heroku-20

ref : https://syui.cf/blog/post/2019/03/25/gnu-social