9.7 KiB
インストール方法
サーバーに直接インストールする
-
サーバーに git, Nodejs, npm, PostgreSQL, PGroonga, Redis, Rust をインストールします。Arch Linux にインストールする場合には私のブログが参考になるかもしれません。
Ubuntu や Debian にインストールする場合には、例えば以下のようになります。
# Rust のインストール curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Nodejs v21 のインストールの準備 NODE_MAJOR=21 sudo apt install --no-install-recommends curl ca-certificates gnupg sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key \ | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] "https://deb.nodesource.com/node_${NODE_MAJOR}.x" nodistro main" \ | sudo tee /etc/apt/sources.list.d/nodesource.list # PostgreSQL のインストールの準備 echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - # PGroonga のインストールの準備 sudo apt install --no-install-recommends software-properties-common wget sudo add-apt-repository -y universe sudo add-apt-repository -y ppa:groonga/ppa wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install --no-install-recommends ./groonga-apt-source-latest-$(lsb_release --codename --short).deb echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release --codename --short)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - # Redis のインストールの準備 curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg # 各ソフトウェアのインストール sudo apt update sudo apt install --no-install-recommends git nodejs postgresql-16 postgresql-16-pgdg-pgroonga redis-server # pnpm を有効化 sudo corepack enable # PostgreSQL, Redis を起動 systemctl enable --now postgresql redis-server
-
このリポジトリを複製し、リポジトリのディレクトリに移る
git clone https://code.naskya.net/naskya/firefish cd firefish
-
設定ファイルのテンプレートを複製する
cp .config/example.yml .config/default.yml
-
PostgreSQL のユーザー名・データベース名・パスワードを決める(決めるだけでこの工程にコマンドの操作は無い)
-
./config/default.yml
を編集するvim .config/default.yml
url
という項目をexample.com
から使いたいドメイン名に変更する# Final accessible URL seen by a user. url: https://example.com/
データベースの設定を変える(データベース名・ユーザー名・パスワードはそれぞれさっき自分で決めたもの)
db: host: localhost # 変えない port: 5432 # 変えない db: firefish_db # ここをデータベース名に変える user: firefish # ここをデータベースのユーザー名に変える pass: very_strong_password # ここをデータベースのパスワードに変える
-
PostgreSQL のユーザーとデータベースを作る
POSTGRES_DB='データベース名' POSTGRES_USER='ユーザー名' POSTGRES_PASSWORD='パスワード' sudo -u postgres psql --command="CREATE ROLE ${POSTGRES_USER} LOGIN PASSWORD '${POSTGRES_PASSWORD}';" sudo -u postgres psql --command="CREATE DATABASE ${POSTGRES_DB} OWNER ${POSTGRES_USER} encoding = 'UTF8';"
-
PGroonga を有効化する
sudo -u postgres psql --dbname="${POSTGRES_DB}" --command='CREATE EXTENSION pgroonga;'
-
Firefish をビルドする
./update.sh --install --native
-
Firefish を起動するための systemd サービスを作る
/etc/systemd/system/firefish.service
というテキストファイルを作り、Firefish をインストールしたディレクトリでpnpm run start
を実行させるようにします。私のブログや systemd サービスに関する記事などを参考にしてください。以下の設定を行えば大丈夫なはずです。
- 実行するユーザーをグループを指定する
which pnpm
でpnpm
コマンドの場所(例えば/usr/bin/pnpm
)を探し、ExecStart
でpnpm run start
を実行させる- 例えば
ExecStart=/usr/bin/pnpm run start
- 例えば
- リポジトリのディレクトリを
WorkingDirectory
に設定する Environment="NODE_ENV=production"
sudo vim /etc/systemd/system/firefish.service
-
Firefish のサービスを有効化・起動する
sudo systemctl enable --now firefish
これで http://localhost:3000
で Web クライアントが動くので、リバースプロキシやファイヤーウォールを設定して外部からアクセス可能にすればよいです。その設定には私のブログや本家 Firefish の READMEが参考になるかもしれません。
正常にインストールできなかった場合には自力で解決しようとせず、私にコマンドの実行ログを送ってください。
コンテナイメージを用いる
実行環境として Podman と Docker をサポートしています。Docker を使う場合には以下の podman
, podman-compose
, --podman
をそれぞれ docker
, docker-compose
, --docker
に読み替えてください。
x86_64 アーキテクチャの Linux のマシン上では、registry.code.naskya.net/naskya/firefish
に上げられている OCI コンテナイメージを利用できます。それ以外の環境で使うには、自分でコンテナイメージをビルドする必要があります。
-
このリポジトリを複製し、リポジトリのディレクトリに移る
git clone https://code.naskya.net/naskya/firefish cd firefish
-
設定ファイルのテンプレートを複製する
cp docker-compose.example.yml docker-compose.yml cp .config/docker.example.env .config/docker.env cp .config/example.yml .config/default.yml
-
PostgreSQL のユーザー名・データベース名・パスワードを決めて
./config/docker.env
に書くvim .config/docker.env
-
.config/default.yml
を編集するvim .config/default.yml
url
という項目をexample.com
から使いたいドメイン名に変更する# Final accessible URL seen by a user. url: https://example.com/
データベースの設定を変える(データベース名・ユーザー名・パスワードはそれぞれさっき
.config/docker.env
に書いたPOSTGRES_DB
,POSTGRES_USER
,POSTGRES_PASSWORD
)db: host: localhost # ここを firefish_db に変える port: 5432 # 変えない db: firefish_db # ここをデータベース名に変える user: firefish # ここをデータベースのユーザー名に変える pass: very_strong_password # ここをデータベースのパスワードに変える
Redis の設定を変える
redis: host: localhost # ここを firefish_redis に変える
-
コンテナイメージをダウンロードまたはビルドする
./update.sh --install --podman
-
データベースのコンテナのみを起動する
podman-compose up db --detach
-
PGroonga を有効にする(
firefish
とfirefish_db
はそれぞれ自分が決めたユーザー名とデータベース名に変えて実行する)podman-compose exec db psql --user=firefish --dbname=firefish_db --command='CREATE EXTENSION pgroonga;'
-
Firefish を起動する
podman-compose up --detach
これで http://localhost:3000
で Web クライアントが動くので、リバースプロキシやファイヤーウォールを設定して外部からアクセス可能にすればよいです。その設定には私のブログや本家 Firefish の READMEが参考になるかもしれません。
正常にインストールできなかった場合には自力で解決しようとせず、私にコマンドの実行ログを送ってください。