# PassPort ![logo](img/logo_bigger.png) A secure, cross-platform password manager built with Go and Fyne. PassPort provides both a graphical user interface (GUI) and command-line interface (CLI) for managing encrypted passwords and sensitive information. ## Features - **Secure Encryption**: AES encryption with PBKDF2 key derivation for maximum security - **Cross-Platform**: Works on Windows, Linux, and macOS - **Dual Interface**: - Graphical User Interface (GUI) built with Fyne - Command-Line Interface (CLI) for terminal users - **Master Password**: Single master password protects all stored credentials - **Easy Installation**: Includes installers for Windows and a cross-platform install script for Linux/macOS - **Customizable Theme**: Configurable application theme ## System Requirements - Go 1.26.0 or later (for building from source) - Windows 10+, Linux, or macOS 10.13+ - OpenGL support for GUI mode (Linux: `libgl1-mesa-dev xorg-dev`) ## Installation ### Windows #### Using winget The easiest way to install PassPort on Windows is using the Windows Package Manager: ```cmd winget install Buct0r.PassPort ``` #### Manual Installation 1. Download the latest release from the GitHub repository 2. Extract the executable to a folder of your choice 3. (Optional) Add the folder to your PATH environment variable for easy command-line access #### Building from Source 1. Ensure Go 1.26.0+ is installed 2. Clone the repository: ```cmd git clone https://github.com/Buct0r/PassPort.git cd PassPort ``` 3. Build the GUI version: ```cmd go build -o passport.exe ./src ``` 4. Or build the CLI version: ```cmd go build -o passport-cli.exe ./cli ``` ### Linux #### Using the Install Script The quickest way to install PassPort on Linux and macOS: ```bash # Install CLI only (works on all platforms) curl -fsSL https://raw.githubusercontent.com/Buct0r/PassPort/main/install.sh | bash # Install GUI + CLI (Linux amd64 only) curl -fsSL https://raw.githubusercontent.com/Buct0r/PassPort/main/install.sh | bash -s -- --gui ``` The script will: - Auto-detect your OS and architecture - Fetch the latest release from GitHub - Install to `/usr/local/bin/` (uses `sudo` when needed) - Verify GUI dependencies on Linux For a custom install location: ```bash curl -fsSL https://raw.githubusercontent.com/Buct0r/PassPort/main/install.sh | bash -s -- --prefix ~/.local ``` #### Using .deb or .rpm packages Pre-built `.deb` (Debian/Ubuntu) and `.rpm` (Fedora/RHEL) packages are available on the [releases page](https://github.com/Buct0r/PassPort/releases). ```bash # Debian/Ubuntu sudo dpkg -i passport_*.deb sudo apt install -f # install dependencies # Fedora/RHEL sudo rpm -i passport-*.rpm ``` #### Building from Source 1. Ensure Go 1.26.0+ is installed 2. Clone the repository: ```bash git clone https://github.com/Buct0r/PassPort.git cd PassPort ``` 3. Install dependencies (for GUI): ```bash sudo apt-get install libgl1-mesa-dev xorg-dev ``` 4. Build the GUI version: ```bash go build -o passport ./src ``` 5. Or build the CLI version: ```bash go build -o passport-cli ./cli ``` ### macOS #### Using the Install Script The install script works on macOS for both CLI and GUI installs: ```bash # Install CLI only (default) curl -fsSL https://raw.githubusercontent.com/Buct0r/PassPort/main/install.sh | bash # Install GUI + CLI curl -fsSL https://raw.githubusercontent.com/Buct0r/PassPort/main/install.sh | bash -s -- --gui ``` #### Using Homebrew The easiest way to install PassPort on macOS and Linux is using Homebrew: ```bash brew tap Buct0r/PassPort brew install PassPort ``` To install the CLI version only: ```bash brew install PassPort --without-gui ``` #### Building from Source 1. Ensure Go 1.26.0+ is installed and Xcode Command Line Tools: ```bash xcode-select --install ``` 2. Clone the repository: ```bash git clone https://github.com/Buct0r/PassPort.git cd PassPort ``` 3. Build the GUI version: ```bash go build -o passport ./src ``` 4. Or build the CLI version: ```bash go build -o passport-cli ./cli ``` 5. (Optional) Move the binary to a location in your PATH: ```bash sudo mv passport /usr/local/bin/ ``` ## Usage ### GUI Mode 1. Run `passport.exe` 2. On first launch, set up your master password 3. Authenticate with your master password 4. Use the graphical interface to: - Add new passwords/secrets - View stored credentials - Search for passwords - Manage your password vault ### CLI Mode 1. Run `passport.exe --cli` or `passport-cli.exe` 2. Authenticate with your master password 3. Navigate the menu to: - Add new passwords - Check existing passwords - Search for specific credentials - Manage your vault ### Command-Line Options ``` PassPort [FLAGS] FLAGS: --cli, -c Run in command-line interface mode --version, -v Show version information --help, -h Show help message ``` ## Security PassPort takes security seriously. The application features: - **PBKDF2 Key Derivation**: Strengthens master password against brute-force attacks - **AES Encryption**: Industry-standard encryption for stored data - **No Cloud Storage**: All data remains local on your machine - **Master Password Required**: All access requires authentication ## File Structure ``` PassPort/ ├── src/ # GUI application source code │ ├── main.go │ ├── gui.go │ ├── encrypt.go │ ├── functions.go │ └── ... ├── cli/ # CLI application source code │ ├── cli.go │ ├── encrypt.go │ ├── functions.go │ └── ... ├── go.mod # Go module definition └── config.json # Configuration file ``` ## Configuration ### Theme Customize the application theme by editing `config.json`: ```json { "theme": "CustomTheme" } ``` ### Data Storage - Master password: `master.key` (stored in user's home directory) - Encrypted vault: `SECRET` file (stored in user's home directory) ## Development ### Prerequisites - Go 1.26.0+ - For GUI: Fyne framework (included in dependencies) - OpenGL development libraries ### Dependencies Key dependencies: - `fyne.io/fyne/v2` - GUI framework - `golang.org/x/crypto` - Cryptographic functions - `golang.org/x/term` - Terminal control ### Building for Different Platforms GUI application: ```bash go build -o passport ./src ``` CLI application: ```bash go build -o passport-cli ./cli ``` ## Contributing Contributions are welcome! Please ensure: - Code passes security review - Documentation is updated - Cross-platform compatibility is maintained ## Support For issues, questions, or suggestions, please open a Github issue. ## Disclaimer PassPort is provided as-is. While security has been prioritized, users should regularly review security documentation and updates. Keep your master password safe and unique. I suggest to check my other project [JSrandom](https://github.com/Buct0r/JSrandom), to generate a secure master password. --- **Version**: 0.4.0 **Last Updated**: June 2026 **Maintainer**: Buct0r