@btheo/dpl
v1.2.0
Published
Simple deployment tool for Docker projects
Downloads
23
Maintainers
Readme
DPL (Docker Project Deployer)
A streamlined CLI tool for deploying Docker projects over SSH with multi-target support and secure authentication handling.
✨ Key Features
- 🔐 Flexible authentication (Password/SSH Key)
- 🔑 Secure Git credential management
- 📦 Multiple deployment target support
- 🐳 Seamless Docker Compose integration
- 💻 Interactive configuration wizard
- 🚀 One-command deployment
- 🛡️ Secure credential handling
📦 Installation
npm install -g @btheo/dpl
🚀 Quick Start
- Configure a deployment target:
# Password authentication
dpl configure myserver --password
# SSH key authentication (defaults to ~/.ssh/id_rsa)
dpl configure myserver --ssh-key
- Deploy your project:
# Standard deployment
dpl deploy myserver
# Deploy without Git authentication
dpl deploy myserver --skip-git-auth
📖 Command Reference
Configure New Target
dpl configure [alias] [options]
Options:
--password
- Use password authentication--ssh-key
- Use SSH key authentication--git-auth
- Include Git authentication setup
The wizard will guide you through configuring:
- Remote host details
- Authentication method
- Project location
- Git credentials (optional)
Deploy Project
dpl deploy <alias> [options]
Options:
--skip-git-auth
- Bypass Git authentication
Deployment Process:
- SSH connection establishment
- Git authentication setup (if configured)
- Code pull from repository
- Container management:
- Stop running containers
- Clean Docker resources
- Start new containers
- Status verification
- Cleanup of temporary files
Manage Configurations
# List all targets
dpl list
# Remove a target
dpl remove <alias>
# Duplicate a configuration
dpl duplicate <alias> <newAlias> <newFolderPath>
🔒 Security Features
- Encrypted storage of sensitive data
- SSH key path references only (no key storage)
- Automatic cleanup of authentication artifacts
- Secure Git credential handling
- Isolated configuration per user
💾 Configuration Storage
Configurations are securely stored in:
- macOS:
~/Library/Preferences/dpl-nodejs
- Linux:
~/.config/dpl-nodejs
- Windows:
%APPDATA%\dpl-nodejs
🛠️ Development Setup
Prerequisites
- Node.js ≥ 14
- npm ≥ 6
Local Development
# Clone repository
git clone https://github.com/yourusername/dpl.git
cd dpl
# Setup project
npm install
npm run build
# Link for local testing
npm link
# Run tests
npm test
npm run test:watch
npm run test:coverage
🤝 Contributing
- Fork the repository
- Create your feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add amazing feature'
- Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
📄 License
Licensed under the MIT License - see the LICENSE file for details.