Spaces:
Sleeping
Sleeping
| # エラーが出たら止まるように設定 | |
| set -e | |
| echo "🚀 Starting custom VSCode environment..." | |
| # --------------------------------------------------------- | |
| # 1. 永続ストレージ (/data) のセットアップ | |
| # --------------------------------------------------------- | |
| # /data フォルダが存在するか確認(Persistent Storageが有効なら存在する) | |
| if [ -d "/data" ]; then | |
| echo "💾 Persistent storage detected provided at /data" | |
| # ユーザー設定や拡張機能を保存するフォルダを /data 内に作成 | |
| mkdir -p /data/User | |
| mkdir -p /data/extensions | |
| mkdir -p /data/workspace | |
| # 本来の保存場所から /data へリンクを貼る(これでデータが永続化される!) | |
| # .local/share/code-server は拡張機能など | |
| mkdir -p /home/user/.local/share | |
| rm -rf /home/user/.local/share/code-server | |
| ln -s /data/extensions /home/user/.local/share/code-server | |
| # .config/code-server は設定ファイルなど | |
| mkdir -p /home/user/.config | |
| rm -rf /home/user/.config/code-server | |
| ln -s /data/User /home/user/.config/code-server | |
| # ワークスペース(作業場)を /data/workspace に設定 | |
| WORKING_DIR="/data/workspace" | |
| else | |
| echo "⚠️ No persistent storage found. Using ephemeral storage." | |
| WORKING_DIR="/home/user" | |
| fi | |
| # --------------------------------------------------------- | |
| # 2. SQLite データベースの準備 | |
| # --------------------------------------------------------- | |
| # ユーザーごとのデータを保存するためのSQLite DBをセットアップ | |
| DB_PATH="$WORKING_DIR/user_data.sqlite" | |
| if [ ! -f "$DB_PATH" ]; then | |
| echo "📦 Initializing SQLite database at $DB_PATH..." | |
| # 新規作成時にテーブルを作っておく(例としてusersテーブルを作成) | |
| sqlite3 "$DB_PATH" "CREATE TABLE IF NOT EXISTS system_logs (id INTEGER PRIMARY KEY, message TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP);" | |
| sqlite3 "$DB_PATH" "INSERT INTO system_logs (message) VALUES ('System initialized');" | |
| echo "✅ SQLite database created." | |
| else | |
| echo "📂 SQLite database found. Ready to use." | |
| fi | |
| # --------------------------------------------------------- | |
| # 3. code-server (VSCode) の起動 | |
| # --------------------------------------------------------- | |
| echo "💻 Launching VSCode Server on port 7860..." | |
| # PASSWORD環境変数が設定されていない場合のデフォルト(必ずSpaceのSettingsで設定してね!) | |
| if [ -z "$PASSWORD" ]; then | |
| export PASSWORD="changeme123" | |
| echo "⚠️ WARNING: No password set. Using default: 'changeme123'" | |
| fi | |
| # VSCodeを起動 | |
| # --bind-addr: 外部からアクセスできるようにする | |
| # --auth: パスワード認証を有効にする | |
| # --user-data-dir: 設定ファイルの場所を指定(リンク済みだが念のため) | |
| exec code-server \ | |
| --bind-addr 0.0.0.0:7860 \ | |
| --auth password \ | |
| --disable-telemetry \ | |
| "$WORKING_DIR" |