Bratko SFTP Pro — мощный инструмент для безопасной и быстрой FTP, SFTP, SSH синхронизации локального проекта с удаленными серверами.
Расширение написано с нуля и ориентировано на безопасную, управляемую синхронизацию проекта с сервером.

Возможности
- Несколько окружений (
dev,stage,prod) в одном конфиге. - Upload/Download файлов и папок.
- Watch-режим и upload при сохранении.
- Сравнение локального и удаленного файлов (diff).
excludePath+ merge с.gitignore.- Опциональный
buildперед upload. - Опциональный
git commitперед upload. - Сжатие файлов перед upload и распаковка на SSH-хосте.
- Пауза/возобновление/остановка очереди.
- Русскоязычное логирование в
Output: Bratko SFTP Pro.
Конфиг
По умолчанию используется файл .bratko-sync.jsonc в корне workspace.
Пример конфига:
{
"dev.server": {
"type": "sftp",
"host": "127.0.0.1",
"port": 22,
"username": "deploy",
"password": "",
"privateKeyPath": "",
"passphrase": "",
"upload_on_save": true,
"sync_on_delete": false,
"sync_on_create_folder": true,
"watch": false,
"submit_git_before_upload": false,
"submit_git_msg": "",
"compress": false,
"remote_unpacked": false,
"delete_remote_compress": true,
"delete_local_compress": true,
"distPath": [],
"upload_to_root": false,
"deleteRemote": false,
"remotePath": "/var/www/project",
"excludePath": [
"**/.env/**",
"**/.git/**",
"**/.vscode/**",
"**/.idea/**",
"**/*.md",
"**/.DS_Store",
"**/Thumbs.db",
"**/node_modules/**",
"**/vendor/**"
],
"downloadPath": "",
"downloadExcludePath": [],
"enable_logs": false,
"auto_show_output": true,
"default": true
}
}
Подробное описание настроек:
- type: Тип соединения (
ftp,sftp,ssh). Рекомендуетсяsftp. - host: IP-адрес или домен сервера.
- port: Порт (обычно
22для SFTP/SSH,21для FTP). - username: Логин пользователя на сервере.
- password: Пароль (можно оставить пустым, расширение запросит и сохранит его безопасно в SecretStorage).
- privateKeyPath: Локальный абсолютный путь к вашему приватному SSH-ключу (для авторизации без пароля). Обратите внимание: в Windows нужно использовать двойные слеши (например:
"C:\\Users\\bratko\\.ssh\\id_ed21899"). - passphrase: Пароль (passphrase) от вашего приватного SSH-ключа, если он зашифрован.
- remotePath: Абсолютный путь к папке проекта на сервере (например,
/var/www/project). - upload_on_save: (
true/false) Автоматическая отправка файла на сервер при нажатии Ctrl+S. - sync_on_delete: (
true/false) Автоматически удалять файл на сервере, если он удален локально. - sync_on_create_folder: (
true/false) Автоматически создавать папку на сервере, если она создана локально. - watch: (
true/false) Отслеживание изменений файлов в фоне. - submit_git_before_upload: (
true/false) Делатьgit add .иgit commitперед отправкой файлов (защита от потери кода). - submit_git_msg: Текст коммита (например:
"Авто-деплой"). - build: Команда для сборки проекта перед отправкой (например:
"npm run build"). - compress: (
true/false) Сжимать файлы в архив перед отправкой (ускоряет деплой в 10-100 раз). - remote_unpacked: (
true/false) Автоматически распаковать архив на сервере (работает только дляSSH). - delete_local_compress: (
true/false) Удалить временный архив на компьютере после деплоя. - delete_remote_compress: (
true/false) Удалить временный архив на сервере после распаковки. - distPath: (строка или массив) Папка для загрузки. Оставьте
[]для загрузки всего проекта. Если указать["dist"], загрузятся только файлы из нее. - upload_to_root: (
true/false) Загружать содержимоеdistPathпрямо в кореньremotePathбез создания папкиdistна сервере. - deleteRemote: (
true/false) Удалять файлы на сервере, если вы загружаете целую папку, а на сервере есть "лишние" файлы. (Осторожно!) - excludePath: Массив файлов/папок для игнорирования (например:
[".env", "/tests"]). Сливается с вашим.gitignore! - downloadPath: Альтернативный путь для скачивания файлов (если не указан, скачивается в корень проекта).
- downloadExcludePath: Массив путей, которые не нужно скачивать с сервера.
- enable_logs: (
true/false) Включить запись истории действий (логов) в панель "Выходные данные" (Output). Еслиfalse, логи писаться не будут (но всплывающие ошибки и уведомления продолжат работать). - auto_show_output: (
true/false) Автоматически открывать панель логов при начале операций с сервером. - default: (
true/false) Использовать это окружение по умолчанию.
Использование
Все основные операции доступны через удобный интерфейс в сайдбаре (Bratko SFTP Pro -> Удалённый хост) и по правому клику мыши:
- В локальном проекте: Кликните правой кнопкой мыши по любому файлу или папке в вашем проекте, чтобы загрузить их на сервер, скачать с сервера или сравнить локальную версию с серверной.
- В удаленном менеджере: В сайдбаре вы можете напрямую просматривать файлы сервера, создавать новые файлы и папки, переименовывать их, удалять, а также скачивать к себе в проект.
- Работа с файлами: Дважды кликните по удаленному файлу в сайдбаре, чтобы открыть его. Вы можете вносить изменения и сохранять его (Ctrl+S) — он моментально загрузится обратно на сервер.
Безопасность
- Если вы оставите поле
"password"пустым в файле.bratko-sync.jsonc, расширение запросит пароль при первом подключении и надежно сохранит его во встроенном зашифрованном хранилище паролей вашего компьютера (VS Code SecretStorage). Таким образом, пароль не будет "светиться" в текстовом файле конфига. - Также поддерживается подключение по SSH-ключам (параметры
privateKeyPathиpassphraseв конфиге).
Благодарность
Если Вам нравится это расширение и помогает в работе, Вы можете поддержать его развитие любой удобной суммой. Спасибо за доверие, поддержку и интерес к проекту.
Лицензия
Все права защищены (Proprietary).