Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .devcontainer/startup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ OPENCODE_PORT=${OPENCODE_PORT:-4095}
OPENCHAMBER_PORT=${OPENCHAMBER_PORT:-3000}
OPENCODE_HOST=${OPENCODE_HOST:-0.0.0.0}
OPENCHAMBER_HOST=${OPENCHAMBER_HOST:-0.0.0.0}
OPENCHAMBER_DEFAULT_PROJECT_DIR=${OPENCHAMBER_DEFAULT_PROJECT_DIR:-/workspace/projects}

if [ ! -d "$OPENCHAMBER_DEFAULT_PROJECT_DIR" ]; then
OPENCHAMBER_DEFAULT_PROJECT_DIR="/workspace"
fi

REMOTE_ACCESS_MODE=false
TAILSCALE_IP=""
Expand Down Expand Up @@ -167,6 +172,28 @@ OPENCHAMBER_PID=$!

sleep 2

set_default_project_directory() {
local target_dir="$1"
[ -d "$target_dir" ] || return 0

local payload
payload=$(printf '{"path":"%s"}' "$target_dir")

for i in {1..10}; do
if curl -fsS -X POST "http://localhost:$OPENCHAMBER_PORT/api/opencode/directory" \
-H "Content-Type: application/json" \
-d "$payload" >/tmp/openchamber-default-dir.json 2>/tmp/openchamber-default-dir.err; then
echo "✅ OpenChamber の初期プロジェクトパスを設定: $target_dir"
return 0
fi
sleep 1
done

echo "⚠️ OpenChamber の初期プロジェクトパス設定に失敗しました(起動継続)"
}

set_default_project_directory "$OPENCHAMBER_DEFAULT_PROJECT_DIR"

check_service() {
local port=$1
local name=$2
Expand Down
4 changes: 4 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,9 @@ OPENCODE_PORT=4095
OPENCHAMBER_HOST=0.0.0.0
OPENCHAMBER_PORT=3000

# 📁 OpenChamber の初期プロジェクトディレクトリ(オプション)
# 例: /workspace/projects または /workspace
OPENCHAMBER_DEFAULT_PROJECT_DIR=/workspace/projects

# 🛠️ 開発環境(オプション)
NODE_ENV=development
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*

# 基盤リポジトリ配下に置く別アプリ実装リポジトリ
# ディレクトリ自体は管理し、READMEのみ追跡する
projects/*
!projects/README.md

# 一時ファイル
tmp/
temp/
Expand All @@ -45,4 +50,4 @@ tailscale.state
# 開発用データベース
*.sqlite
*.sqlite3
*.db
*.db
31 changes: 31 additions & 0 deletions projects/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# projects ディレクトリ運用ガイド

このディレクトリは、OpenCode ECC DevContainer 基盤上で作業する
アプリ実装用リポジトリを配置するための場所です。

## 目的

- 基盤リポジトリとアプリ実装リポジトリを分離する
- DevContainer の共通環境を維持しながら、複数アプリを扱えるようにする
- 誤って基盤リポジトリにアプリ実装コードをコミットしないようにする

## 使い方

1. この配下にアプリのリポジトリを clone する
2. 実装・コミット・PR はアプリ側リポジトリで行う
3. この基盤リポジトリには、原則としてアプリ実装成果物を含めない

例:

```bash
git clone https://github.com/<your-account>/<your-app-repo>.git projects/<your-app-repo>
cd projects/<your-app-repo>
```

## Git 管理ルール

- `projects/` ディレクトリ自体は管理対象
- `projects/README.md` は管理対象
- `projects/` 配下のそれ以外は管理対象外

このルールにより、運用ガイドは共有しつつ、実装リポジトリの混入を防止できます。
Loading