{{ t('dedicatedGpuServers') }}
{{ t('dedicatedServerDesc') }}
{{ server.name }}
{{ t('ownedServer') }}ssh -p {{ server.ssh_port }} {{ server.ssh_username }}@{{ server.ssh_host }}
Host {{ server.ssh_username }}-server
User {{ server.ssh_username }}
HostName {{ server.ssh_host }}
ProxyJump {{ server.proxy_jump }}
ssh {{ server.ssh_username }}-server
ssh-keygen -t ed25519 -C "{{ server.ssh_username }}@student"
ssh-copy-id {{ server.ssh_port !== 22 ? '-p ' + server.ssh_port + ' ' : '' }}{{ server.ssh_username }}@{{ server.ssh_host }}
ssh {{ server.ssh_port !== 22 ? '-p ' + server.ssh_port + ' ' : '' }}{{ server.ssh_username }}@{{ server.ssh_host }}
{{ t('accountBalance') }}
{{ t('rechargeHint') }}
{{ t('instanceList') }}
{{ inst.gpu_name }} x{{ inst.gpu_count }}
{{ translateRegion(inst.region) }} {{ inst.instance_id }}
{{ t('backupList') }}
{{ t('myUsage') }}
{{ t('usageRecords') }}
| {{ t('instance') }} | GPU | {{ t('duration') }} | {{ t('cost') }} | {{ t('status') }} |
|---|---|---|---|---|
| {{ record.instance_name || record.instance_id }} | {{ record.gpu_name }} x{{ record.gpu_count }} | {{ record.duration_hours ? record.duration_hours.toFixed(1) : '-' }} {{ t('hours') }} | {{ formatBillingAmount(record.total_cost || 0) }} | {{ record.status === 'running' ? t('running') : t('stopped') }} |
{{ t('instanceOverview') }}
{{ t('needRefresh') }} ({{ t('remainingTimeLessThan') }} {{ scheduler.threshold_hours }}h)
{{ t('aboutToExpire') }} ({{ scheduler.threshold_hours }}h - 21h)
{{ t('allInstancesOk') }}
{{ t('accountBalance') }}
{{ t('rechargeHint') }}
{{ t('autoRefreshScheduler') }}
{{ t('status') }}: {{ scheduler.running ? t('running') : t('stopped') }}
{{ t('checkInterval') }}: {{ scheduler.check_interval_minutes }} {{ t('minutes') }}
{{ t('refreshThreshold') }}: {{ t('remainingTimeLessThan') }} {{ scheduler.threshold_hours }} {{ t('hours') }}
{{ t('forceRefresh') }}: {{ t('remainingTimeLessThan') }} {{ scheduler.force_refresh_hours || 8 }} {{ t('hours') }}
{{ t('lastRun') }}: {{ formatDate(scheduler.last_run) }}
{{ t('checkReports') }}
{{ t('refreshLog') }} ({{ refreshLogs.length }})
{{ t('claudeCodeApi') }}
{{ t('claudeApiNotAssigned') }}
{{ t('claudeApiContactAdmin') }}
{{ t('claudeApiQuickSetup') }}
{{ t('claudeApiUsageDesc') }}
{{ t('claudeApiTutorialTitle') }}
{{ t('claudeApiStep1Title') }}
{{ t('claudeApiStep1Desc') }}
{{ t('claudeApiMethod1') }}
- {{ t('claudeApiWinStep1a') }} https://nodejs.org/
- {{ t('claudeApiWinStep1b') }}
- {{ t('claudeApiWinStep1c') }}
- {{ t('claudeApiWinStep1d') }}
{{ t('claudeApiMethod2') }}
# {{ t('claudeApiUseChocolatey') }}
choco install nodejs
# {{ t('claudeApiOrScoop') }}
scoop install nodejs
{{ t('claudeApiMethod1') }}
- {{ t('claudeApiMacStep1a') }} https://nodejs.org/
- {{ t('claudeApiMacStep1b') }}
- {{ t('claudeApiMacStep1c') }}
{{ t('claudeApiMethod2Homebrew') }}
# {{ t('claudeApiInstallHomebrew') }}
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# {{ t('claudeApiInstallNode') }}
brew install node
Ubuntu / Debian
# {{ t('claudeApiUpdatePkg') }}
sudo apt update
# {{ t('claudeApiInstallNode') }}
sudo apt install nodejs npm -y
# {{ t('claudeApiOrUseNvm') }}
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install --lts
{{ t('claudeApiVerifyInstall') }}
node --version
npm --version
{{ t('claudeApiVerifySuccess') }}
{{ t('claudeApiStep2Title') }}
# {{ t('claudeApiGlobalInstall') }}
npm install -g @anthropic-ai/claude-code
{{ t('claudeApiVerifyClaudeInstall') }}
claude --version
{{ t('claudeApiStep3Title') }}
{{ t('claudeApiTempSession') }} (PowerShell)
$env:ANTHROPIC_BASE_URL = "{{ claudeApi.data.base_url }}"
$env:ANTHROPIC_AUTH_TOKEN = "{{ claudeApi.data.auth_token }}"
{{ t('claudeApiPermanent') }} (PowerShell)
# {{ t('claudeApiSetUserEnv') }}
[System.Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "{{ claudeApi.data.base_url }}", [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "{{ claudeApi.data.auth_token }}", [System.EnvironmentVariableTarget]::User)
{{ t('claudeApiRestartTerminal') }}
{{ t('claudeApiTempSession') }}
export ANTHROPIC_BASE_URL="{{ claudeApi.data.base_url }}"
export ANTHROPIC_AUTH_TOKEN="{{ claudeApi.data.auth_token }}"
{{ t('claudeApiPermanent') }}
{{ t('claudeApiAddToShellConfig') }} ~/.bashrc, ~/.zshrc, {{ t('claudeApiOr') }} ~/.profile:
# Claude Code API
export ANTHROPIC_BASE_URL="{{ claudeApi.data.base_url }}"
export ANTHROPIC_AUTH_TOKEN="{{ claudeApi.data.auth_token }}"
{{ t('claudeApiReloadConfig') }}
source ~/.bashrc # {{ t('claudeApiOrZshrc') }}
{{ t('claudeApiStep4Title') }}
# {{ t('claudeApiStartClaude') }}
claude --dangerously-skip-permissions
# {{ t('claudeApiInProject') }}
cd /path/to/your/project
claude --dangerously-skip-permissions
{{ t('claudeApiVscodeConfig') }}
{{ t('claudeApiVscodeDesc') }}
{{ t('claudeApiConfigPath') }}: C:\Users\YourUsername\.claude\config.json
{{ t('claudeApiConfigPath') }}: ~/.claude/config.json
{
"primaryApiKey": "crs"
}
{{ t('claudeApiFaq') }}
{{ t('claudeApiFaq1Q') }}
{{ t('claudeApiFaq1A') }}
{{ t('claudeApiFaq2Q') }}
{{ t('claudeApiFaq2A') }}
{{ t('claudeApiFaq3Q') }}
{{ t('claudeApiFaq3A') }}