Skip to content

amosgeva/HostingerVPSManager

Repository files navigation

Hostinger VPS Manager

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.

Python PyQt6 License Codacy Badge

Features

Server Management

  • 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)

Monitoring

  • 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)

Security

  • 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

Additional Features

  • 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

Installation

Prerequisites

  • 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.

From Source

# 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.py

Linux: extra Qt system dependencies

Qt6 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 libegl1

If 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.

Build a standalone artefact

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.

Releases

Tagged releases (v1.2.0, etc.) are built by GitHub Actions on Windows + Linux + macOS runners and published to the Releases page.

Configuration

API Token Setup

  1. Log in to your Hostinger Dashboard
  2. Navigate to Account Settings → API Tokens
  3. Generate a new API token with VPS permissions
  4. In the app, click "Manage Accounts" → "Add Account"
  5. Enter a name and paste your API token

Settings

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

Project Structure

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

Security

  • 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 requests session with exponential-backoff retries that honour Retry-After.
  • Local storage only: No data is sent to third-party services.
  • Reporting: For security issues, email amos@geva.solutions privately rather than opening a public issue.

API Reference

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

Requirements

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

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Acknowledgments

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors