結局「自由に触れる環境」を自分で用意した
前回、WebDB選定の流れで結局VPSに戻った話を書きました。
結論から言うと、
「UIで触れて、かつ裏側も自分でいじれる環境」が欲しくて、
そのままプリザンターをVPS上に構築しています。
今回はそのときの実務ログです。
細かい手順というより、どこで迷ったか、どこまでやったかを残します。
構成:いつものVPS構成にそのまま乗せた
構成はかなりシンプルです。
・Ubuntu 24.04
・PostgreSQL 16
・.NET 8
・nginx
・プリザンター 1.4系(2025年当時)
スペックはCPU6コア / メモリ12GB。
最初から少し余裕を持たせています。
後から重くなるより、最初に余裕あるほうが精神的に楽なので。
この環境自体は、普段検証でも使っているXserver VPS上に作っています。上記スペックでも、月契約で4,400円。
この構成でそのまま業務も回しているので、この記事もその前提です。
初期設定は「最低限で止める」
OS入れたあとにやったのはいつもの基本だけです。
・タイムゾーン設定
・ホスト名変更
・日本語ロケール
・パッケージアップデート
AppArmorは今回無効化しています。
検証段階で引っかかるのが面倒だったので。
IPv6も使っていないので停止。
このあたりは「あとで考える」前提で、
まずは動かすこと優先です。
PostgreSQLのセットアップ(ここだけ軽く触る)
DBはPostgreSQLを使っています。
インストール自体はシンプルです。
apt install -y postgresql postgresql-contrib
パスワード設定と基本設定だけ調整しています。
passwd postgres
su - postgres
psql -U postgres
alter role postgres with password '******';
設定ファイル側では
・listen_addresses = ‘*’
・pg_hba.conf の接続許可
このあたりだけ変更しています。
ローカル接続を優先して、一部 trust にしていますが、
ここは本番前に締める前提です。
プリザンターのインストール(ここが本体)
プリザンター自体はzipで落として展開します。
apt install -y unzip
wget https://github.com/Implem/Implem.Pleasanter/releases/download/Pleasanter_1.4.7.2/Pleasanter_1.4.7.2.zip
unzip Pleasanter_1.4.7.2.zip
配置して権限調整。
mv pleasanter /web/pleasanter
chown -R pleasanter /web/pleasanter
DB接続設定(Rds.json)を書き換え。
ここでPostgreSQLの接続情報を入れます。
そのあと初期化。
cd /web/pleasanter/Implem.CodeDefiner
sudo -u pleasanter dotnet Implem.CodeDefiner.dll _rds /l "ja" /z "Asia/Tokyo"
起動確認。
cd /web/pleasanter/Implem.Pleasanter
sudo -u pleasanter dotnet Implem.Pleasanter.dll
ここまでで、とりあえずローカルでログイン画面が出ればOKです。
サービス化して「落ちても戻る」状態にする
そのままだと手動起動なので、systemdでサービス化します。
これをやっておくと、再起動や障害時も自動復旧するので、
業務利用前提ならほぼ必須です。
systemctl enable pleasanter
systemctl start pleasanter
nginxで外からアクセスできるようにする
外から使うので、nginxでリバースプロキシ構成にします。
apt install -y nginx
設定はシンプルに
・80番で受ける
・localhost:5000に流す
一旦HTTPで確認して、
そのあとSSLに進みました。
SSLはLet’s Encryptで対応
証明書はLet’s Encryptを使用。
今回はlegoで取得しています。
一時的にnginx設定を変えて認証通す形です。
このあたりは少し面倒ですが、
一度やればあとはcronで更新するだけです。
細かいところでやったこと
今回やっているのはこのあたり。
・BOT対策(User-Agentで弾く)
・IP直アクセス拒否
・ログの詳細化
この辺は「あとで効いてくるやつ」です。
最初からやるかは好みですが、
個人的には最初に入れておいたほうが楽です。
実際に動かしてみて
構築自体はそこまで難しくないです。
むしろ悩んだのは
「どこまでやるか」
でした。
セキュリティもログも、やろうと思えば終わらない。
なので今回は
「業務で使える最低ライン」
で止めています。
この構成に落ち着いた理由
クラウドサービスもいくつか試しましたが、
最終的にこの形に戻りました。
理由はシンプルで
・制限がない
・挙動が読める
・重くなったら自分で調整できる
この3つです。
今のスタンス
今はこの構成で普通に業務を回しています。
多少の手間はありますが、
「自分で触れる範囲で完結している」ほうが楽です。
前回の判断ログでも書きましたが、
結局ここに戻ってきました。
今回やってみて思ったこと
プリザンター自体は、かなり実用的です。
ただ、それを活かすには
ある程度自由に触れる環境が前提になる。
そう考えると、VPSとの相性はかなりいいです。
今の結論
UIで触れて、かつローコードで作れて、
さらに裏側も自分で調整できる。
このバランスを取りにいった結果が、
今回の構成でした。


