mirror of
https://github.com/coder/code-server.git
synced 2026-02-19 18:01:15 +08:00
112 lines
2.4 KiB
Markdown
112 lines
2.4 KiB
Markdown
# VSCode Cloud IDE
|
|
|
|
**Browser-based VSCode with Claude Code & Node.js**
|
|
|
|
[](https://railway.com/template/TEMPLATE_ID)
|
|
|
|
Cloud IDE with persistent extensions, settings, and tools. Runs as non-root user.
|
|
|
|
---
|
|
|
|
## Features
|
|
|
|
- **Claude Code** & **Node.js 20** pre-installed
|
|
- **Non-root execution** - runs as `coder` user (UID 1000)
|
|
- Extensions persist across redeployments
|
|
- Volume permissions auto-fixed on startup
|
|
|
|
---
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Claude Code with auto-accept (for automation)
|
|
claude --dangerously-skip-permissions
|
|
|
|
# Interactive mode
|
|
claude
|
|
|
|
# Node.js ready
|
|
node --version
|
|
npm --version
|
|
```
|
|
|
|
---
|
|
|
|
## Environment Variables
|
|
|
|
| Variable | Required | Default | Description |
|
|
|----------|----------|---------|-------------|
|
|
| `PASSWORD` | Yes | - | Login password |
|
|
| `CODER_HOME` | No | `/home/coder` | Volume mount path |
|
|
| `CODER_UID` | No | `1000` | User ID for coder |
|
|
| `CODER_GID` | No | `1000` | Group ID for coder |
|
|
|
|
---
|
|
|
|
## How It Works
|
|
|
|
1. **Starts as root** - fixes volume permissions
|
|
2. **Switches to coder** - uses `gosu` for clean handoff
|
|
3. **Runs code-server** - as non-root user
|
|
|
|
This means:
|
|
- ✅ No root permission warnings in code-server
|
|
- ✅ Existing volumes with root-owned files work fine
|
|
- ✅ Claude `--dangerously-skip-permissions` works
|
|
|
|
---
|
|
|
|
## Claude Code Authentication
|
|
|
|
After running `claude` for the first time:
|
|
|
|
1. Follow the authentication prompts
|
|
2. Your credentials are stored in `~/.claude/`
|
|
3. They persist across redeployments (on volume)
|
|
|
|
---
|
|
|
|
## Custom Startup Scripts
|
|
|
|
Add to `$CODER_HOME/entrypoint.d/`:
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
git config --global user.name "Your Name"
|
|
```
|
|
|
|
Make executable: `chmod +x script.sh`
|
|
|
|
---
|
|
|
|
## Update Behavior
|
|
|
|
| Component | Behavior |
|
|
|-----------|----------|
|
|
| **Volume tools** | You control - install to `~/.local/node/` or `~/.claude/local/` |
|
|
| **Image tools** | Auto-update on redeploy (fallback) |
|
|
| **Extensions** | Persist on volume |
|
|
| **Claude auth** | Persists on volume |
|
|
|
|
Logs show `[volume]` or `[image]` next to each tool.
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
| Issue | Solution |
|
|
|-------|----------|
|
|
| Permission denied | Check `CODER_UID` matches your volume owner |
|
|
| Claude not found | Run `which claude` to check PATH |
|
|
| Extensions missing | Verify volume mounted at `CODER_HOME` |
|
|
|
|
---
|
|
|
|
## Credits
|
|
|
|
- [code-server](https://github.com/coder/code-server) by Coder
|
|
- [Claude Code](https://github.com/anthropics/claude-code) by Anthropic
|
|
|
|
**License:** MIT
|