Clone
1
環境構築手順
みてるぞ が 2026-09-06 20:31:59 +09:00 にこのページを編集

サーバー環境構築

概要

nicolib は共通 library として利用する repository である。

今回の Ubuntu 26.04 LTS 環境では、nicolib 自体を独立した daemon として起動する構成ではない。

専用 systemd unit や専用 database は作成しない。


1. repository

信頼できる Gitea の最新 main を使用する。

旧サーバーから以下をそのまま持ち込まない。

  • Python cache
  • compiled artifact
  • credential
  • 秘密情報入り設定
  • 信頼できない binary

2. Python environment

本番環境:

Ubuntu 26.04 LTS
Python 3.14

system-wide pip を使用する場合:

umask 022

を確認する。


3. package permission

umask 077 の状態で pip install すると、

drwx------
-rw-------

のような権限で package が配置される場合がある。

service user から import できなくなるため注意する。

確認:

find /usr/local/lib/python3.14/dist-packages \
  -type d ! -perm -005 -o -type f ! -perm -004 \
  -print \
  | head

必要な場合:

chmod -R a+rX \
  /usr/local/lib/python3.14/dist-packages

4. 動作確認

実際に利用する service user から import する。

利用主体が nizika の場合:

runuser -u nizika -- \
  python3 -c \
  'import nicolib; print(nicolib.__file__)'

利用主体が nizika-ai の場合:

runuser -u nizika-ai -- \
  python3 -c \
  'import nicolib; print(nicolib.__file__)'

5. 秘密情報

library repository 内へ秘密情報を保存しない。

DB password、API key 等が必要な場合は利用側 service の:

/etc/*.env

から environment variable として渡す。


6. systemd

nicolib 自体には systemd service を作成しない。

常駐 process の管理は、実際に nicolib を使用する上位 application が担当する。


7. 再構築時の原則

  1. Gitea の信頼できる最新 main を取得する。
  2. service user から読み取り可能にする。
  3. secrets を repository に保存しない。
  4. system Python の package permission を確認する。
  5. 実際の利用 user から import test を行う。