File size: 3,002 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
 
 
 
 
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="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"