mirror of
https://github.com/psviderski/uncloud.git
synced 2026-08-26 19:13:34 +00:00
643 lines
44 KiB
HTML
643 lines
44 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Deploy Docker apps on your own infrastructure | Uncloud</title>
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<link href="./style.css" rel="stylesheet">
|
|
<link rel="apple-touch-icon" href="./images/apple-touch-icon.png" sizes="180x180"/>
|
|
<link rel="icon" type="image/svg+xml" href="./images/logo.svg"/>
|
|
<link rel="alternate icon" type="image/png" href="./images/favicon.png" sizes="96x96"/>
|
|
</head>
|
|
|
|
<body class="font-inter antialiased bg-white text-zinc-900 tracking-tight">
|
|
|
|
<!-- Page wrapper -->
|
|
<div class="flex flex-col min-h-screen overflow-hidden supports-[overflow:clip]:overflow-clip">
|
|
|
|
<!-- Site header -->
|
|
<header class="absolute top-2 md:top-6 w-full z-30">
|
|
<div class="max-w-6xl mx-auto px-4 sm:px-6">
|
|
<div class="flex items-center justify-between h-14">
|
|
<!-- Site branding -->
|
|
<div class="shrink-0 mr-4">
|
|
<a class="flex items-center" href="index.html">
|
|
<img class="w-8 h-8 rounded shadow-sm shadow-zinc-950/20" src="./images/logo.svg" alt="Logo">
|
|
<span class="ml-2 font-semibold text-lg text-zinc-900">uncloud</span>
|
|
</a>
|
|
</div>
|
|
|
|
<!-- Navigation links -->
|
|
<nav class="flex grow">
|
|
<ul class="flex grow justify-end flex-wrap items-center">
|
|
<li>
|
|
<a class="text-sm font-medium text-zinc-500 hover:text-zinc-900 px-3 lg:px-5 py-2 flex items-center transition"
|
|
href="https://github.com/psviderski/uncloud">
|
|
<svg class="w-4 h-4 mr-1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
|
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
|
stroke-linejoin="round">
|
|
<path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"/>
|
|
<path d="M9 18c-4.51 2-5-2-7-2"/>
|
|
</svg>
|
|
<span class="ml-1 hidden sm:inline">View Source</span>
|
|
</a>
|
|
</li>
|
|
<li class="ml-1">
|
|
<a class="btn-sm text-zinc-100 bg-zinc-900 hover:bg-zinc-800 w-full shadow"
|
|
href="https://github.com/psviderski/uncloud">Get Started</a>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
<!-- Page content -->
|
|
<main class="grow">
|
|
|
|
<!-- Hero -->
|
|
<section
|
|
class="relative before:absolute before:inset-0 before:h-80 before:pointer-events-none before:bg-gradient-to-b before:from-zinc-100 before:-z-10">
|
|
<div class="pt-32 pb-12 md:pt-40 md:pb-20">
|
|
<!-- Section content -->
|
|
<div class="px-4 sm:px-6">
|
|
<div class="max-w-3xl mx-auto">
|
|
<div class="text-center pb-12 md:pb-16">
|
|
<h1 class="font-inter-tight text-4xl md:text-5xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-zinc-500 via-zinc-900 to-zinc-900 pb-4">
|
|
Run on your servers<br>
|
|
Cut cloud costs
|
|
</h1>
|
|
<p class="text-lg text-zinc-500 mb-8">
|
|
Uncloud is a lightweight Docker clustering tool for running web apps on your own servers
|
|
— from cloud VMs to bare metal.
|
|
Replace Heroku and Render, no Kubernetes required.
|
|
</p>
|
|
<div class="max-w-xs mx-auto sm:max-w-none sm:inline-flex sm:justify-center space-y-4 sm:space-y-0 sm:space-x-4">
|
|
<div>
|
|
<a class="btn text-zinc-100 bg-zinc-900 hover:bg-zinc-800 w-full shadow"
|
|
href="quickstart.html">Quick Start</a>
|
|
</div>
|
|
<div>
|
|
<a class="btn text-zinc-600 bg-white hover:text-zinc-900 w-full shadow flex items-center justify-center"
|
|
href="https://github.com/yourusername/uncloud">
|
|
<svg class="w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
|
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
|
stroke-linejoin="round">
|
|
<path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"/>
|
|
<path d="M9 18c-4.51 2-5-2-7-2"/>
|
|
</svg>
|
|
Star on GitHub
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="max-w-3xl mx-auto px-4 sm:px-6 flex justify-center pb-12 relative before:absolute before:-top-12 before:w-96 before:h-96 before:bg-zinc-900 before:opacity-[.15] before:rounded-full before:blur-3xl before:-z-10">
|
|
<div class="coding w-full bg-zinc-800 rounded-lg border border-zinc-700/50 shadow-2xl">
|
|
<!-- Title bar -->
|
|
<div class="pl-4 pt-4 flex items-center">
|
|
<div class="flex gap-2">
|
|
<div class="w-2.5 h-2.5 rounded-full bg-red-500"></div>
|
|
<div class="w-2.5 h-2.5 rounded-full bg-yellow-500"></div>
|
|
<div class="w-2.5 h-2.5 rounded-full bg-green-500"></div>
|
|
</div>
|
|
</div>
|
|
<!-- Terminal content -->
|
|
<div class="p-4 text-sm sm:p-6 sm:text-[0.9375rem] text-white overflow-x-auto">
|
|
<pre class="text-zinc-500 select-none"># Start with any cloud VM or your own hardware</pre>
|
|
<pre><span class="text-emerald-500 select-none">$ </span>uc machine init root@137.123.45.67</pre>
|
|
|
|
<pre> </pre>
|
|
<pre class="text-zinc-500 select-none"># Deploy your app with automatic HTTPS</pre>
|
|
<pre><span class="text-emerald-500 select-none">$ </span>uc run --name my-app -p app.example.com:8000/https registry/app</pre>
|
|
<pre class="text-zinc-200">✨ Your app is available at <span class="underline">https://app.example.com</span></pre>
|
|
|
|
<pre> </pre>
|
|
<pre class="text-zinc-500 select-none"># Achieve high availability by adding more machines and scaling the app</pre>
|
|
<pre><span
|
|
class="text-emerald-500 select-none">$ </span>uc machine add ubuntu@65.21.45.67</pre>
|
|
<pre><span class="text-emerald-500 select-none">$ </span>uc scale my-app --replicas 2</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Value proposition -->
|
|
<section class="relative bg-zinc-50">
|
|
<div class="py-12 md:py-20">
|
|
<div class="max-w-6xl mx-auto px-4 sm:px-6">
|
|
<div class="max-w-3xl mx-auto text-center pb-12 md:pb-20">
|
|
<h2 class="font-inter-tight text-3xl md:text-4xl font-bold text-zinc-900 mb-4">
|
|
Cloud-like experience you control
|
|
</h2>
|
|
<p class="text-lg text-zinc-500">
|
|
Keep the Docker workflows you love while optimizing infrastructure costs
|
|
</p>
|
|
</div>
|
|
|
|
<div class="max-w-xs mx-auto sm:max-w-none grid sm:grid-cols-2 md:grid-cols-3 gap-8 sm:gap-4 lg:gap-8">
|
|
<!-- Mix and Match Infrastructure -->
|
|
<article
|
|
class="flex flex-col border border-transparent [background:linear-gradient(theme(colors.white),theme(colors.zinc.50))_padding-box,linear-gradient(120deg,theme(colors.zinc.300),theme(colors.zinc.100),theme(colors.zinc.300))_border-box] rounded-lg">
|
|
<div class="grow flex flex-col p-5 pt-6">
|
|
<div class="flex items-center space-x-3 mb-4">
|
|
<svg class="inline-flex stroke-zinc-400 shrink-0" xmlns="http://www.w3.org/2000/svg"
|
|
width="20" height="20" fill="none"
|
|
stroke-width="2" viewBox="0 0 24 24">
|
|
<rect width="8" height="8" x="2" y="2" rx="1"/>
|
|
<rect width="9" height="8" x="13" y="2" rx="1"/>
|
|
<rect width="11" height="9" x="2" y="13" rx="1"/>
|
|
<rect width="6" height="9" x="16" y="13" rx="1"/>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-900">
|
|
Mix and Match Infrastructure
|
|
</h3>
|
|
</div>
|
|
<div class="text-sm text-zinc-500">
|
|
<ul class="space-y-3">
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Mix and match cloud and on-premise across regions and providers
|
|
</li>
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Deploy customer-facing apps on reliable cloud VMs
|
|
</li>
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Run resource-hungry background jobs on budget-friendly bare metal servers
|
|
</li>
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Transform that dusty Mac mini into a powerful staging environment
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</article>
|
|
|
|
<!-- Effortless Operation -->
|
|
<article
|
|
class="flex flex-col border border-transparent [background:linear-gradient(theme(colors.white),theme(colors.zinc.50))_padding-box,linear-gradient(120deg,theme(colors.zinc.300),theme(colors.zinc.100),theme(colors.zinc.300))_border-box] rounded-lg">
|
|
<div class="grow flex flex-col p-5 pt-6">
|
|
<div class="flex items-center space-x-3 mb-4">
|
|
<svg class="inline-flex fill-zinc-400 shrink-0" xmlns="http://www.w3.org/2000/svg"
|
|
width="20"
|
|
height="20" viewBox="0 0 24 24">
|
|
<path d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-900">Effortless Operation</h3>
|
|
</div>
|
|
<div class="text-sm text-zinc-500">
|
|
<ul class="space-y-3">
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Zero-config distributed Docker cluster
|
|
</li>
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
No control plane to manage
|
|
</li>
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Keep apps running even when machines go offline
|
|
</li>
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Battle-tested WireGuard networking connects all your machines and workloads
|
|
right out of the box
|
|
</li>
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Automatic HTTPS for your domains using Let's Encrypt
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</article>
|
|
|
|
<!-- Developer Experience -->
|
|
<article
|
|
class="flex flex-col border border-transparent [background:linear-gradient(theme(colors.white),theme(colors.zinc.50))_padding-box,linear-gradient(120deg,theme(colors.zinc.300),theme(colors.zinc.100),theme(colors.zinc.300))_border-box] rounded-lg">
|
|
<div class="grow flex flex-col p-5 pt-6">
|
|
<div class="flex items-center space-x-3 mb-4">
|
|
<svg class="inline-flex fill-zinc-400 shrink-0" xmlns="http://www.w3.org/2000/svg"
|
|
width="20"
|
|
height="20" viewBox="0 0 24 24">
|
|
<path d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-900">Developer Experience You
|
|
Love</h3>
|
|
</div>
|
|
<div class="text-sm text-zinc-500">
|
|
<ul class="space-y-3">
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Deploy and manage across machines with familiar Docker-like commands
|
|
</li>
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Use the same Docker Compose from local dev to production
|
|
</li>
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Find your services instantly with built-in service discovery and DNS
|
|
</li>
|
|
<li class="flex gap-3 items-start">
|
|
<svg class="w-4 h-4 text-emerald-500 shrink-0 mt-0.5" fill="none"
|
|
stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M5 13l4 4L19 7"/>
|
|
</svg>
|
|
Communicate securely with services across machines without opening ports
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- How it works + Features -->
|
|
<section
|
|
class="relative bg-zinc-800 text-zinc-400 after:absolute after:top-0 after:right-0 after:h-full after:w-96 after:pointer-events-none after:bg-gradient-to-l after:from-zinc-800 max-lg:after:hidden">
|
|
<div class="py-12 md:py-20">
|
|
|
|
<div class="max-w-xl lg:max-w-6xl mx-auto px-4 sm:px-6">
|
|
<div class="lg:flex space-y-12 lg:space-y-0 lg:space-x-12 2xl:space-x-24">
|
|
|
|
<!-- Content -->
|
|
<div class="lg:max-w-none lg:min-w-[524px]">
|
|
<div class="mb-8">
|
|
<div class="inline-flex text-sm font-medium text-zinc-400 px-4 py-0.5 border border-transparent [background:linear-gradient(theme(colors.zinc.800),theme(colors.zinc.800))_padding-box,linear-gradient(120deg,theme(colors.zinc.700),theme(colors.zinc.700/0),theme(colors.zinc.700))_border-box] rounded-full mb-4">
|
|
How it works
|
|
</div>
|
|
<h3 class="font-inter-tight text-3xl font-bold text-zinc-100 mb-4">
|
|
Simple by design,<br>
|
|
powerful in practice
|
|
</h3>
|
|
<p class="text-lg">
|
|
Uncloud replaces complex clusters with a simple network of machines working
|
|
seamlessly together — no maintenance overhead, just reliable infrastructure.
|
|
</p>
|
|
</div>
|
|
|
|
<!-- Items -->
|
|
<div class="mb-8 md:mb-0 space-y-2">
|
|
<!-- Secure private network -->
|
|
<div class="text-left flex items-center px-6 py-4 rounded border border-transparent">
|
|
<svg class="shrink-0 fill-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg"
|
|
width="24" height="24">
|
|
<path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"/>
|
|
</svg>
|
|
<div>
|
|
<div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">
|
|
Secure private network
|
|
</div>
|
|
<div>
|
|
Each machine joins a WireGuard mesh network with automatic peer discovery
|
|
and NAT traversal. Containers get unique IPs and can communicate directly
|
|
across machines.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Fully decentralized -->
|
|
<div class="text-left flex items-center px-6 py-4 rounded border border-transparent">
|
|
<svg class="shrink-0 fill-zinc-400 stroke-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg"
|
|
width="24" height="24">
|
|
<path d="M4 4h16M4 4v16M4 4L20 20M20 4v16M20 4L4 20M4 20h16 M4 1.5a2.5 2.5 0 110 5 2.5 2.5 0 010-5M20 1.5a2.5 2.5 0 110 5 2.5 2.5 0 010-5M4 17.5a2.5 2.5 0 110 5 2.5 2.5 0 010-5M20 17.5a2.5 2.5 0 110 5 2.5 2.5 0 010-5"/>
|
|
<div>
|
|
<div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">
|
|
Fully decentralized
|
|
</div>
|
|
<div>
|
|
Unlike traditional orchestrators, there's no central control plane to
|
|
maintain. Each machine maintains a synchronized copy of the cluster state
|
|
through peer-to-peer communication, keeping cluster operations functional
|
|
even if some machines go offline.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Smart CLI -->
|
|
<div class="text-left flex items-center px-6 py-4 rounded border border-transparent">
|
|
<svg class="shrink-0 fill-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg"
|
|
width="24" height="24">
|
|
<path d="M20 4H4c-1.11 0-2 .89-2 2v12c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4V8h16v10zm-2-1h-6v-2h6v2zM7.5 17l-1.41-1.41L8.67 13l-2.58-2.59L7.5 9l4 4-4 4z"/>
|
|
</svg>
|
|
<div>
|
|
<div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">
|
|
Smart CLI
|
|
</div>
|
|
<div>
|
|
Control your entire infrastructure using intuitive Docker-like commands from
|
|
anywhere. Deploy, monitor, and scale applications across all your machines
|
|
through a single SSH connection to any of them.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Diagram -->
|
|
<div class="relative lg:max-w-none">
|
|
<div class="relative flex flex-col">
|
|
<figure class="w-full lg:mt-36">
|
|
<img class="lg:max-w-none mx-auto rounded-xl shadow-2xl"
|
|
src="./images/diagram.webp" width="700" alt="Uncloud cluster diagram"/>
|
|
<figcaption class="text-center text-sm mt-2">
|
|
Multi-provider cluster of 3 machines
|
|
</figcaption>
|
|
</figure>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Features blocks -->
|
|
<div class="max-w-6xl mx-auto px-4 sm:px-6 mt-12 lg:mt-24">
|
|
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-8 lg:gap-16">
|
|
<!-- Block #1 -->
|
|
<div>
|
|
<div class="flex items-center mb-1">
|
|
<svg class="fill-zinc-400 mr-2" xmlns="http://www.w3.org/2000/svg" width="16"
|
|
height="16">
|
|
<path d="M15 9a1 1 0 0 1 0 2c-.441 0-1.243.92-1.89 1.716.319 1.005.529 1.284.89 1.284a1 1 0 0 1 0 2 2.524 2.524 0 0 1-2.339-1.545A3.841 3.841 0 0 1 9 16a1 1 0 0 1 0-2c.441 0 1.243-.92 1.89-1.716C10.57 11.279 10.361 11 10 11a1 1 0 0 1 0-2 2.524 2.524 0 0 1 2.339 1.545A3.841 3.841 0 0 1 15 9Zm-5-1H7.51l-.02.142C6.964 11.825 6.367 16 3 16a3 3 0 0 1-3-3 1 1 0 0 1 2 0 1 1 0 0 0 1 1c1.49 0 1.984-2.48 2.49-6H3a1 1 0 1 1 0-2h2.793c.52-3.1 1.4-6 4.207-6a3 3 0 0 1 3 3 1 1 0 0 1-2 0 1 1 0 0 0-1-1C8.808 2 8.257 3.579 7.825 6H10a1 1 0 0 1 0 2Z"/>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-200">Discussions</h3>
|
|
</div>
|
|
<p class="text-sm text-zinc-500">Keep workflows efficient with tools that give teams
|
|
visibility throughout the process.</p>
|
|
</div>
|
|
<!-- Block #2 -->
|
|
<div>
|
|
<div class="flex items-center mb-1">
|
|
<svg class="fill-zinc-400 mr-2" xmlns="http://www.w3.org/2000/svg" width="16"
|
|
height="16">
|
|
<path d="M13 16c-.153 0-.306-.035-.447-.105l-3.851-1.926c-.231.02-.465.031-.702.031-4.411 0-8-3.14-8-7s3.589-7 8-7 8 3.14 8 7c0 1.723-.707 3.351-2 4.63V15a1.003 1.003 0 0 1-1 1Zm-4.108-4.054c.155 0 .308.036.447.105L12 13.382v-2.187c0-.288.125-.562.341-.752C13.411 9.506 14 8.284 14 7c0-2.757-2.691-5-6-5S2 4.243 2 7s2.691 5 6 5c.266 0 .526-.02.783-.048a1.01 1.01 0 0 1 .109-.006Z"/>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-200">Team views</h3>
|
|
</div>
|
|
<p class="text-sm text-zinc-500">Keep workflows efficient with tools that give teams
|
|
visibility throughout the process.</p>
|
|
</div>
|
|
<!-- Block #3 -->
|
|
<div>
|
|
<div class="flex items-center mb-1">
|
|
<svg class="fill-zinc-400 mr-2" xmlns="http://www.w3.org/2000/svg" width="14"
|
|
height="16">
|
|
<path d="M13 0H1C.4 0 0 .4 0 1v14c0 .6.4 1 1 1h8l5-5V1c0-.6-.4-1-1-1ZM2 2h10v8H8v4H2V2Z"/>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-200">Powerful search</h3>
|
|
</div>
|
|
<p class="text-sm text-zinc-500">Keep workflows efficient with tools that give teams
|
|
visibility throughout the process.</p>
|
|
</div>
|
|
<!-- Block #4 -->
|
|
<div>
|
|
<div class="flex items-center mb-1">
|
|
<svg class="fill-zinc-400 mr-2" xmlns="http://www.w3.org/2000/svg" width="16"
|
|
height="16">
|
|
<path d="M7 14c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7ZM7 2C4.243 2 2 4.243 2 7s2.243 5 5 5 5-2.243 5-5-2.243-5-5-5Zm8.707 12.293a.999.999 0 1 1-1.414 1.414L11.9 13.314a8.019 8.019 0 0 0 1.414-1.414l2.393 2.393Z"/>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-200">Enhancing</h3>
|
|
</div>
|
|
<p class="text-sm text-zinc-500">Keep workflows efficient with tools that give teams
|
|
visibility throughout the process.</p>
|
|
</div>
|
|
<!-- Block #5 -->
|
|
<div>
|
|
<div class="flex items-center mb-1">
|
|
<svg class="fill-zinc-400 mr-2" xmlns="http://www.w3.org/2000/svg" width="16"
|
|
height="16">
|
|
<path d="M14.6.085 8 2.885 1.4.085c-.5-.2-1.4-.1-1.4.9v11c0 .4.2.8.6.9l7 3c.3.1.5.1.8 0l7-3c.4-.2.6-.5.6-.9v-11c0-1-.9-1.1-1.4-.9ZM2 2.485l5 2.1v8.8l-5-2.1v-8.8Zm12 8.8-5 2.1v-8.7l5-2.1v8.7Z"/>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-200">Powerful search</h3>
|
|
</div>
|
|
<p class="text-sm text-zinc-500">Keep workflows efficient with tools that give teams
|
|
visibility throughout the process.</p>
|
|
</div>
|
|
<!-- Block #6 -->
|
|
<div>
|
|
<div class="flex items-center mb-1">
|
|
<svg class="fill-zinc-400 mr-2" xmlns="http://www.w3.org/2000/svg" width="14"
|
|
height="16">
|
|
<path d="M13 14a1 1 0 0 1 0 2H1a1 1 0 0 1 0-2h12Zm-6.707-2.293-5-5a1 1 0 0 1 1.414-1.414L6 8.586V1a1 1 0 1 1 2 0v7.586l3.293-3.293a1 1 0 1 1 1.414 1.414l-5 5a1 1 0 0 1-1.414 0Z"/>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-200">Team views</h3>
|
|
</div>
|
|
<p class="text-sm text-zinc-500">Keep workflows efficient with tools that give teams
|
|
visibility throughout the process.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</section>
|
|
|
|
<!-- CTA -->
|
|
<section>
|
|
<div class="py-12 md:py-20">
|
|
<div class="max-w-6xl mx-auto px-4 sm:px-6">
|
|
<div class="relative max-w-3xl mx-auto text-center pb-12 md:pb-16">
|
|
<h2 class="font-inter-tight text-3xl md:text-4xl font-bold text-zinc-900 mb-4">Start your
|
|
journey
|
|
<em class="relative not-italic inline-flex justify-center items-end">
|
|
today
|
|
<svg class="absolute fill-zinc-300 w-[calc(100%+1rem)] -z-10"
|
|
xmlns="http://www.w3.org/2000/svg" width="120" height="10" viewBox="0 0 120 10"
|
|
aria-hidden="true" preserveAspectRatio="none">
|
|
<path d="M118.273 6.09C79.243 4.558 40.297 5.459 1.305 9.034c-1.507.13-1.742-1.521-.199-1.81C39.81-.228 79.647-1.568 118.443 4.2c1.63.233 1.377 1.943-.17 1.89Z"/>
|
|
</svg>
|
|
</em>
|
|
</h2>
|
|
<p class="text-lg text-zinc-500 mb-8">Gray removes creative distances by connecting beginners,
|
|
pros, and every team in between. Are you ready to start your journey?</p>
|
|
<div class="max-w-xs mx-auto sm:max-w-none sm:inline-flex sm:justify-center space-y-4 sm:space-y-0 sm:space-x-4">
|
|
<div>
|
|
<a class="btn text-zinc-100 bg-zinc-900 hover:bg-zinc-800 w-full shadow"
|
|
href="request-demo.html">Request Demo</a>
|
|
</div>
|
|
<div>
|
|
<a class="btn text-zinc-600 bg-white hover:text-zinc-900 w-full shadow" href="#0">Try
|
|
for Free</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
</main>
|
|
|
|
<!-- Site footer -->
|
|
<footer>
|
|
<div class="max-w-6xl mx-auto px-4 sm:px-6">
|
|
|
|
<!-- Top area: Blocks -->
|
|
<div class="grid sm:grid-cols-12 gap-8 py-8 md:py-12 border-t border-zinc-200">
|
|
|
|
<!-- 1st block -->
|
|
<div class="sm:col-span-6 md:col-span-3 lg:col-span-6 max-sm:order-1 flex flex-col">
|
|
<div class="mb-4">
|
|
<!-- Logo -->
|
|
<a class="flex items-center justify-center bg-white w-8 h-8 rounded shadow-sm shadow-zinc-950/20"
|
|
href="index.html">
|
|
<img src="./images/logo.png" width="24" height="24" alt="Logo">
|
|
</a>
|
|
</div>
|
|
<div class="grow text-sm text-zinc-500">© Cruip.com. All rights reserved.</div>
|
|
<!-- Social links -->
|
|
<ul class="flex space-x-4 mt-4 mb-1">
|
|
<li>
|
|
<a class="flex justify-center items-center text-zinc-700 hover:text-zinc-900 transition"
|
|
href="#0" aria-label="Twitter">
|
|
<svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="20" height="20">
|
|
<path d="m7.063 3 3.495 4.475L14.601 3h2.454l-5.359 5.931L18 17h-4.938l-3.866-4.893L4.771 17H2.316l5.735-6.342L2 3h5.063Zm-.74 1.347H4.866l8.875 11.232h1.36L6.323 4.347Z"/>
|
|
</svg>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a class="flex justify-center items-center text-zinc-700 hover:text-zinc-900 transition"
|
|
href="#0" aria-label="Medium">
|
|
<svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="20" height="20">
|
|
<path d="M17 2H3a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1Zm-1.708 3.791-.858.823a.251.251 0 0 0-.1.241V12.9a.251.251 0 0 0 .1.241l.838.823v.181h-4.215v-.181l.868-.843c.085-.085.085-.11.085-.241V7.993L9.6 14.124h-.329l-2.81-6.13V12.1a.567.567 0 0 0 .156.472l1.129 1.37v.181h-3.2v-.181l1.129-1.37a.547.547 0 0 0 .146-.472V7.351A.416.416 0 0 0 5.683 7l-1-1.209V5.61H7.8l2.4 5.283 2.122-5.283h2.971l-.001.181Z"/>
|
|
</svg>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a class="flex justify-center items-center text-zinc-700 hover:text-zinc-900 transition"
|
|
href="#0" aria-label="Telegram">
|
|
<svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="20" height="20">
|
|
<path d="M17.968 3.276a.338.338 0 0 0-.232-.253 1.192 1.192 0 0 0-.63.045S3.087 8.106 2.286 8.664c-.172.121-.23.19-.259.272-.138.4.293.573.293.573l3.613 1.177a.388.388 0 0 0 .183-.011c.822-.519 8.27-5.222 8.7-5.38.068-.02.118 0 .1.049-.172.6-6.606 6.319-6.64 6.354a.138.138 0 0 0-.05.118l-.337 3.528s-.142 1.1.956 0a30.66 30.66 0 0 1 1.9-1.738c1.242.858 2.58 1.806 3.156 2.3a1 1 0 0 0 .732.283.825.825 0 0 0 .7-.622S17.894 5.292 17.98 3.909c.008-.135.021-.217.021-.317a1.177 1.177 0 0 0-.032-.316Z"/>
|
|
</svg>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- 2nd block -->
|
|
<div class="sm:col-span-6 md:col-span-3 lg:col-span-2">
|
|
<h6 class="text-sm text-zinc-800 font-medium mb-2">Company</h6>
|
|
<ul class="text-sm space-y-2">
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">About us</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">Diversity & Inclusion</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">Blog</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">Careers</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">Financial statements</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- 3rd block -->
|
|
<div class="sm:col-span-6 md:col-span-3 lg:col-span-2">
|
|
<h6 class="text-sm text-zinc-800 font-medium mb-2">Resources</h6>
|
|
<ul class="text-sm space-y-2">
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">Community</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">Terms of service</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">Collaboration features</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- 4th block -->
|
|
<div class="sm:col-span-6 md:col-span-3 lg:col-span-2">
|
|
<h6 class="text-sm text-zinc-800 font-medium mb-2">Legals</h6>
|
|
<ul class="text-sm space-y-2">
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">Refund policy</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">Terms & Conditions</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">Privacy policy</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-zinc-500 hover:text-zinc-900 transition" href="#0">Brand Kit</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</footer>
|
|
|
|
</div>
|
|
|
|
<script src="./js/vendors/alpinejs.min.js" defer></script>
|
|
|
|
</body>
|
|
|
|
</html>
|