Web Deployer Extension for VS Code
A powerful VS Code extension for deploying web projects to remote servers via FTP, FTPS, or SFTP.
Features
- 🚀 Multiple Deployment Methods: Support for FTP, FTPS, and SFTP protocols
- 📋 Multiple Configurations: Save and manage multiple deployment configurations
- 🌲 Tree View: Easy access to all your deployment configurations from the sidebar
- 🎯 Selective Deployment: Choose which files to deploy with exclude patterns
- 🔒 Secure: Password input for each deployment (not stored in plain text)
- ⚡ Progress Indication: Visual feedback during deployment process
Installation
From Source
- Clone this repository
- Run
npm install to install dependencies
- Press
F5 to open a new VS Code window with the extension loaded
For Development
Install dependencies:
npm install
Compile the extension:
npm run compile
Run the extension in debug mode:
- Press
F5 in VS Code
- This opens a new Extension Development Host window
Usage
Adding a Deployment Configuration
- Open the Web Deployer view in the Activity Bar (cloud upload icon)
- Click the "+" button to add a new deployment configuration
- Follow the prompts to enter:
- Configuration name
- Deployment type (FTP, FTPS, or SFTP)
- Server hostname
- Port number
- Username
- Remote path
- Local path (relative to workspace)
Deploying Your Project
Method 1: From Command Palette
- Press
Ctrl+Shift+P (or Cmd+Shift+P on Mac)
- Type "Web Deployer: Deploy Project"
- Select your deployment configuration
- Enter your password when prompted
Method 2: From Sidebar
- Open the Web Deployer view
- Click the cloud upload icon next to your desired configuration
- Enter your password when prompted
Managing Configurations
- Edit: Right-click a configuration and select "Edit Deployment"
- Delete: Right-click a configuration and select "Delete Deployment"
- Refresh: Click the refresh icon to reload configurations
Configuration
Deployment configurations are stored in your workspace settings (.vscode/settings.json):
{
"webDeployer.deployments": [
{
"name": "Production Server",
"type": "sftp",
"host": "example.com",
"port": 22,
"username": "user",
"remotePath": "/var/www/html",
"localPath": "dist",
"exclude": [
"node_modules/**",
".git/**",
"*.log"
]
}
]
}
Configuration Options
name (string): Display name for the configuration
type (string): Deployment protocol - "ftp", "ftps", or "sftp"
host (string): Server hostname or IP address
port (number): Server port (default: 21 for FTP/FTPS, 22 for SFTP)
username (string): Username for authentication
remotePath (string): Remote directory path on the server
localPath (string): Local directory path relative to workspace root
exclude (array): Glob patterns for files/folders to exclude from deployment
Security Notes
- Passwords are never stored in configuration files
- You'll be prompted to enter your password for each deployment
- For enhanced security, consider using SSH keys with SFTP
Building for Production
Package the extension:
npm run package
This creates a production build in the dist folder.
Requirements
- VS Code 1.85.0 or higher
- Node.js for building the extension
Known Issues
- Large file uploads may take time depending on connection speed
- SSH key authentication is not yet supported (password only)
Release Notes
1.0.0
- Initial release
- FTP, FTPS, and SFTP support
- Multiple deployment configurations
- Tree view for easy management
- Exclude patterns for selective deployment
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - See LICENSE file for details
Support
If you encounter any issues or have suggestions, please file an issue on the GitHub repository.