# VPS Instances Overview

Virtual Private Servers (VPS) on DanubeData provide flexible, scalable compute resources for your applications.

## What are VPS Instances?

VPS instances (also called "Pods" in the DanubeData interface) are virtual machines that give you:

- Full root access via SSH
- Choice of Linux distributions
- Customizable resource profiles
- Persistent storage
- Public and private networking

## Key Features

### 🖥️ Multiple OS Options
- Ubuntu 26.04, 24.04, 22.04 LTS
- Debian 13, 12, 11
- AlmaLinux 9, 8
- Rocky Linux 9, 8
- Fedora 42, 41
- Alpine 3.22, 3.21, 3.20
- Windows Server 2025 (BYOL)

### ⚡ High Performance
- NVMe storage for fast I/O
- Dedicated vCPUs
- ECC RAM
- 1 Gbps network

### 📊 Monitoring & Metrics
- Real-time CPU usage
- Memory utilization
- Disk I/O
- Network traffic

### 🔒 Security
- Firewall integration
- SSH key or password authentication
- Private networking
- Automatic DDoS protection & network-layer threat blocking
- Automatic security updates

## Use Cases

- **Web Hosting**: Host websites and web applications
- **Application Servers**: Run backend services and APIs
- **Development**: Create isolated development environments
- **CI/CD**: Build and deployment servers
- **Microservices**: Deploy containerized applications

## Getting Started

### 1. Create a VPS Instance

1. Navigate to **Pods** in the main menu
2. Click **Create Pod**
3. Configure your instance:
   - Choose an operating system
   - Select a resource profile
   - Add your SSH key
   - Configure networking
4. Click **Create Pod**

Your VPS will be ready in 3-5 minutes.

### 2. Connect via SSH

Once your VPS is running:

```bash
ssh root@your-vps-ip
```

### 3. Install Software

Use your OS package manager to install software:

```bash
# Ubuntu/Debian
apt update && apt install nginx

# AlmaLinux/Rocky/Fedora
yum install nginx
```

## Resource Profiles

Choose a profile based on your needs:

### Shared CPU (Best Value - 4:1 overcommit)

| Profile | vCPUs | RAM | Storage | Monthly |
|---------|-------|-----|---------|---------|
| Nano (Shared) | 2 | 2 GB | 20 GB | €4.49 |
| Micro (Shared) | 3 | 4 GB | 40 GB | €7.49 |
| Small (Shared) | 4 | 8 GB | 80 GB | €12.49 |
| Medium (Shared) | 8 | 16 GB | 160 GB | €24.99 |
| Large (Shared) | 16 | 32 GB | 320 GB | €49.99 |

### Dedicated CPU (Guaranteed Resources)

| Profile | vCPUs | RAM | Storage | Monthly |
|---------|-------|-----|---------|---------|
| Nano | 2 | 2 GB | 40 GB | €8.99 |
| Micro | 3 | 4 GB | 80 GB | €14.99 |
| Small | 4 | 8 GB | 160 GB | €24.99 |
| Medium | 8 | 16 GB | 320 GB | €49.99 |
| Large | 16 | 32 GB | 640 GB | €99.99 |

## Networking

### Public IP (IPv4 & IPv6)
Every VPS is **dual-stack by default**, receiving both a public IPv4 and a public IPv6 address. At create time you can choose the network stack:

- **Dual Stack** (recommended) — IPv4 + IPv6 for maximum compatibility
- **IPv4 Only**
- **IPv6 Only** — for modern IPv6-native networks

IPv6 can also be added to an **existing** VPS later — new and existing instances both support it. IPv4 and IPv6 addresses are shown with copy buttons on the instance page and in the Pods list.

### Private Networking
Connect your VPS to other instances via private networks:
- No internet exposure
- Free internal traffic
- Low latency

### Firewalls
Attach firewalls to control traffic:
- Inbound rules
- Outbound rules
- IP whitelisting

### Automatic DDoS Protection
Every VPS is protected by always-on DDoS detection and mitigation at the network level — **no configuration required**. Public IPs also receive automated network-layer threat protection that blocks traffic from known malicious sources. When a VPS is deleted, its IP is cleaned before reuse so a new instance never inherits an old block.

## Storage

### Root Volume
- NVMe storage for OS and applications
- Size based on resource profile
- Included in instance pricing

### Additional Volumes
- Attach additional [storage volumes](https://docs.danubedata.ro/volumes)
- Expand storage independently
- Snapshot and restore

## Snapshots

Create point-in-time snapshots:

1. Go to your VPS instance page
2. Click **Snapshots** tab
3. Click **Create Snapshot**
4. Enter a name and description
5. Click **Create**

Snapshots can be used to:
- Backup before major changes
- Clone a snapshot into a brand-new instance
- Restore after a failed change

**Automated daily snapshots** run for every running instance and are kept for a rolling retention window, so you always have a recent recovery point without any setup. Snapshots are also copied offsite for 3-2-1-compliant backups. See [VPS Snapshots](https://docs.danubedata.ro/vps-snapshots) for the full guide.

## Operations

### Start/Stop
Control your instance state:
- **Stop**: Shut down the instance (still billed at full rate — delete to stop billing)
- **Start**: Boot the instance
- **Force Stop**: Force-kill an instance that is stuck in a transitional state

### Reboot
Restart your instance from the dashboard.

### Reinstall OS
Wipe and reinstall the operating system on the same instance — this re-runs your cloud-init script and **erases all data on the disk**.

### Redeploy
Re-run deployment for an instance stuck in an error or pending state, with detailed logs.

### Resize
Change your resource profile — or fine-tune CPU, memory, and disk — from the instance's **Edit** page, with a live price estimate. See [Resource Profiles](https://docs.danubedata.ro/vps-profiles#resizing). Disk can be grown but not shrunk.

### VNC Console
Open a full **graphical** console to your VPS directly in the browser — no SSH required. Useful for emergency access, boot troubleshooting, or when SSH is unavailable.

## Monitoring

Track your VPS performance. Every instance keeps **7 days of historical metrics**, and CPU/memory reporting inside the VM reflects your instance's real limits (not the host's).

### CPU Usage
Monitor CPU utilization and identify bottlenecks.

### Memory Usage
Track RAM usage and swap activity.

### Disk I/O
Measure read/write operations and IOPS.

### Network Traffic
Monitor bandwidth usage (inbound/outbound), with up to 7 days of history. A **traffic visualizer** breaks connections down by flow, and inbound traffic is enriched with source-reputation data so you can spot suspicious sources at a glance.

You can also set [metric alerts](https://docs.danubedata.ro/monitoring-alerting) on CPU, memory, and disk, and the platform continuously health-monitors your instances and emails your team if one runs into trouble.

## Best Practices

### Security
1. Use SSH keys (disable password auth)
2. Keep software updated
3. Configure firewall rules
4. Use fail2ban for brute-force protection
5. Enable automatic security updates

### Performance
1. Monitor resource usage regularly
2. Optimize applications for your profile
3. Use caching where possible
4. Implement CDN for static content

### Reliability
1. Take regular snapshots
2. Use automation for deployments
3. Monitor with external services
4. Implement health checks

### Cost Optimization
1. Delete instances you no longer need (stopped instances are still billed at the full rate)
2. Right-size your resources — resize down if you're consistently under-utilized
3. Pool traffic across instances; only public egress counts toward your included quota

## Troubleshooting

### Can't Connect via SSH
1. Check firewall rules
2. Verify SSH key is correct
3. Use web console for access
4. Check SSH service status

### High CPU Usage
1. Identify process with `top` or `htop`
2. Check for runaway processes
3. Consider upgrading to larger profile

### Out of Disk Space
1. Check usage with `df -h`
2. Clean up logs: `/var/log/`
3. Remove old packages
4. Consider adding storage volume

## Next Steps

- [Creating VPS Instances](https://docs.danubedata.ro/vps-creating)
- [Managing VPS](https://docs.danubedata.ro/vps-managing)
- [SSH Key Setup](https://docs.danubedata.ro/vps-ssh)
- [VPS Snapshots](https://docs.danubedata.ro/vps-snapshots)

Need help? Contact our support team through the dashboard.

