DotPorter 🔄
A powerful Rust-based tool for managing and synchronizing your dotfiles and packages across different machines.
dotporter Crate
The dotporter crate is now published on crates.io. You can add it to your project by including the following in your Cargo.toml:
[]
= "0.1" # Replace "0.1" with the latest version if needed
Or just install it globally with
📁 Tool Structure
| Folder | Description |
|---|---|
| 📂MANUAL_BACKUP | Storage for manual backup files (legacy version) |
| 📂LEGACY_DEPRECATED | Archive of old scripts for reference |
| 📂dotfiles | Synchronized configuration files (auto-populated) |
| 📂Packages | Package management and backup files |
🚀 How does it work
New Released Version (Rust-based)
- Run the following command:
This will automatically create a config file in your home directory:
~/dotporter/backup_config.toml

The configuration file can be customized to include or exclude:
- Package managers
- Folders
- Specific files
After completion, two main folders will be created:
- 📁 Dotfiles
- 📁 Packages

Legacy Version
The root directory contains backup references for:
- 🐚 Shell Settings: Themes and plugins for Oh My Zsh
- 📄 .zshrc: Zsh configuration
- 🎨 personal-zsh-theme: Custom theme inspired by daivasmara
- ⚙️ settings.zip: PHPStorm configuration
Scripts Usage
- Backup your packages:
- Restore on new machine:
🛠 Dependencies
Required tools for the new machine:
| Tool | Purpose |
|---|---|
| 🍺 Brew | Package Manager for macOS |
| 💎 RubyGems | Ruby Package Manager |
| 📦 Node Package Managers | Choose from:Yarn, NPM, BUN, PNPM |
| 🎼 Composer | PHP Package Manager |
| 🐍 Pip | Python Package Manager |
| 🦀 Cargo | Rust Package Manager |
| 📜 Atuin | Shell History Manager |
| 🐚 ZSH | Shell (Optional) |
⚠️ Important Notes
- Beta Feature: Package installation binary is available but untested
- Composer Packages: Consider manual
composer.jsoncopy and install - Config Backup: Current release focuses on configuration backup
🤝 Contributing
Feel free to:
- Submit issues
- Create pull requests
- Suggest enhancements
- Made with ❤️ by 📧 hamzahasbi