Ubuntu 22.04上にpgAdmin4 Python仮想環境インストール & Webモード起動手順まとめ

Ubuntu 22.04上においてpgAdmin4をPython仮想環境経由でインストール・構成・起動するまでの成功した手順の完全まとめ

パッケージのインストール

sudo apt update
sudo apt install python3-pip python3-venv libpq-dev python3-dev -y

作業用ディレクトリの作成と仮想環境作成

mkdir -p ~/pgadmin
cd ~/pgadmin
python3 -m venv venv
source venv/bin/activate

pgAdmin4(最新版 whl)をインストール

pip install https://pgadmin-archive.postgresql.org/pgadmin4/v8.4/pip/pgadmin4-8.4-py3-none-any.whl
pip install https://pgadmin-archive.postgresql.org/pgadmin4/v9.3/pip/pgadmin4-9.3-py3-none-any.whl

pgAdmin4の設定ファイル作成(Webモード構成)

まず、以下の内容で config_local.py を作成します。

vi config_local.py
import os

SERVER_MODE = True
DEFAULT_SERVER = '0.0.0.0'
DEFAULT_SERVER_PORT = 8081  # 他サービスと競合しないポート

DATA_DIR = os.path.join(os.path.expanduser("~"), '.pgadmin')
SQLITE_PATH = os.path.join(DATA_DIR, 'pgadmin4.db')
SESSION_DB_PATH = os.path.join(DATA_DIR, 'sessions')
STORAGE_DIR = os.path.join(DATA_DIR, 'storage')
LOG_FILE = os.path.join(DATA_DIR, 'pgadmin4.log')

必要なディレクトリを作成

mkdir -p ~/.pgadmin/sessions ~/.pgadmin/storage

config_local.pyを正しい場所へ移動

mv config_local.py ./venv/lib/python3.10/site-packages/pgadmin4/

config.py と同じ場所であることが重要です。


pgAdmin4起動

pgadmin4

初回起動時は「メールアドレス」と「パスワード」の入力を求められる → Webログイン用アカウントになります


Webブラウザからアクセス

  • ローカルマシンから:🌐http://localhost:8081
  • 他の端末から(LAN経由):http://<サーバーのIP>:8081

外部からアクセスするには以下のコマンドでポート開放

sudo ufw allow 8081/tcp

結果ディレクトリ確認(成功後)

ls -lah ~/.pgadmin
~/.pgadmin/
├── pgadmin4.db
├── pgadmin4.log
├── sessions/
└── storage/

まとめの備考

  • この方法はaptではなくpipによるpgAdmin導入で、OSバージョン依存が少なく、最新版利用が可能
  • systemd常駐化やNginx+HTTPS統合にも対応しやすい構成です
  • 必要に応じてバックグラウンド起動、永続化の設定も可能です(ご希望あれば続けて提供できます)

必要があれば「systemdで常時起動するサービス化」または「nginx+SSL統合」なども追加可能です。次に進めますか?

以下は、pgAdmin4 を仮想環境で構築した環境を systemdサービスとして常時起動化する手順 です。


pgAdmin4をsystemdサービス化(Ubuntu22.04)

実行スクリプトの作成

まず仮想環境でpgAdmin4を起動するラッパースクリプトを作成します。

vi ~/pgadmin/start_pgadmin.sh
#!/bin/bash
cd ~/pgadmin
source venv/bin/activate
exec pgadmin4

保存後、実行権限を付与

chmod +x ~/pgadmin/start_pgadmin.sh

systemdユニットファイルを作成

sudo vi /etc/systemd/system/pgadmin4.service

内容は以下の通りです。

[Unit]
Description=pgAdmin4 Web Mode Service
After=network.target
[Service]
User=YOUR_USERNAME
Group=YOUR_USERNAME
WorkingDirectory=/home/YOUR_USERNAME/pgadmin
ExecStart=/home/YOUR_USERNAME/pgadmin/start_pgadmin.sh
Environment=PATH=/home/YOUR_USERNAME/pgadmin/venv/bin:/usr/bin:/bin
Restart=always

[Install]
WantedBy=multi-user.target

YOUR_USERNAMEは実際のユーザー名に置き換えてください(例:changhoなど)。


systemdに反映・有効化・起動

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable pgadmin4
sudo systemctl start pgadmin4

ステータス確認

sudo systemctl status pgadmin4

成功していればActive:active(running)と表示され、http://localhost:8081でアクセス可能です。


ログ確認(必要時)

journalctl -u pgadmin4 -f

補足

  • サービスは再起動後も自動起動します。
  • 他ポートに変更する場合はconfig_local.pyufwポート設定も対応が必要です。
  • 環境ごとにvenvパスやPythonバージョンが異なる場合もあるため、start_pgadmin.shの内容は確認してください。

必要に応じてこの構成をテンプレ化・再利用できます。
カスタム環境変数などを追加したい場合も、[Service]Environment=行を追加すれば対応可能です。

タイトルとURLをコピーしました