高性能な画像背景除去AI「withoutbg」がセルフホストで動作するようなので試してみました。初回処理: 5〜10秒(モデル初期化)、以降: 2〜5秒で生成されます。

何度も実行出来るのは便利ですね。

sudo bash -c '
# ── withoutbg セットアップスクリプト ──────────────────────────────
set -e
INSTALL_DIR="/opt/docker/withoutbg"
PORT=8080 # 変更したい場合はここを編集
echo "[1/3] ディレクトリ作成: $INSTALL_DIR"
mkdir -p "$INSTALL_DIR"
cd "$INSTALL_DIR"
echo "[2/3] docker-compose.yml を生成"
cat > docker-compose.yml <<EOF
services:
withoutbg:
image: withoutbg/app:latest
container_name: withoutbg
ports:
- "${PORT}:80"
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
EOF
echo "[3/3] コンテナ起動"
docker compose up -d
echo ""
echo "✅ 起動完了!"
echo " URL: http://$(hostname -I | awk "{print \$1}"):${PORT}"
echo ""
echo "ログ確認: docker compose -f $INSTALL_DIR/docker-compose.yml logs -f"
echo "停止: docker compose -f $INSTALL_DIR/docker-compose.yml down"
echo "更新: docker compose -f $INSTALL_DIR/docker-compose.yml pull && docker compose -f $INSTALL_DIR/docker-compose.yml up -d"
'
デフォルトは 8080:80(ホスト8080 → コンテナ80)。80番を直接使いたい場合はスクリプト冒頭の PORT=8080 を PORT=80 に変更してください。
生成される /opt/docker/withoutbg/docker-compose.yml
services:
withoutbg:
image: withoutbg/app:latest
container_name: withoutbg
ports:
- "8080:80"
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
