Skip to content
Closed
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
98 changes: 0 additions & 98 deletions .devcontainer/Dockerfile

This file was deleted.

38 changes: 29 additions & 9 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
{
"name": "OpenCode ECC + OpenChamber + Tailscale",
"dockerComposeFile": "docker-compose.yml",
"service": "opencode-dev",
"workspaceFolder": "/workspace",
"shutdownAction": "stopCompose",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"installZsh": true,
Expand All @@ -26,6 +23,12 @@
"ghcr.io/devcontainers/features/git:1": {
"ppa": true,
"version": "latest"
},
"ghcr.io/devcontainers/features/python:1": {
"version": "3.11"
},
"ghcr.io/devcontainers/features/github-cli:1": {
"installDirectlyFromGitHubRelease": true
}
},
"customizations": {
Expand All @@ -44,7 +47,11 @@
],
"settings": {
"terminal.integrated.defaultProfile.linux": "zsh",
"python.defaultInterpreterPath": "/usr/local/python/current/bin/python"
"python.defaultInterpreterPath": "/usr/local/python/current/bin/python",
"files.watcherExclude": {
"**/node_modules/**": true,
"**/.opencode/**": true
}
}
}
},
Expand All @@ -67,11 +74,24 @@
"protocol": "http"
}
},
"postCreateCommand": ".devcontainer/setup.sh",
"postStartCommand": ".devcontainer/startup.sh",
"postAttachCommand": {
"welcome": "echo '🚀 OpenCode ECC DevContainer へようこそ!' && echo '' && echo '📋 次のステップ:' && echo ' 1️⃣ .env.template を .env にコピー' && echo ' 2️⃣ 必要に応じて .env を編集' && echo ' 3️⃣ 初回プロジェクト設定: ./.devcontainer/interactive-setup.sh' && echo '' && echo '🎨 サービスURL:' && echo ' 📍 OpenChamber: http://localhost:3000' && echo ' 🤖 OpenCode CLI: http://localhost:4095' && echo ' 📊 ダッシュボード: http://localhost:8080'"
"postCreateCommand": ".devcontainer/setup-simple.sh",
"postAttachCommand": ".devcontainer/startup-simple.sh",
"containerEnv": {
"OPENCODE_AUTO_START": "true",
"OPENCODE_VERSION": "1.3.9",
"OPENCODE_STARTUP_TIMEOUT_SECONDS": "60",
"OPENCODE_HOST": "0.0.0.0",
"OPENCODE_PORT": "4095",
"OPENCHAMBER_HOST": "0.0.0.0",
"OPENCHAMBER_PORT": "3000",
"ECC_PROFILE": "developer",
"TAILSCALE_HOSTNAME": "opencode-dev",
"NODE_ENV": "development"
},
"runArgs": [
"--cap-add=NET_ADMIN",
"--device=/dev/net/tun"
],
"remoteUser": "vscode",
"mounts": [
"source=opencode-data,target=/home/vscode/.opencode,type=volume",
Expand Down
70 changes: 0 additions & 70 deletions .devcontainer/docker-compose.yml

This file was deleted.

103 changes: 103 additions & 0 deletions .devcontainer/setup-simple.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
#!/bin/bash

# OpenCode ECC DevContainer セットアップスクリプト
# DevContainer 作成時に一度だけ実行される(ai-harness-template ベース)

set -e

echo "🚀 OpenCode ECC + OpenChamber 環境をセットアップ中..."
echo "=============================================="

# 基本パッケージの確認・インストール
echo "📦 基本パッケージ確認中..."
sudo apt-get update -y
sudo apt-get install -y curl wget unzip build-essential

# Tailscale をインストール
if ! command -v tailscale >/dev/null 2>&1; then
echo "📦 Tailscale をインストール中..."
curl -fsSL https://tailscale.com/install.sh | sh
fi

# uv (Python パッケージマネージャー) をインストール
if ! command -v uv >/dev/null 2>&1; then
echo "📦 uv (Python パッケージマネージャー) をインストール中..."
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.cargo/bin:$PATH"
fi

# Node.js とnpmのバージョン確認
echo "📦 Node.js: $(node --version)"
echo "📦 npm: $(npm --version)"
echo "📦 Python: $(python --version)"

# OpenCode AI をグローバルインストール
echo "⬇️ OpenCode AI をインストール中..."
OPENCODE_VERSION="${OPENCODE_VERSION:-1.3.9}"
if npm install -g "opencode-ai@${OPENCODE_VERSION}"; then
echo "✅ OpenCode AI インストール完了"
else
echo "⚠️ OpenCode AI インストール失敗(継続します)"
fi

# OpenChamber をグローバルインストール
echo "⬇️ OpenChamber をインストール中..."
if npm install -g @openchamber/web; then
echo "✅ OpenChamber インストール完了"
else
echo "⚠️ OpenChamber インストール失敗(継続します)"
fi

# ECC (everything-claude-code) をインストール
echo "⬇️ ECC をインストール中..."
if npm install -g ecc-universal; then
echo "✅ ECC インストール完了"

# ECC の依存関係修正(ajv問題対策)
echo "🔧 ECC 依存関係修正中..."
ECC_DIR=$(npm list -g ecc-universal 2>/dev/null | head -n1 | awk '{print $1}')/node_modules/ecc-universal
if [ -d "$ECC_DIR" ]; then
cd "$ECC_DIR"
npm install ajv 2>/dev/null || true
npm install 2>/dev/null || true
cd - >/dev/null
echo "✅ ECC 依存関係修正完了"
fi
else
echo "⚠️ ECC インストール失敗(継続します)"
fi

# .opencode ディレクトリの権限設定(権限問題対策)
echo "🔧 .opencode ディレクトリ権限設定中..."
mkdir -p /home/vscode/.opencode
sudo chown -R vscode:vscode /home/vscode/.opencode
chmod -R 755 /home/vscode/.opencode
chmod -R u+w /home/vscode/.opencode
echo "✅ .opencode 権限設定完了"

# プロジェクト用のディレクトリ作成
mkdir -p .opencode-logs
mkdir -p .temp

# 権限設定
chmod +x scripts/* 2>/dev/null || true

# .env ファイル作成
if [ ! -f ".env" ] && [ -f ".env.template" ]; then
cp .env.template .env
echo "✅ .env ファイルを作成しました"
fi

echo ""
echo "✅ 全セットアップ完了!"
echo ""
echo "🎯 利用可能なサービス:"
echo " - OpenChamber Web UI: ポート 3000"
echo " - OpenCode CLI Server: ポート 4095"
echo " - Development Server: ポート 8080"
echo ""
echo "📝 すぐに始められます:"
echo " 1. VS Code の 'PORTS' タブから各サービスにアクセス"
echo " 2. OpenChamber でAIコーディングを開始!"
echo " 3. Tailscale設定が必要な場合は .env を編集"
echo ""
Loading