Add Alfred IDE config, start script, branding patches, architecture docs
This commit is contained in:
parent
2fc04c07c4
commit
dbd09fcdba
43
README.md
43
README.md
@ -1,2 +1,43 @@
|
||||
# alfred-ide
|
||||
# Alfred IDE
|
||||
|
||||
Cloud-native AI development environment built on code-server, with custom Commander extension, multi-provider AI chat, voice assistant, and sovereign infrastructure.
|
||||
|
||||
## Architecture
|
||||
|
||||
- **Base**: code-server 4.102.2 (VS Code for the web)
|
||||
- **Extension**: Alfred Commander (3,551-line extension.js) — AI chat, stats, voice, walkthrough
|
||||
- **Auth**: Cookie-based gating via Apache + PHP, PIN/email login
|
||||
- **MCP**: 500+ tools via gocodeme-mcp service (port 3006)
|
||||
- **Branding**: Patched workbench.js + NLS message files
|
||||
|
||||
## Components
|
||||
|
||||
| Component | Location | Purpose |
|
||||
|-----------|----------|---------|
|
||||
| `start.sh` | Server start script | Launches code-server with config |
|
||||
| `config.yaml` | code-server config | Port 8443, auth:none (Apache handles auth) |
|
||||
| `branding-patches.sh` | Branding automation | Patches "code-server" → "Alfred IDE" |
|
||||
| Commander extension | `extensions/gositeme.alfred-commander-1.0.1/` | Full IDE UX |
|
||||
|
||||
## Auth Flow
|
||||
|
||||
1. User visits `gositeme.com/alfred-ide/`
|
||||
2. Apache checks for `alfred_ide_token` cookie
|
||||
3. Missing → redirect to `alfred-ide-auth.php`
|
||||
4. Login via PIN (Commander) or email/password
|
||||
5. Session created in DB, cookie set → proxy to code-server
|
||||
|
||||
## Running
|
||||
|
||||
```bash
|
||||
# PM2 managed
|
||||
pm2 start alfred-ide
|
||||
|
||||
# Manual
|
||||
./start.sh
|
||||
# → http://127.0.0.1:8443
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
AGPL-3.0 — GoSiteMe Inc.
|
||||
|
||||
21
branding-patches.sh
Normal file
21
branding-patches.sh
Normal file
@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
# Alfred IDE Branding Patches
|
||||
# Applied to code-server workbench.js and NLS files
|
||||
# See user memory notes for full details
|
||||
|
||||
WORKBENCH="/home/gositeme/.local/share/code-server/lib/vscode/out/vs/workbench/workbench.web.main.js"
|
||||
|
||||
# Product name patches
|
||||
sed -i 's/nameShort:"code-server"/nameShort:"Alfred IDE"/g' "$WORKBENCH"
|
||||
sed -i 's/nameLong:"code-server"/nameLong:"Alfred IDE"/g' "$WORKBENCH"
|
||||
|
||||
# Secure context warning
|
||||
sed -i 's/d(3228,null,"code-server")/d(3228,null,"Alfred IDE")/g' "$WORKBENCH"
|
||||
|
||||
# Logout menu
|
||||
sed -i 's/d(3230,null,"code-server")/d(3230,null,"Alfred IDE")/g' "$WORKBENCH"
|
||||
|
||||
# Update notification
|
||||
sed -i 's/\[code-server v/[Alfred IDE v/g' "$WORKBENCH"
|
||||
|
||||
echo "Branding patches applied to $(basename $WORKBENCH)"
|
||||
7
config.yaml
Normal file
7
config.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
bind-addr: 127.0.0.1:8443
|
||||
auth: none
|
||||
cert: false
|
||||
app-name: Alfred IDE
|
||||
welcome-text: Welcome, Commander
|
||||
disable-telemetry: true
|
||||
disable-update-check: true
|
||||
28
start.sh
Executable file
28
start.sh
Executable file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
# Alfred IDE - Start Script
|
||||
# Launches code-server (rebranded as Alfred IDE)
|
||||
# CRITICAL: unset VSCODE_IPC_HOOK_CLI or code-server detects VS Code and exits silently
|
||||
|
||||
unset VSCODE_IPC_HOOK_CLI
|
||||
|
||||
# Prevent file watcher from consuming all CPU when inotify fills up
|
||||
export VSCODE_FILE_WATCHER_POLLING_INTERVAL=30000
|
||||
export CHOKIDAR_USEPOLLING=0
|
||||
|
||||
PORT=8443
|
||||
HOST=127.0.0.1
|
||||
CODE_SERVER_BIN=/home/gositeme/.local/bin/code-server
|
||||
|
||||
# If Alfred IDE is already bound on the expected port, do not spawn a duplicate.
|
||||
EXISTING_PID=$(ss -ltnp 2>/dev/null | awk -v addr="$HOST:$PORT" '$4 == addr { if (match($0, /pid=([0-9]+)/, m)) print m[1] }' | head -n 1)
|
||||
if [[ -n "$EXISTING_PID" ]] && ps -p "$EXISTING_PID" -o args= 2>/dev/null | grep -q 'code-server'; then
|
||||
echo "Alfred IDE already running on ${HOST}:${PORT} (pid ${EXISTING_PID})"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
exec nice -n 15 ionice -c 3 /home/gositeme/.local/bin/code-server \
|
||||
--bind-addr ${HOST}:${PORT} \
|
||||
--disable-telemetry \
|
||||
--disable-update-check \
|
||||
--user-data-dir /home/gositeme/.local/share/code-server \
|
||||
/home/gositeme
|
||||
Loading…
Reference in New Issue
Block a user