ワンクリックで
vps
Use when user says "Hostinger VPS", "server deploy", or "VPS access". SSH, services, Docker, logs, health, safe ops.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when user says "Hostinger VPS", "server deploy", or "VPS access". SSH, services, Docker, logs, health, safe ops.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | vps |
| requires_mcps | ["hostinger-api"] |
| description | Use when user says "Hostinger VPS", "server deploy", or "VPS access". SSH, services, Docker, logs, health, safe ops. |
| last_updated | 2026-03-20 |
| doc_source | https://developers.hostinger.com |
The VPS API provides comprehensive management of virtual private servers — from purchasing and setup to Docker deployments, firewall configuration, SSH keys, backups, snapshots, OS reinstallation, recovery mode, malware scanning, and performance monitoring.
This skill is paired with the hostinger-api MCP (@hostinger/api-mcp-server). Prefer mcp__hostinger-api__VPS_* tools over raw curl. The curl examples below are the fallback path for debugging or when the MCP is unreachable — they are not the primary interface.
Available VPS tools (61 total), grouped by job:
VPS_purchaseNewVirtualMachineV1, VPS_setupPurchasedVirtualMachineV1, VPS_recreateVirtualMachineV1, VPS_startVirtualMachineV1, VPS_stopVirtualMachineV1, VPS_restartVirtualMachineV1VPS_getVirtualMachinesV1, VPS_getVirtualMachineDetailsV1, VPS_getTemplatesV1, VPS_getTemplateDetailsV1, VPS_getDataCenterListV1VPS_createNewFirewallV1, VPS_createFirewallRuleV1, VPS_updateFirewallRuleV1, VPS_deleteFirewallRuleV1, VPS_activateFirewallV1, VPS_deactivateFirewallV1, VPS_syncFirewallV1, VPS_getFirewallListV1, VPS_getFirewallDetailsV1, VPS_deleteFirewallV1VPS_createPublicKeyV1, VPS_attachPublicKeyV1, VPS_getPublicKeysV1, VPS_getAttachedPublicKeysV1, VPS_deletePublicKeyV1VPS_createSnapshotV1, VPS_getSnapshotV1, VPS_restoreSnapshotV1, VPS_deleteSnapshotV1, VPS_getBackupsV1, VPS_restoreBackupV1VPS_setHostnameV1, VPS_resetHostnameV1, VPS_setNameserversV1, VPS_createPTRRecordV1, VPS_deletePTRRecordV1, VPS_setRootPasswordV1, VPS_setPanelPasswordV1VPS_createPostInstallScriptV1, VPS_getPostInstallScriptsV1, VPS_getPostInstallScriptV1, VPS_updatePostInstallScriptV1, VPS_deletePostInstallScriptV1VPS_createNewProjectV1, VPS_getProjectListV1, VPS_getProjectContainersV1, VPS_getProjectContentsV1, VPS_getProjectLogsV1, VPS_startProjectV1, VPS_stopProjectV1, VPS_restartProjectV1, VPS_updateProjectV1, VPS_deleteProjectV1VPS_getMetricsV1, VPS_getScanMetricsV1, VPS_getActionsV1, VPS_getActionDetailsV1, VPS_installMonarxV1, VPS_uninstallMonarxV1VPS_startRecoveryModeV1, VPS_stopRecoveryModeV1VPS instances with dedicated CPU, RAM, disk, and network resources. Each VM has an OS template, root access, and an IP address. VMs go through states: initial → running → stopped.
Asynchronous operations on VMs (start, stop, restart, recreate, etc.) return an action resource with a status you can poll.
Deploy and manage Docker Compose projects directly on VPS instances. Supports creating projects from docker-compose.yaml content or GitHub URLs.
Network security rules that control inbound traffic. By default, all incoming traffic is dropped — you must explicitly add accept rules. Only one firewall can be active per VM at a time. Changes require manual sync to take effect.
SSH keys for authentication. Keys are managed at the account level and attached to specific VMs.
Pre-configured operating system images for VM installation (Ubuntu, Debian, CentOS, etc.) including panel templates (e.g., with cPanel or Plesk).
Automation scripts that run after VM installation. Saved to /post_install with executable permissions. Output goes to /post_install.log. Maximum size: 48KB.
Boot the VM from a recovery disk image for system rescue. The original disk is mounted at /mnt.
Optional security tool for malware detection and prevention on VPS instances.
# Step 1: Get available OS templates
curl -X GET "https://developers.hostinger.com/api/vps/v1/templates" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Step 2: Get available data centers
curl -X GET "https://developers.hostinger.com/api/vps/v1/data-centers" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Step 3: Purchase a VPS
curl -X POST "https://developers.hostinger.com/api/vps/v1/virtual-machines" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"item_id": "hostingercom-vps-kvm2-usd-1m",
"payment_method_id": 517244,
"template_id": 1,
"data_center_id": 1,
"hostname": "my-server",
"password": "SecurePass123!"
}'
# Step 4: Setup purchased VM (if in initial state)
curl -X POST "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/setup" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"template_id": 1,
"data_center_id": 1,
"hostname": "my-server",
"password": "SecurePass123!"
}'
CLI (hapi):
hapi vps vm list
Python SDK:
from hostinger_api import Hostinger
client = Hostinger(api_token="YOUR_API_TOKEN")
# List all VPS instances
vms = client.vps.virtual_machines.list()
for vm in vms:
print(f"{vm.hostname} - {vm.state} - {vm.ip_address}")
TypeScript SDK:
import { Hostinger } from "hostinger-api-sdk";
const client = new Hostinger({ apiToken: "YOUR_API_TOKEN" });
const vms = await client.vps.virtualMachines.list();
for (const vm of vms) {
console.log(`${vm.hostname} - ${vm.state} - ${vm.ipAddress}`);
}
PHP SDK:
use Hostinger\Api\HostingerApi;
$client = new HostingerApi('YOUR_API_TOKEN');
$vms = $client->vps->virtualMachines->list();
foreach ($vms as $vm) {
echo "{$vm->hostname} - {$vm->state} - {$vm->ip_address}\n";
}
# List all VMs
curl -X GET "https://developers.hostinger.com/api/vps/v1/virtual-machines" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Get VM details
curl -X GET "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Start VM
curl -X POST "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/start" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Stop VM
curl -X POST "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/stop" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Restart VM
curl -X POST "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/restart" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Set hostname
curl -X PUT "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/hostname" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "hostname": "new-hostname.example.com" }'
# Set root password
curl -X PUT "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/root-password" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "password": "NewSecurePass123!" }'
# Recreate VM (DESTRUCTIVE - all data lost)
curl -X POST "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/recreate" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"template_id": 1,
"password": "SecurePass123!"
}'
# List Docker projects on a VM
curl -X GET "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/docker" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Deploy from docker-compose.yaml content
curl -X POST "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/docker" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"project_name": "my-app",
"content": "version: \"3\"\nservices:\n web:\n image: nginx:latest\n ports:\n - \"80:80\""
}'
# Deploy from GitHub URL
curl -X POST "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/docker" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"project_name": "my-app",
"url": "https://github.com/user/repo"
}'
# Get project containers and stats
curl -X GET "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/docker/my-app/containers" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# View project logs (last 300 entries)
curl -X GET "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/docker/my-app/logs" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Start / Stop / Restart / Update / Delete project
curl -X POST ".../docker/my-app/start" -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
curl -X POST ".../docker/my-app/stop" -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
curl -X POST ".../docker/my-app/restart" -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
curl -X POST ".../docker/my-app/update" -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
curl -X DELETE ".../docker/my-app/down" -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Create a firewall
curl -X POST "https://developers.hostinger.com/api/vps/v1/firewall" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "web-server" }'
# Add rules (default drops all — add accept rules for ports you need)
curl -X POST "https://developers.hostinger.com/api/vps/v1/firewall/1/rules" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"protocol": "tcp",
"port": "80",
"source": "0.0.0.0/0",
"action": "accept"
}'
# Activate firewall on a VM
curl -X POST "https://developers.hostinger.com/api/vps/v1/firewall/1/activate/12345" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Sync firewall after rule changes
curl -X POST "https://developers.hostinger.com/api/vps/v1/firewall/1/sync/12345" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Create SSH key
curl -X POST "https://developers.hostinger.com/api/vps/v1/public-keys" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "my-laptop",
"key": "ssh-ed25519 AAAA... user@host"
}'
# Attach key to VM
curl -X POST "https://developers.hostinger.com/api/vps/v1/public-keys/attach/12345" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "ids": [1, 2] }'
# List keys on a VM
curl -X GET "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/public-keys" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# List backups
curl -X GET "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/backups" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Restore a backup (DESTRUCTIVE - overwrites all data)
curl -X POST "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/backups/99/restore" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Create a snapshot (overwrites existing snapshot)
curl -X POST "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/snapshot" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Get current snapshot
curl -X GET "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/snapshot" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Restore from snapshot
curl -X POST "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/snapshot/restore" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Get VM metrics (CPU, memory, disk, network, uptime)
curl -X GET "https://developers.hostinger.com/api/vps/v1/virtual-machines/12345/metrics?date_from=2025-05-01T00:00:00Z&date_to=2025-06-01T00:00:00Z" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
| Method | Endpoint | Description |
|---|---|---|
GET | /api/vps/v1/virtual-machines | List all VMs |
POST | /api/vps/v1/virtual-machines | Purchase new VM |
GET | /api/vps/v1/virtual-machines/{id} | Get VM details |
POST | /api/vps/v1/virtual-machines/{id}/setup | Setup purchased VM |
POST | /api/vps/v1/virtual-machines/{id}/start | Start VM |
POST | /api/vps/v1/virtual-machines/{id}/stop | Stop VM |
POST | /api/vps/v1/virtual-machines/{id}/restart | Restart VM |
POST | /api/vps/v1/virtual-machines/{id}/recreate | Recreate VM (destructive) |
PUT | /api/vps/v1/virtual-machines/{id}/hostname | Set hostname |
DELETE | /api/vps/v1/virtual-machines/{id}/hostname | Reset hostname |
PUT | /api/vps/v1/virtual-machines/{id}/root-password | Set root password |
PUT | /api/vps/v1/virtual-machines/{id}/panel-password | Set panel password |
PUT | /api/vps/v1/virtual-machines/{id}/nameservers | Set nameservers |
GET | /api/vps/v1/virtual-machines/{id}/metrics | Get metrics |
GET | /api/vps/v1/virtual-machines/{id}/public-keys | Get attached SSH keys |
GET | /api/vps/v1/virtual-machines/{id}/actions | Get action history |
GET | /api/vps/v1/virtual-machines/{id}/actions/{actionId} | Get action details |
| Method | Endpoint | Description |
|---|---|---|
GET | .../docker | List projects |
POST | .../docker | Create project |
GET | .../docker/{name} | Get project contents |
GET | .../docker/{name}/containers | Get containers with stats |
GET | .../docker/{name}/logs | Get project logs (last 300) |
POST | .../docker/{name}/start | Start project |
POST | .../docker/{name}/stop | Stop project |
POST | .../docker/{name}/restart | Restart project |
POST | .../docker/{name}/update | Update project |
DELETE | .../docker/{name}/down | Delete project (irreversible) |
| Method | Endpoint | Description |
|---|---|---|
GET | /api/vps/v1/firewall | List firewalls |
POST | /api/vps/v1/firewall | Create firewall |
GET | /api/vps/v1/firewall/{id} | Get firewall details |
DELETE | /api/vps/v1/firewall/{id} | Delete firewall |
POST | /api/vps/v1/firewall/{id}/rules | Create rule |
PUT | /api/vps/v1/firewall/{id}/rules/{ruleId} | Update rule |
DELETE | /api/vps/v1/firewall/{id}/rules/{ruleId} | Delete rule |
POST | /api/vps/v1/firewall/{id}/activate/{vmId} | Activate on VM |
POST | /api/vps/v1/firewall/{id}/deactivate/{vmId} | Deactivate on VM |
POST | /api/vps/v1/firewall/{id}/sync/{vmId} | Sync rules to VM |
| Method | Endpoint | Description |
|---|---|---|
GET/POST/DELETE | /api/vps/v1/public-keys | Manage SSH keys |
POST | /api/vps/v1/public-keys/attach/{vmId} | Attach keys to VM |
GET | /api/vps/v1/templates | List OS templates |
GET | /api/vps/v1/templates/{id} | Get template details |
GET/POST/PUT/DELETE | /api/vps/v1/post-install-scripts | Manage scripts |
GET | /api/vps/v1/data-centers | List data centers |
GET | .../backups | List backups |
POST | .../backups/{id}/restore | Restore backup |
GET/POST/DELETE | .../snapshot | Manage snapshot |
POST | .../snapshot/restore | Restore snapshot |
POST/DELETE | .../recovery | Start/stop recovery mode |
POST/DELETE | .../ptr/{ipId} | Manage PTR records |
GET/POST/DELETE | .../monarx | Manage malware scanner |
/mntdocker-compose.yaml in master branch/post_install, output goes to /post_install.loginitial state — run setup firstPOST .../firewall/{id}/sync/{vmId}GET .../docker/{name}/logsGET .../actions/{actionId}The following deep-dive guides are available in this skill directory:
deployment-workflow.md — SSH-first deployment workflow for Dockerized apps (7-step process, rollback strategy, verification levels)docker-patterns.md — Docker Compose deployment patterns (WordPress, Node+Redis+Postgres, Traefik SSL, lifecycle management)firewall-patterns.md — Common firewall configurations (web server, database, Docker host, mail server, TypeScript/PHP examples)terraform-examples.md — Infrastructure as Code with the Hostinger Terraform Provider (VPS provisioning, SSH keys, firewalls, complete infra example)Use when you need to drive a real browser to open a page, fill forms, click, screenshot, scrape, or test a login flow. Triggers on "automate the browser", "test the page", "scrape this site".
Use when the user says "lightpanda", "scrape this page", "headless browse", or "dump the DOM". Fast headless browser for rendering URLs without Chromium, scraping, and CDP automation.
Use when user says "does it work?", "screenshot the page", "show me the form", "check the checkout flow", or "open the browser". Drives Chromium/Firefox/WebKit via Playwright MCP to verify storefront/admin UI changes, reproduce reported UI bugs, test Medusa dev servers on localhost, or explore third-party sites.
Track resume versions, maintain one master resume, and manage per-job tailored copies. Use when user says "manage my resumes", "track resume versions", "which resume did I send", "master resume", "organize my resumes", or "version of my resume for this job".
Use when user says "extract text from pdf", "merge pdfs", "split a pdf", "fill out a pdf form", "extract tables from pdf", or "create a pdf". Complete PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
End-to-end pipeline that chains trendradar → article-writer → X thread → Higgsfield hero image → Postiz draft in a single shot, turning a current trend topic into a posted-ready social thread with a generated hero image. Use when user says "/trend-to-thread", "post a trend thread", "build a thread from trends", "új X thread mai trendből", or "Postiz X poszt mai trendekből".