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.py
とufw
ポート設定も対応が必要です。 - 環境ごとに
venv
パスやPythonバージョンが異なる場合もあるため、start_pgadmin.sh
の内容は確認してください。
必要に応じてこの構成をテンプレ化・再利用できます。
カスタム環境変数などを追加したい場合も、[Service]
にEnvironment=
行を追加すれば対応可能です。