julien-infra-hostinger-core

Core server management for Hostinger VPS srv759970 - SSH access, system status, maintenance tasks, and disk space reclamation. Use for any server operation, connection issues, or maintenance tasks.

$ 安裝

git clone https://github.com/majiayu000/claude-skill-registry /tmp/claude-skill-registry && cp -r /tmp/claude-skill-registry/skills/data/julien-infra-hostinger-core ~/.claude/skills/claude-skill-registry

// tip: Run this command in your terminal to install the skill


name: julien-infra-hostinger-core description: Core server management for Hostinger VPS srv759970 - SSH access, system status, maintenance tasks, and disk space reclamation. Use for any server operation, connection issues, or maintenance tasks. license: Apache-2.0 triggers:

  • ssh hostinger
  • connect server
  • disk space
  • server maintenance
  • cleanup vps
  • free space
  • system status

Hostinger VPS Core Management

Core infrastructure management for srv759970.hstgr.cloud.

Server Info

PropertyValue
Host69.62.108.82
Userautomation (sudo, no reboot)
Aliassrv759970
OSUbuntu 24.04 LTS
Disk193 GB total
RAM16 GB

1. SSH Connection

Quick Connect

ssh automation@69.62.108.82
# Or with alias
ssh srv759970

SSH Config (~/.ssh/config)

Host srv759970
    HostName 69.62.108.82
    User automation
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes
    ServerAliveInterval 60

Fix Permission Denied (Windows)

$keyPath = "$env:USERPROFILE\.ssh\id_ed25519"
$acl = Get-Acl $keyPath
$acl.SetAccessRuleProtection($true, $false)
$acl.Access | ForEach-Object { $acl.RemoveAccessRule($_) | Out-Null }
$user = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($user, "FullControl", "Allow")
$acl.AddAccessRule($rule)
Set-Acl $keyPath $acl

2. System Status

Quick Status Check

ssh srv759970 'free -h && df -h && uptime'

Disk Space

ssh srv759970 'df -h | grep -E "Filesystem|/dev/"'
ssh srv759970 'du -sh /opt/* 2>/dev/null | sort -rh | head -10'

Thresholds: < 20 GB = Warning, < 10 GB = Critical

Memory Usage

ssh srv759970 'free -h'
ssh srv759970 'docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}" | head -15'

Services Status

ssh srv759970 'docker ps --format "table {{.Names}}\t{{.Status}}"'
ssh srv759970 'systemctl status nginx docker'
ssh srv759970 'pm2 list'

3. Weekly Maintenance

Docker Cleanup (Safe)

ssh srv759970 << 'EOF'
echo "=== Docker Cleanup ==="
docker system df
docker image prune -f
docker volume prune -f
docker system df
EOF

Never run docker system prune -a (breaks auto-start)

System Health Check

ssh srv759970 << 'EOF'
echo "=== Health Check ==="
df -h /
free -h
docker ps -a --filter "status=exited" --format '{{.Names}}'
sudo certbot certificates | grep -E "Certificate Name|Expiry Date"
EOF

4. Space Reclamation

Phase 1: Safe Cleanup (No approval needed)

ssh srv759970 << 'EOF'
# Dangling images (~1GB)
docker image prune -f

# Journal logs (~400MB)
sudo journalctl --vacuum-size=100M

# Safe log cleanup
sudo truncate -s 0 /var/log/rclone-music.log
sudo truncate -s 0 /var/log/nginx-auto-docker.log
EOF

Phase 2: Moderate Cleanup (Ask user first)

# Old Docker images (>30 days)
docker image prune -a --filter 'until=720h'

# Unused volumes
docker volume prune -f

Emergency Cleanup (< 5 GB available)

ssh srv759970 << 'EOF'
# Find large files
find /opt -type f -size +100M -exec ls -lh {} \; 2>/dev/null | head -20

# Large container logs
find /var/lib/docker/containers -name "*-json.log" -exec ls -lh {} \; | sort -k5 -hr | head -10

# Aggressive cleanup
docker system prune -f
sudo apt clean
EOF

5. Troubleshooting

SSH Connection Issues

ProblemSolution
Permission deniedFix key permissions (see above)
Connection timeoutCheck ping 69.62.108.82
Host key changedssh-keygen -R 69.62.108.82

View Logs

ssh srv759970 'sudo journalctl -n 100 --no-pager'
ssh srv759970 'sudo journalctl -u nginx -n 50'

Automation User Restrictions

CAN: Docker, Nginx, services, SSL, packages, file permissions CANNOT: Reboot, shutdown, modify sudo config


Quick Reference

# Connect
ssh automation@69.62.108.82

# Status
ssh srv759970 'free -h && df -h && uptime'

# Docker
ssh srv759970 'docker ps && docker system df'

# Cleanup
ssh srv759970 'docker image prune -f && sudo journalctl --vacuum-size=100M'

# Logs
ssh srv759970 'sudo journalctl -n 100'