#!/bin/bash # エラーが出たら止まるように設定 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"