A modern desktop application for managing your Hostinger VPS infrastructure. Built with Python and PyQt6, this tool provides a user-friendly interface to monitor and control your virtual private servers.
- Multi-Account Support: Manage multiple Hostinger accounts from a single interface
- Server Overview: View all your VPS instances with real-time status
- Power Controls: Start, stop, restart, and force restart servers
- Server Information: View detailed server specs (CPU, RAM, Disk, Bandwidth)
- Real-time Metrics: CPU usage, RAM usage, and disk utilization with visual charts
- Uptime Tracking: Monitor server uptime
- Auto-refresh: Configurable automatic data refresh (10-300 seconds)
- Firewall Management: View, add, edit, and delete firewall rules
- SSH Key Management: Manage SSH keys for secure server access
- Malware Scanner (Monarx): Monitor malware scan status and metrics
- Secure Credential Storage: API tokens stored securely using Windows Credential Manager
- System Tray Integration: Minimize to tray, notifications for status changes
- Data Export: Export logs and metrics to CSV format
- Subscription Info: View billing and subscription details
- Data Center Info: See server location (city, country)
- Action Logs: Track all server actions with timestamps
- Python 3.10 or higher
- One of: Windows 10/11, macOS 12+, or a modern Linux distribution
Credentials are stored via the OS-native keyring:
| OS | Backend |
|---|---|
| Windows | Credential Manager |
| macOS | Keychain |
| Linux | Secret Service (GNOME Keyring / KWallet / libsecret) |
On a headless Linux box without a running secret-service daemon, install
keyrings.cryptfile for
an encrypted-file fallback. The active backend is logged at startup so
you can confirm what's in use.
# Clone the repository
git clone https://github.com/amosgeva/HostingerVPSManager.git
cd HostingerVPSManager
# Create a virtual environment (recommended)
python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux/Mac: source .venv/bin/activate
# Install (PEP 517 — uses pyproject.toml). Add [dev] for lint + test tools.
pip install -e .
# Run the application
python run.pyQt6 needs a few X11/EGL libraries that aren't always installed on minimal distros. On Debian/Ubuntu:
sudo apt-get install -y libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 \
libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 \
libxcb-xinerama0 libxcb-xkb1 libxcb-cursor0 libegl1If you run a desktop environment without a system-tray daemon (vanilla GNOME, sway, etc.), the app falls back to "close = quit" — there's no tray icon to minimise to.
pyinstaller HostingerVPSManager.spec --clean --noconfirm| OS | Output |
|---|---|
| Windows | dist/HostingerVPSManager.exe |
| Linux | dist/HostingerVPSManager (single-file binary) |
| macOS | dist/HostingerVPSManager.app (proper .app bundle) |
On macOS, the .app is unsigned; the first launch needs right-click →
Open to bypass Gatekeeper. Code-signing is on the v2.x roadmap.
Tagged releases (v1.2.0, etc.) are built by GitHub Actions on
Windows + Linux + macOS runners and published to the
Releases page.
- Log in to your Hostinger Dashboard
- Navigate to Account Settings → API Tokens
- Generate a new API token with VPS permissions
- In the app, click "Manage Accounts" → "Add Account"
- Enter a name and paste your API token
Access settings via the ⚙ Settings button:
- Auto-refresh interval: How often to refresh data (default: 30s)
- Minimize to tray on close: Keep app running in system tray
- Start minimized: Launch app minimized to tray
- Enable notifications: Show alerts for server status changes
Hostinger.API/
├── assets/ # Application icons
│ ├── hostinger.ico
│ └── hostinger.png
├── src/ # Source code
│ ├── __init__.py
│ ├── api_client.py # Hostinger API client
│ ├── credentials.py # Secure credential storage
│ ├── main.py # Application entry point
│ ├── main_window.py # Main GUI window
│ └── styles.py # UI styles and constants
├── .gitignore
├── HostingerVPSManager.spec # PyInstaller spec file
├── README.md
├── requirements.txt
└── run.py # Run script
- No hardcoded credentials: API tokens are stored via the OS-native keyring (Windows Credential Manager, macOS Keychain, or Secret Service on Linux). The app never writes tokens to disk in plaintext.
- Retry-safe HTTP: All API calls use HTTPS via a
requestssession with exponential-backoff retries that honourRetry-After. - Local storage only: No data is sent to third-party services.
- Reporting: For security issues, email
amos@geva.solutionsprivately rather than opening a public issue.
This application uses the Hostinger API. Supported endpoints:
- VPS Virtual Machines
- VPS Firewall
- VPS SSH Keys (Public Keys)
- VPS Malware Scanner (Monarx)
- VPS Data Centers
- Billing Subscriptions
See requirements.txt:
- PyQt6 >= 6.6.0
- requests >= 2.31.0
- keyring >= 24.3.0
- pywin32 >= 306
- matplotlib >= 3.8.0
- psutil >= 5.9.0
- Fork the repository
- Create a 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
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.