Remote host + username opening for VSCode based IDEs (#1134)
* feat: add remote VSCode SSH support for remote server deployments Add support for opening VSCode via SSH when Vibe Kanban is running on a remote server. This allows users accessing the web UI through a tunnel to open projects/tasks in their local VSCode which connects to the remote server via SSH. Backend changes: - Add remote_ssh_host and remote_ssh_user fields to EditorConfig (v3) - Create config v8 with migration from v7 - Modify EditorConfig.open_file() to return URL when remote mode is enabled - Update API routes to return OpenEditorResponse with optional URL - Generate vscode:// URL scheme for remote SSH connections Frontend changes: - Update API client to handle OpenEditorResponse type - Modify hooks to open URLs in new tabs when returned - Add UI fields in settings for remote SSH configuration When remote_ssh_host is configured, clicking "Open in VSCode" generates a URL like: vscode://vscode-remote/ssh-remote+user@host/path/to/project This works for both project-level and task-level editor opening. * feat: extend remote SSH support to Cursor and Windsurf editors Extend the remote SSH feature to support Cursor and Windsurf editors, which are VSCode forks that use the same remote SSH protocol. Changes: - Update EditorConfig.open_file() to generate cursor:// and windsurf:// URLs - Show SSH configuration fields in settings for all three VSCode-based editors - Use same vscode-remote SSH URL pattern for all three editors When remote_ssh_host is configured, supported editors generate URLs like: - vscode://vscode-remote/ssh-remote+user@host/path - cursor://vscode-remote/ssh-remote+user@host/path - windsurf://vscode-remote/ssh-remote+user@host/path * fix: address clippy linting issues - Fix uninlined format args in v3.rs - Add allow attributes for re-exported types in v5-v7 * docs: add remote SSH configuration documentation Add comprehensive documentation for the remote SSH editor feature: - Expand Editor Integration section in global-settings.mdx - Document when to use remote SSH (tunnels, systemctl services, remote deployments) - Explain configuration fields (remote_ssh_host, remote_ssh_user) - Detail how the feature works with protocol URLs - List prerequisites for SSH access and VSCode Remote-SSH extension - Support for VSCode, Cursor, and Windsurf editors - Add Remote Deployment section to README.md - Quick guide for setting up remote SSH access - Link to detailed documentation - Include in feature list This documentation helps users understand and configure the remote SSH feature when running Vibe Kanban on remote servers accessed via browser. * remove package-lock in favour of pnpm lock * rollback config version increment * re-impl remote URL * Update i18n for general settings (vibe-kanban 4a1a3ae1) frontend/src/pages/settings/GeneralSettings.tsx Find any strings here that haven't been i18n'd and i18n them * add line number/col to the end of vscode-remote file paths * handle response url when opening file in ide from DiffCard * update remote-ssh guidance in readme * add image to global settings docs --------- Co-authored-by: Stephan Fitzpatrick <stephan@knowsuchagency.com> Co-authored-by: Britannio Jarrett <britanniojarrett@gmail.com>
This commit is contained in:
committed by
GitHub
parent
e7cc1163bc
commit
e8ff40d5a4
@@ -58,7 +58,20 @@
|
||||
},
|
||||
"customCommand": {
|
||||
"label": "Custom Editor Command",
|
||||
"placeholder": "e.g., code, subl, vim",
|
||||
"helper": "Enter the command to launch your custom editor. This will be used to open files."
|
||||
},
|
||||
"remoteSsh": {
|
||||
"host": {
|
||||
"label": "Remote SSH Host (Optional)",
|
||||
"placeholder": "e.g., hostname or IP address",
|
||||
"helper": "Set this if Vibe Kanban is running on a remote server. When set, clicking \"Open in Editor\" will generate a URL to open your editor via SSH instead of spawning a local command."
|
||||
},
|
||||
"user": {
|
||||
"label": "Remote SSH User (Optional)",
|
||||
"placeholder": "e.g., username",
|
||||
"helper": "SSH username for the remote connection. If not set, VS Code will use your SSH config or prompt you."
|
||||
}
|
||||
}
|
||||
},
|
||||
"github": {
|
||||
@@ -71,6 +84,7 @@
|
||||
"or": "OR",
|
||||
"pat": {
|
||||
"label": "Personal Access Token",
|
||||
"placeholder": "ghp_xxxxxxxxxxxxxxxxxxxx",
|
||||
"helper": "GitHub Personal Access Token with 'repo' permissions. Use this if OAuth permissions are insufficient for private repositories and organisation owned repositories.",
|
||||
"createTokenLink": "Create token here"
|
||||
}
|
||||
|
||||
@@ -58,7 +58,20 @@
|
||||
},
|
||||
"customCommand": {
|
||||
"label": "Comando de Editor Personalizado",
|
||||
"placeholder": "ej., code, subl, vim",
|
||||
"helper": "Ingresa el comando para lanzar tu editor personalizado. Se utilizará para abrir archivos."
|
||||
},
|
||||
"remoteSsh": {
|
||||
"host": {
|
||||
"label": "Host SSH Remoto (Opcional)",
|
||||
"placeholder": "ej., nombre de host o dirección IP",
|
||||
"helper": "Configura esto si Vibe Kanban se ejecuta en un servidor remoto. Cuando se establece, al hacer clic en \"Abrir en Editor\" se generará una URL para abrir tu editor a través de SSH en lugar de ejecutar un comando local."
|
||||
},
|
||||
"user": {
|
||||
"label": "Usuario SSH Remoto (Opcional)",
|
||||
"placeholder": "ej., nombre de usuario",
|
||||
"helper": "Nombre de usuario SSH para la conexión remota. Si no se establece, VS Code usará tu configuración SSH o te lo pedirá."
|
||||
}
|
||||
}
|
||||
},
|
||||
"github": {
|
||||
@@ -71,6 +84,7 @@
|
||||
"or": "O",
|
||||
"pat": {
|
||||
"label": "Token de Acceso Personal",
|
||||
"placeholder": "ghp_xxxxxxxxxxxxxxxxxxxx",
|
||||
"helper": "Token de Acceso Personal de GitHub con permisos 'repo'. Úsalo si los permisos OAuth son insuficientes para repositorios privados y repositorios de organizaciones.",
|
||||
"createTokenLink": "Crear token aquí"
|
||||
}
|
||||
|
||||
@@ -58,7 +58,20 @@
|
||||
},
|
||||
"customCommand": {
|
||||
"label": "カスタムエディターコマンド",
|
||||
"placeholder": "例: code, subl, vim",
|
||||
"helper": "カスタムエディターを起動するコマンドを入力してください。ファイルを開くために使用されます。"
|
||||
},
|
||||
"remoteSsh": {
|
||||
"host": {
|
||||
"label": "リモートSSHホスト(オプション)",
|
||||
"placeholder": "例: ホスト名またはIPアドレス",
|
||||
"helper": "Vibe Kanbanがリモートサーバーで実行されている場合に設定してください。設定すると、「エディターで開く」をクリックしたときに、ローカルコマンドを実行する代わりにSSH経由でエディターを開くURLが生成されます。"
|
||||
},
|
||||
"user": {
|
||||
"label": "リモートSSHユーザー(オプション)",
|
||||
"placeholder": "例: ユーザー名",
|
||||
"helper": "リモート接続のSSHユーザー名。設定されていない場合、VS CodeはSSH設定を使用するか、入力を求めます。"
|
||||
}
|
||||
}
|
||||
},
|
||||
"github": {
|
||||
@@ -71,6 +84,7 @@
|
||||
"or": "または",
|
||||
"pat": {
|
||||
"label": "個人用アクセストークン",
|
||||
"placeholder": "ghp_xxxxxxxxxxxxxxxxxxxx",
|
||||
"helper": "「repo」権限を持つGitHub個人用アクセストークン。OAuthの権限がプライベートリポジトリや組織所有のリポジトリに対して不十分な場合に使用してください。",
|
||||
"createTokenLink": "ここでトークンを作成"
|
||||
}
|
||||
|
||||
@@ -58,7 +58,20 @@
|
||||
},
|
||||
"customCommand": {
|
||||
"label": "사용자 정의 에디터 명령",
|
||||
"placeholder": "예: code, subl, vim",
|
||||
"helper": "사용자 정의 에디터를 실행하는 명령을 입력하세요. 파일을 여는 데 사용됩니다."
|
||||
},
|
||||
"remoteSsh": {
|
||||
"host": {
|
||||
"label": "원격 SSH 호스트 (선택사항)",
|
||||
"placeholder": "예: 호스트 이름 또는 IP 주소",
|
||||
"helper": "Vibe Kanban이 원격 서버에서 실행 중인 경우 설정하세요. 설정하면 \"에디터에서 열기\"를 클릭할 때 로컬 명령을 실행하는 대신 SSH를 통해 에디터를 여는 URL이 생성됩니다."
|
||||
},
|
||||
"user": {
|
||||
"label": "원격 SSH 사용자 (선택사항)",
|
||||
"placeholder": "예: 사용자 이름",
|
||||
"helper": "원격 연결을 위한 SSH 사용자 이름입니다. 설정하지 않으면 VS Code가 SSH 설정을 사용하거나 입력을 요청합니다."
|
||||
}
|
||||
}
|
||||
},
|
||||
"github": {
|
||||
@@ -71,6 +84,7 @@
|
||||
"or": "또는",
|
||||
"pat": {
|
||||
"label": "개인 액세스 토큰",
|
||||
"placeholder": "ghp_xxxxxxxxxxxxxxxxxxxx",
|
||||
"helper": "'repo' 권한이 있는 GitHub 개인 액세스 토큰입니다. OAuth 권한이 비공개 저장소 및 조직 소유 저장소에 충분하지 않은 경우 사용하세요.",
|
||||
"createTokenLink": "여기에서 토큰 생성"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user