Upload files to "/"
This commit is contained in:
		
							
								
								
									
										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; | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user