Upload files to "/"
This commit is contained in:
commit
48146f64e6
83
index.html
Normal file
83
index.html
Normal 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
16
script.js
Normal 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
67
styles.css
Normal 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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user