サーバーで動かす

Celerp は常にお客様自身のハードウェアで動きます。デスクトップアプリなら、ワンクリックでお手元のコンピューターがそのままサーバーになります。このガイドでは、代わりに常時稼働の独立した Linux サーバー(VPS や自宅サーバー)で動かし、オフィス全体から24時間アクセスできるようにする方法を説明します。デスクトップで使うのと同じ pip install celerp の手順が、どの Linux サーバーでも使えます。

要件

  • Python 3.11+
  • Postgres 14 以上(稼働中でアクセスできること)
  • sudo 権限を持つユーザー(celerp init が Postgres のユーザーとデータベースを作成するために必要です)

インストールと初期化

pip install celerp
celerp init

celerp init は対話式です。次の処理を行います。

  • Postgres の接続 URL を尋ねられます(既定値 postgresql+asyncpg://celerp:celerp@localhost:5432/celerp をそのまま使うこともできます)
  • Postgres のユーザーとデータベースを作成します(sudo -u postgres psql 経由)
  • JWT シークレットを生成します
  • マイグレーションを実行します
  • 設定ファイル(~/.celerp/config.toml)を書き出します

サーバーの起動

celerp start

これにより 2つのプロセスが起動します。

  • ポート 8000 の API サーバー
  • ポート 8080 の UI サーバー

ブラウザで http://your-server-ip:8080 を開くと Celerp にアクセスできます。

systemd サービスとして動かす

ログアウト後も Celerp を動かし続け、再起動時に自動起動させるには、次のようにします。

sudo tee /etc/systemd/system/celerp.service <<EOF
[Unit]
Description=Celerp ERP
After=network.target postgresql.service

[Service]
Type=simple
User=$USER
ExecStart=$(which celerp) start
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now celerp

リバースプロキシ(nginx + HTTPS)

Celerp を独自ドメインで HTTPS 公開するには、UI と API の両方を nginx でプロキシします。

server {
    server_name erp.yourdomain.com;

    # UI
    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # API
    location /api/ {
        proxy_pass http://localhost:8000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/erp.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/erp.yourdomain.com/privkey.pem;
}

無料の SSL 証明書は Certbot で取得できます。

アップグレード

celerp upgrade

このコマンドは pip install --upgrade celerp を実行し、未適用のマイグレーションを自動で適用します。

LAN での複数人利用

ローカルネットワーク上のマシンで Celerp を動かしている場合、同じネットワーク上の利用者はブラウザから http://your-machine-ip:8080 にアクセスできます。ファイアウォールがポート 8000 と 8080 への着信接続を許可しているか確認してください。