Upload files to "/"

This commit is contained in:
August 2025-03-19 08:50:47 +00:00
commit 48146f64e6
3 changed files with 166 additions and 0 deletions

83
index.html Normal file
View File

@ -0,0 +1,83 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Virtual Machine Cost Calculator">
<title>VM Cost Calculator</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<h1>Virtual Machine Cost Calculator</h1>
<form id="vm-form">
<label for="memory">Memory (GB):</label>
<input type="number" id="memory" min="0" value="0">
<label for="vcpus">vCPUs:</label>
<input type="number" id="vcpus" min="0" value="0">
<label for="public-ip">Public IP Type:</label>
<select id="public-ip">
<option value="0">Shared (0€)</option>
<option value="10">Dedicated (10€)</option>
</select>
<label for="storage-type">Storage Type:</label>
<select id="storage-type">
<option value="0.15">HDD (0.15€/GB)</option>
<option value="0.3">SSD (0.3€/GB)</option>
<option value="0.075">Archival (0.075€/GB)</option>
<option value="0.1">Snapshot/Backup (0.1€/GB)</option>
</select>
<label for="storage-size">Storage Size (GB):</label>
<input type="number" id="storage-size" min="0" value="0">
<label for="network-speed">Network Speed:</label>
<select id="network-speed">
<option value="1">100Mbit/s (1€)</option>
<option value="5">1000Mbit/s (5€)</option>
</select>
<label for="os">Operating System:</label>
<select id="os">
<optgroup label="Ubuntu">
<option>Ubuntu 20.04</option>
<option>Ubuntu 22.04</option>
<option>Ubuntu 24.04</option>
</optgroup>
<optgroup label="Alpine Linux">
<option>Alpine Linux 3.19</option>
<option>Alpine Linux 3.20</option>
<option>Alpine Linux 3.21</option>
</optgroup>
<optgroup label="OpenBSD">
<option>OpenBSD 7.6</option>
</optgroup>
<optgroup label="Debian">
<option>Debian 11</option>
<option>Debian 12</option>
</optgroup>
<optgroup label="Fedora">
<option>Fedora 41</option>
</optgroup>
<optgroup label="Windows">
<option>Windows 10</option>
<option>Windows 11</option>
<option>Windows Server 2019</option>
<option>Windows Server 2022</option>
<option>Windows Server 2025</option>
</optgroup>
</select>
<button type="button" onclick="calculateCost()">Calculate Cost</button>
</form>
<h2 id="total-cost">Total Cost: 0€</h2>
</div>
<footer>
<p>Copyright © <a href="https://rspt.se" target="_blank">RyeSprint Enterprises</a> 2018-2025. All rights reserved.</p>
</footer>
<script src="script.js"></script>
</body>
</html>

16
script.js Normal file
View File

@ -0,0 +1,16 @@
function calculateCost() {
const memory = parseInt(document.getElementById('memory').value) * 5;
const vcpus = parseInt(document.getElementById('vcpus').value) * 8;
const publicIp = parseInt(document.getElementById('public-ip').value);
const storageType = parseFloat(document.getElementById('storage-type').value);
const storageSize = parseInt(document.getElementById('storage-size').value);
const storageCost = storageType * storageSize;
const networkSpeed = parseInt(document.getElementById('network-speed').value);
const os = document.getElementById('os').value;
const windowsFee = os.includes('Windows') ? 10 : 0;
const setupFee = 3;
const totalCost = memory + vcpus + publicIp + storageCost + networkSpeed + windowsFee + setupFee;
document.getElementById('total-cost').innerText = `Total Cost: ${totalCost.toFixed(2)}`;
}

67
styles.css Normal file
View File

@ -0,0 +1,67 @@
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 20px;
background: #f4f4f9;
display: flex;
flex-direction: column;
align-items: center;
min-height: 100vh;
}
.container {
max-width: 500px;
background: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
h1, h2 {
text-align: center;
}
form {
display: flex;
flex-direction: column;
gap: 10px;
}
label {
font-weight: bold;
}
input, select, button {
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1rem;
}
button {
background: #007bff;
color: white;
border: none;
cursor: pointer;
transition: background 0.2s;
}
button:hover {
background: #0056b3;
}
footer {
margin-top: 20px;
text-align: center;
font-size: 0.9rem;
color: #555;
}
footer a {
color: #007bff;
text-decoration: none;
}
footer a:hover {
text-decoration: underline;
}