diff --git a/README.md b/README.md index 3ab3647..ed887cd 100644 --- a/README.md +++ b/README.md @@ -1 +1,177 @@ -# ArkHost-HetznerVPS \ No newline at end of file +# ArkHost Hetzner VPS Module + +WHMCS server module for Hetzner Cloud VPS management. + +## Features + +**Core** + +- VPS lifecycle: create, suspend, unsuspend, terminate +- Server control: start, stop, restart, shutdown +- Automatic provisioning on payment + +**Advanced** + +- Floating IP management with reverse DNS +- Backup creation and restoration +- Firewall rule management +- Performance graphs (CPU, network, disk I/O) +- Rescue mode with temporary passwords +- ISO mounting +- OS reinstallation + +**Interface** + +- Bootstrap 4 responsive design +- English and Portuguese languages +- Real-time status updates +- VNC console access + +## Requirements + +- WHMCS 8.9+ +- PHP 7.4+ +- Hetzner Cloud API token +- cURL extension +- HTTPS connection + +## Installation + +1. Upload files to `/path/to/whmcs/modules/servers/ArkHostHetznerVPS/` +2. Create server group: + - Setup → Products/Services → Servers → Create New Group + - Name: `Hetzner Cloud` + - Type: `ArkHostHetznerVPS` + - Hostname: `api.hetzner.cloud` + - Username: Hetzner Project ID (optional) + - Password: Hetzner Cloud API Token +3. Create products: + - Setup → Products/Services → Products/Services → Create New Product + - Type: `VPS/Dedicated Server` + - Module: `ArkHostHetznerVPS` + - Server Group: Select Hetzner Cloud + +## Configuration + +**Module Settings** + +- Server Type: `cx11`, `cx21`, `cx31`, `cx41`, `cx51` , etc. +- Operating System: `ubuntu-20.04`, `debian-11`, etc. +- Datacenter: `fsn1`, `nbg1`, `hel1`, `ash`, `hil` +- Backups: On/Off +- Create Floating IP: On/Off + +**Custom Field (Required)** + +- Field Name: `ArkHostHetznerVPS|VPS ID` +- Type: Text Box +- Admin Only: Yes + +For ModulesGarden migration, keep existing `serverID|Server ID` field. + +## Configurable Options + +Create in Setup → Products/Services → Configurable Options: + +**1\. Floating IP Add-on** + +- Option Name: `Floating IP` +- Option Type: `Yes/No` +- Options: + - `No|None` + - `Yes|1 Floating IP` + +**2\. Datacenter Selection** + +- Option Name: `datacenter` +- Option Type: `Dropdown` +- Options: + - `fsn1|Falkenstein, Germany` + - `nbg1|Nuremberg, Germany` + - `hel1|Helsinki, Finland` + - `ash|Ashburn, USA` + - `hil|Hillsboro, USA` + +**3\. Server Type** + +- Option Name: `planid` +- Option Type: `Dropdown` +- Options: + - `cx11|CX11 (1 vCPU, 2GB RAM, 20GB SSD)` + - `cx21|CX21 (2 vCPU, 4GB RAM, 40GB SSD)` + - `cx31|CX31 (2 vCPU, 8GB RAM, 80GB SSD)` + - `cx41|CX41 (4 vCPU, 16GB RAM, 160GB SSD)` + - `cx51|CX51 (8 vCPU, 32GB RAM, 240GB SSD)` + +**4\. Operating System** + +- Option Name: `osid` +- Option Type: `Dropdown` +- Options: + - `ubuntu-20.04|Ubuntu 20.04 LTS` + - `ubuntu-22.04|Ubuntu 22.04 LTS` + - `debian-11|Debian 11` + - `debian-12|Debian 12` + - `centos-stream-8|CentOS Stream 8` + - `centos-stream-9|CentOS Stream 9` + - `rocky-8|Rocky Linux 8` + - `rocky-9|Rocky Linux 9` + + + +## Client Interface + +**Overview**: Server status, information, control buttons **Graphs**: CPU, network, disk I/O monitoring **Backups**: Create, restore, delete backups **Settings**: Hostname, ISO, password reset, reinstall, firewall, rescue mode, floating IP + +## SSH Key Management + +**Why no SSH key feature?** + +Hetzner's API stores SSH keys at the project level, not per-server. In a multi-tenant WHMCS environment, this creates security risks: + +- Potential key exposure across customers +- No proper isolation between services +- Complex workarounds that compromise security + +**Current recommended approach:** + +1. Use password authentication for initial access +2. Add your SSH key manually: `ssh-copy-id root@your-server-ip` +3. Secure your server: + +```bash +sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_configsystemctl restart sshd +``` + +This ensures proper key isolation and security for each customer. + +**Future development:** + +We're exploring secure implementations using cloud-init or per-server user data to enable SSH key management while maintaining proper isolation. + +## Screenshots +[to be added] + +## Troubleshooting + +**API Connection Failed**: Check API token in server group settings **Server Not Found**: Verify VPS ID custom field exists **Floating IP Issues**: Enable in configurable options + +Enable module debugging: Configuration → System Logs → Module Log + +## Support + +[support@arkhost.com](mailto:support@arkhost.com "mailto:support@arkhost.com") + +## License + +MIT License - see [LICENSE](LICENSE) file for details. + +Free and open source. Commercial support available. + +## Other ArkHost Modules + +Check out our premium WHMCS modules at [arkhost.com/whmcs-modules.php](https://arkhost.com/whmcs-modules.php "https://arkhost.com/whmcs-modules.php") + +© 2025 ArkHost + +