Spaces:
Sleeping
Sleeping
File size: 2,994 Bytes
5f1bc5c 17d86c5 5f1bc5c 883ddea 17d86c5 883ddea 17d86c5 5f1bc5c 17d86c5 5f1bc5c 883ddea 5f1bc5c 17d86c5 883ddea 17d86c5 5f1bc5c 17d86c5 5f1bc5c 17d86c5 883ddea 17d86c5 5f1bc5c 17d86c5 3a71d4c 17d86c5 ca2ba8b 17d86c5 cff6fad 17d86c5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #!/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="123"
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" |