|
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>DeployHub - Website Deployment Dashboard</title> |
|
<script src="https://cdn.tailwindcss.com"></script> |
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
|
<style> |
|
.gradient-bg { |
|
background: linear-gradient(135deg, #6e8efb, #a777e3); |
|
} |
|
.deploy-card:hover { |
|
transform: translateY(-5px); |
|
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); |
|
} |
|
.progress-bar { |
|
transition: width 0.5s ease-in-out; |
|
} |
|
.terminal { |
|
font-family: 'Courier New', monospace; |
|
background-color: #1e1e1e; |
|
color: #f8f8f2; |
|
} |
|
</style> |
|
</head> |
|
<body class="bg-gray-50 min-h-screen"> |
|
<div class="gradient-bg text-white"> |
|
<nav class="container mx-auto px-6 py-4 flex justify-between items-center"> |
|
<div class="flex items-center space-x-2"> |
|
<i class="fas fa-rocket text-2xl"></i> |
|
<span class="text-xl font-bold">DeployHub</span> |
|
</div> |
|
<div class="hidden md:flex space-x-8"> |
|
<a href="#" class="hover:text-gray-200">Dashboard</a> |
|
<a href="#" class="hover:text-gray-200">Projects</a> |
|
<a href="#" class="hover:text-gray-200">Deployments</a> |
|
<a href="#" class="hover:text-gray-200">Settings</a> |
|
</div> |
|
<div class="flex items-center space-x-4"> |
|
<button class="bg-white text-indigo-600 px-4 py-2 rounded-lg font-medium hover:bg-gray-100 transition"> |
|
<i class="fas fa-plus mr-2"></i>New Project |
|
</button> |
|
<div class="w-10 h-10 rounded-full bg-white flex items-center justify-center text-indigo-600 font-bold"> |
|
JD |
|
</div> |
|
</div> |
|
</nav> |
|
|
|
<header class="container mx-auto px-6 py-16 text-center"> |
|
<h1 class="text-4xl md:text-5xl font-bold mb-6">Deploy Your Website</h1> |
|
<p class="text-xl max-w-2xl mx-auto mb-8">Simple, fast and reliable website deployment with zero configuration</p> |
|
<div class="flex flex-col md:flex-row justify-center space-y-4 md:space-y-0 md:space-x-4"> |
|
<button class="bg-white text-indigo-600 px-8 py-3 rounded-lg font-medium hover:bg-gray-100 transition"> |
|
<i class="fas fa-play mr-2"></i>Deploy Now |
|
</button> |
|
<button class="bg-transparent border-2 border-white text-white px-8 py-3 rounded-lg font-medium hover:bg-white hover:text-indigo-600 transition"> |
|
<i class="fas fa-book mr-2"></i>Documentation |
|
</button> |
|
</div> |
|
</header> |
|
</div> |
|
|
|
<main class="container mx-auto px-6 py-12 -mt-12"> |
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-8"> |
|
|
|
<div class="bg-white rounded-xl shadow-lg p-6 deploy-card transition duration-300"> |
|
<div class="flex justify-between items-center mb-4"> |
|
<h3 class="text-lg font-semibold">Static Website</h3> |
|
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded-full">Live</span> |
|
</div> |
|
<p class="text-gray-600 mb-6">Deploy HTML, CSS, and JavaScript files with global CDN</p> |
|
<div class="mb-4"> |
|
<div class="flex justify-between text-sm text-gray-500 mb-1"> |
|
<span>Storage</span> |
|
<span>1.2GB / 5GB</span> |
|
</div> |
|
<div class="w-full bg-gray-200 rounded-full h-2"> |
|
<div class="bg-blue-500 h-2 rounded-full progress-bar" style="width: 24%"></div> |
|
</div> |
|
</div> |
|
<button class="w-full bg-indigo-600 text-white py-2 rounded-lg hover:bg-indigo-700 transition"> |
|
<i class="fas fa-upload mr-2"></i>Deploy Files |
|
</button> |
|
</div> |
|
|
|
|
|
<div class="bg-white rounded-xl shadow-lg p-6 deploy-card transition duration-300"> |
|
<div class="flex justify-between items-center mb-4"> |
|
<h3 class="text-lg font-semibold">Node.js App</h3> |
|
<span class="bg-yellow-100 text-yellow-800 text-xs px-2 py-1 rounded-full">Building</span> |
|
</div> |
|
<p class="text-gray-600 mb-6">Deploy server-side JavaScript applications with npm support</p> |
|
<div class="mb-4"> |
|
<div class="flex justify-between text-sm text-gray-500 mb-1"> |
|
<span>Build Progress</span> |
|
<span>65%</span> |
|
</div> |
|
<div class="w-full bg-gray-200 rounded-full h-2"> |
|
<div class="bg-yellow-500 h-2 rounded-full progress-bar" style="width: 65%"></div> |
|
</div> |
|
</div> |
|
<button class="w-full bg-gray-200 text-gray-700 py-2 rounded-lg cursor-not-allowed" disabled> |
|
<i class="fas fa-cog fa-spin mr-2"></i>Building... |
|
</button> |
|
</div> |
|
|
|
|
|
<div class="bg-white rounded-xl shadow-lg p-6 deploy-card transition duration-300"> |
|
<div class="flex justify-between items-center mb-4"> |
|
<h3 class="text-lg font-semibold">Database</h3> |
|
<span class="bg-blue-100 text-blue-800 text-xs px-2 py-1 rounded-full">Ready</span> |
|
</div> |
|
<p class="text-gray-600 mb-6">Set up PostgreSQL, MySQL, or MongoDB databases</p> |
|
<div class="mb-4"> |
|
<div class="flex justify-between text-sm text-gray-500 mb-1"> |
|
<span>Connections</span> |
|
<span>12 active</span> |
|
</div> |
|
<div class="w-full bg-gray-200 rounded-full h-2"> |
|
<div class="bg-purple-500 h-2 rounded-full progress-bar" style="width: 60%"></div> |
|
</div> |
|
</div> |
|
<button class="w-full bg-indigo-600 text-white py-2 rounded-lg hover:bg-indigo-700 transition"> |
|
<i class="fas fa-database mr-2"></i>Configure |
|
</button> |
|
</div> |
|
</div> |
|
|
|
|
|
<section class="mt-16"> |
|
<h2 class="text-2xl font-bold mb-6">Recent Deployments</h2> |
|
<div class="bg-white rounded-xl shadow-lg overflow-hidden"> |
|
<div class="overflow-x-auto"> |
|
<table class="min-w-full divide-y divide-gray-200"> |
|
<thead class="bg-gray-50"> |
|
<tr> |
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Project</th> |
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th> |
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Commit</th> |
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Date</th> |
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Actions</th> |
|
</tr> |
|
</thead> |
|
<tbody class="bg-white divide-y divide-gray-200"> |
|
<tr> |
|
<td class="px-6 py-4 whitespace-nowrap"> |
|
<div class="flex items-center"> |
|
<div class="flex-shrink-0 h-10 w-10 bg-indigo-100 rounded-full flex items-center justify-center text-indigo-600"> |
|
<i class="fas fa-globe"></i> |
|
</div> |
|
<div class="ml-4"> |
|
<div class="text-sm font-medium text-gray-900">Portfolio Website</div> |
|
<div class="text-sm text-gray-500">https://portfolio.johndoe.com</div> |
|
</div> |
|
</div> |
|
</td> |
|
<td class="px-6 py-4 whitespace-nowrap"> |
|
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Success</span> |
|
</td> |
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">a1b2c3d</td> |
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">2 hours ago</td> |
|
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium"> |
|
<a href="#" class="text-indigo-600 hover:text-indigo-900 mr-3">View</a> |
|
<a href="#" class="text-indigo-600 hover:text-indigo-900">Redeploy</a> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="px-6 py-4 whitespace-nowrap"> |
|
<div class="flex items-center"> |
|
<div class="flex-shrink-0 h-10 w-10 bg-blue-100 rounded-full flex items-center justify-center text-blue-600"> |
|
<i class="fas fa-server"></i> |
|
</div> |
|
<div class="ml-4"> |
|
<div class="text-sm font-medium text-gray-900">API Service</div> |
|
<div class="text-sm text-gray-500">https://api.johndoe.com</div> |
|
</div> |
|
</div> |
|
</td> |
|
<td class="px-6 py-4 whitespace-nowrap"> |
|
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-yellow-100 text-yellow-800">Building</span> |
|
</td> |
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">e4f5g6h</td> |
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">15 minutes ago</td> |
|
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium"> |
|
<a href="#" class="text-indigo-600 hover:text-indigo-900 mr-3">Logs</a> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="px-6 py-4 whitespace-nowrap"> |
|
<div class="flex items-center"> |
|
<div class="flex-shrink-0 h-10 w-10 bg-purple-100 rounded-full flex items-center justify-center text-purple-600"> |
|
<i class="fas fa-shopping-cart"></i> |
|
</div> |
|
<div class="ml-4"> |
|
<div class="text-sm font-medium text-gray-900">E-commerce Store</div> |
|
<div class="text-sm text-gray-500">https://store.johndoe.com</div> |
|
</div> |
|
</div> |
|
</td> |
|
<td class="px-6 py-4 whitespace-nowrap"> |
|
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">Failed</span> |
|
</td> |
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">i7j8k9l</td> |
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">1 day ago</td> |
|
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium"> |
|
<a href="#" class="text-indigo-600 hover:text-indigo-900 mr-3">Debug</a> |
|
<a href="#" class="text-indigo-600 hover:text-indigo-900">Retry</a> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
</div> |
|
</div> |
|
</section> |
|
|
|
|
|
<section class="mt-16"> |
|
<h2 class="text-2xl font-bold mb-6">Deployment Terminal</h2> |
|
<div class="terminal rounded-xl shadow-lg overflow-hidden"> |
|
<div class="px-4 py-3 bg-gray-800 flex items-center"> |
|
<div class="flex space-x-2 mr-4"> |
|
<div class="w-3 h-3 rounded-full bg-red-500"></div> |
|
<div class="w-3 h-3 rounded-full bg-yellow-500"></div> |
|
<div class="w-3 h-3 rounded-full bg-green-500"></div> |
|
</div> |
|
<div class="text-sm text-gray-400">bash ~/projects/portfolio-website</div> |
|
</div> |
|
<div class="p-4"> |
|
<div class="mb-2"> |
|
<span class="text-green-400">$</span> |
|
<span class="text-gray-400 ml-2">git push deploy main</span> |
|
</div> |
|
<div class="text-blue-400 mb-2">Enumerating objects: 15, done.</div> |
|
<div class="text-blue-400 mb-2">Counting objects: 100% (15/15), done.</div> |
|
<div class="text-blue-400 mb-2">Delta compression using up to 8 threads</div> |
|
<div class="text-blue-400 mb-2">Compressing objects: 100% (10/10), done.</div> |
|
<div class="text-blue-400 mb-2">Writing objects: 100% (10/10), 1.45 KiB | 1.45 MiB/s, done.</div> |
|
<div class="text-blue-400 mb-2">Total 10 (delta 5), reused 0 (delta 0)</div> |
|
<div class="text-green-400 mb-2">remote: Starting build...</div> |
|
<div class="text-green-400 mb-2">remote: Installing dependencies...</div> |
|
<div class="text-yellow-400 mb-2">remote: npm install</div> |
|
<div class="text-gray-400 mb-2">added 125 packages in 2.345s</div> |
|
<div class="text-green-400 mb-2">remote: Building application...</div> |
|
<div class="text-green-400 mb-2">remote: Deployment complete!</div> |
|
<div class="text-green-400 font-bold mb-2">remote: Your site is live at https://portfolio-abc123.deployhub.app</div> |
|
<div class="text-gray-400">To https://deployhub.app/portfolio-website.git</div> |
|
<div class="text-gray-400">a1b2c3d..e4f5g6h main -> main</div> |
|
<div class="mt-4"> |
|
<span class="text-green-400">$</span> |
|
<span class="text-gray-400 ml-2"><span class="cursor-blink">_</span></span> |
|
</div> |
|
</div> |
|
</div> |
|
</section> |
|
</main> |
|
|
|
<footer class="bg-gray-100 mt-16 py-12"> |
|
<div class="container mx-auto px-6"> |
|
<div class="grid grid-cols-1 md:grid-cols-4 gap-8"> |
|
<div> |
|
<h3 class="text-lg font-semibold mb-4">DeployHub</h3> |
|
<p class="text-gray-600">The simplest way to deploy your websites and web applications with global scale.</p> |
|
</div> |
|
<div> |
|
<h3 class="text-lg font-semibold mb-4">Features</h3> |
|
<ul class="space-y-2"> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">Static Hosting</a></li> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">Serverless Functions</a></li> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">Edge Network</a></li> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">Automatic SSL</a></li> |
|
</ul> |
|
</div> |
|
<div> |
|
<h3 class="text-lg font-semibold mb-4">Resources</h3> |
|
<ul class="space-y-2"> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">Documentation</a></li> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">Guides</a></li> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">API Reference</a></li> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">Community</a></li> |
|
</ul> |
|
</div> |
|
<div> |
|
<h3 class="text-lg font-semibold mb-4">Company</h3> |
|
<ul class="space-y-2"> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">About</a></li> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">Blog</a></li> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">Careers</a></li> |
|
<li><a href="#" class="text-gray-600 hover:text-indigo-600">Contact</a></li> |
|
</ul> |
|
</div> |
|
</div> |
|
<div class="border-t border-gray-200 mt-12 pt-8 flex flex-col md:flex-row justify-between items-center"> |
|
<p class="text-gray-500">© 2023 DeployHub. All rights reserved.</p> |
|
<div class="flex space-x-6 mt-4 md:mt-0"> |
|
<a href="#" class="text-gray-500 hover:text-indigo-600"><i class="fab fa-twitter"></i></a> |
|
<a href="#" class="text-gray-500 hover:text-indigo-600"><i class="fab fa-github"></i></a> |
|
<a href="#" class="text-gray-500 hover:text-indigo-600"><i class="fab fa-linkedin"></i></a> |
|
<a href="#" class="text-gray-500 hover:text-indigo-600"><i class="fab fa-discord"></i></a> |
|
</div> |
|
</div> |
|
</div> |
|
</footer> |
|
|
|
<script> |
|
|
|
function blinkCursor() { |
|
const cursor = document.querySelector('.cursor-blink'); |
|
if (cursor) { |
|
setInterval(() => { |
|
cursor.style.visibility = cursor.style.visibility === 'hidden' ? 'visible' : 'hidden'; |
|
}, 500); |
|
} |
|
} |
|
|
|
|
|
function simulateDeployment() { |
|
const progressBar = document.querySelector('.deploy-card:nth-child(2) .progress-bar'); |
|
if (progressBar) { |
|
let width = 65; |
|
const interval = setInterval(() => { |
|
width += Math.random() * 5; |
|
if (width >= 100) { |
|
width = 100; |
|
clearInterval(interval); |
|
|
|
|
|
const statusElement = document.querySelector('.deploy-card:nth-child(2) span'); |
|
if (statusElement) { |
|
statusElement.className = 'px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800'; |
|
statusElement.textContent = 'Success'; |
|
|
|
|
|
const button = document.querySelector('.deploy-card:nth-child(2) button'); |
|
if (button) { |
|
button.innerHTML = '<i class="fas fa-eye mr-2"></i>View Deployment'; |
|
button.className = 'w-full bg-indigo-600 text-white py-2 rounded-lg hover:bg-indigo-700 transition'; |
|
button.disabled = false; |
|
} |
|
} |
|
} |
|
progressBar.style.width = `${width}%`; |
|
|
|
|
|
const percentText = document.querySelector('.deploy-card:nth-child(2) span:nth-child(2)'); |
|
if (percentText) { |
|
percentText.textContent = `${Math.floor(width)}%`; |
|
} |
|
}, 800); |
|
} |
|
} |
|
|
|
|
|
document.addEventListener('DOMContentLoaded', () => { |
|
blinkCursor(); |
|
simulateDeployment(); |
|
|
|
|
|
document.querySelectorAll('.deploy-card button').forEach(button => { |
|
if (!button.disabled) { |
|
button.addEventListener('click', () => { |
|
alert('Deployment process started! Check the terminal for progress.'); |
|
}); |
|
} |
|
}); |
|
}); |
|
</script> |
|
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Hamado/my-app" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
|
</html> |