Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions apps/docs/blume.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,30 @@ export default defineConfig({
deployment: {
site: "https://dequel.intrep.xyz",
},
seo: {
og: {
fonts: [],
palette: {
accent: "#ea580c",
background: "#0a0a0c",
border: "#222228",
foreground: "#f4f4f5",
muted: "#a1a1aa",
},
titles: {
"/": "Dequel — Self-Hosted PaaS Engine & Container Platform",
},
},
software: {
name: "Dequel",
operatingSystem: "Linux",
applicationCategory: "DeveloperApplication",
description:
"Self-hosted PaaS container platform. Deploy apps from Git, ZIP, or Docker Compose with zero infrastructure setup.",
},
organization: {
name: "Dequel",
url: "https://dequel.intrep.xyz",
},
},
});
130 changes: 130 additions & 0 deletions apps/docs/components/SEO.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
---
interface Props {
title?: string;
description?: string;
canonicalUrl?: string;
ogImage?: string;
ogType?: string;
keywords?: string[];
themeColor?: string;
}

const {
title = "Dequel — Self-Hosted PaaS Engine & Container Platform",
description = "The open-source, self-hosted PaaS container platform. Deploy apps from Git, ZIP, or Docker Compose with automatic SSL, multi-server scaling, and zero infrastructure lock-in.",
canonicalUrl = "https://dequel.intrep.xyz/",
ogImage = "https://dequel.intrep.xyz/og/index.png",
ogType = "website",
keywords = [
"Dequel",
"self-hosted PaaS",
"PaaS platform",
"Docker deployment",
"container platform",
"DevOps",
"Caddy reverse proxy",
"automatic SSL",
"Let's Encrypt",
"BuildKit",
"Railpack",
"zero vendor lock-in",
"homelab",
"multi-server deployment",
"microservices",
],
themeColor = "#0a0a0c",
} = Astro.props;

const siteName = "Dequel";
const author = "Dequel";

const structuredData = {
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": "https://dequel.intrep.xyz/#website",
"name": "Dequel",
"url": "https://dequel.intrep.xyz/",
"description": description,
"publisher": {
"@type": "Organization",
"name": "Dequel",
"url": "https://dequel.intrep.xyz/",
"logo": {
"@type": "ImageObject",
"url": "https://dequel.intrep.xyz/logo.svg"
}
}
},
{
"@type": "SoftwareApplication",
"@id": "https://dequel.intrep.xyz/#software",
"name": "Dequel",
"applicationCategory": "DeveloperApplication",
"operatingSystem": "Linux",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"url": "https://dequel.intrep.xyz/",
"description": description,
"image": ogImage,
"screenshot": "https://dequel.intrep.xyz/screenshots/dashboard.png",
"featureList": [
"Git push-to-deploy and ZIP uploads",
"Docker Compose deployment",
"Automatic SSL certificate provisioning via Caddy and Let's Encrypt",
"Dynamic multi-server container clustering",
"Zero-dependency self-hosted architecture",
"Full observability with Prometheus, cAdvisor, and Loki",
"Automatic horizontal scaling and auto-healing"
]
}
]
};
---

<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{title}</title>
<meta name="description" content={description} />
<meta name="keywords" content={keywords.join(", ")} />
<meta name="author" content={author} />
<meta name="creator" content={author} />
<meta name="publisher" content={siteName} />
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
<link rel="canonical" href={canonicalUrl} />

<meta name="theme-color" content={themeColor} />
<meta name="color-scheme" content="dark" />
<meta name="application-name" content={siteName} />
<meta name="apple-mobile-web-app-title" content={siteName} />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />

<meta property="og:type" content={ogType} />
<meta property="og:site_name" content={siteName} />
<meta property="og:url" content={canonicalUrl} />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:image" content={ogImage} />
<meta property="og:image:secure_url" content={ogImage} />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content={title} />
<meta property="og:locale" content="en_US" />

<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:url" content={canonicalUrl} />
<meta name="twitter:title" content={title} />
<meta name="twitter:description" content={description} />
<meta name="twitter:image" content={ogImage} />
<meta name="twitter:image:alt" content={title} />

<link rel="icon" type="image/svg+xml" href="/icon.svg" />
<link rel="apple-touch-icon" href="/icon.svg" />

<script type="application/ld+json" set:html={JSON.stringify(structuredData)} />
6 changes: 6 additions & 0 deletions apps/docs/docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ or on additional servers you connect later (see

Run the install script:

```bash
curl -fsSL https://dequel.intrep.xyz/install.sh | bash
```

Alternatively, download directly from the latest GitHub release:

```bash
curl -fsSL https://github.com/Lftobs/dequel/releases/latest/download/install.sh | bash
```
Expand Down
1 change: 1 addition & 0 deletions apps/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"type": "module",
"version": "0.4.0",
"scripts": {
"prebuild": "node -e \"const fs=require('fs');if(fs.existsSync('../../scripts/install.sh'))fs.copyFileSync('../../scripts/install.sh','./public/install.sh');\"",
"dev": "blume dev",
"start": "blume dev",
"build": "blume build",
Expand Down
19 changes: 2 additions & 17 deletions apps/docs/pages/index.astro
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
import "../styles/global.css";
import SEO from "../components/SEO.astro";
import Hero from "../components/Hero.astro";
import Stats from "../components/Stats.astro";
import Comparison from "../components/Comparison.astro";
Expand All @@ -12,15 +13,7 @@ import CTA from "../components/CTA.astro";
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="description"
content="Dequel — The self-hosted PaaS container platform. Deploy, route with auto-SSL, scale, and monitor applications on your own servers with zero vendor lock-in."
/>
<meta
name="viewport"
content="width=device-width, initial-scale=1.0"
/>
<SEO />
<link
rel="preconnect"
href="https://fonts.googleapis.com"
Expand All @@ -34,14 +27,6 @@ import CTA from "../components/CTA.astro";
href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..600;1,9..40,400..600&family=JetBrains+Mono:wght@400;500&family=Space+Grotesk:wght@500;600;700&display=swap"
rel="stylesheet"
/>
<link
rel="icon"
type="image/svg+xml"
href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none'%3E%3ClinearGradient id='g' x1='0' y1='0' x2='32' y2='32' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0%25' stop-color='%23f59e0b'/%3E%3Cstop offset='50%25' stop-color='%23ea580c'/%3E%3Cstop offset='100%25' stop-color='%23ec4899'/%3E%3C/linearGradient%3E%3Cpath d='M12 8H20C24.4183 8 28 11.5817 28 16C28 20.4183 24.4183 24 20 24H12' stroke='url(%23g)' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M20 24H12C7.58172 24 4 20.4183 4 16C4 11.5817 7.58172 8 12 8H16' stroke='url(%23g)' stroke-width='3' stroke-linecap='round' stroke-dasharray='40 10'/%3E%3Ccircle cx='16' cy='16' r='3.5' fill='url(%23g)'/%3E%3C/svg%3E"
/>
<title>
Dequel — Self-Hosted PaaS Engine & Container Platform
</title>
</head>
<body class="dq-noise bg-[#0a0a0c] text-[#e2e2e8] overflow-x-hidden">
<!-- Cloudflare-style Header Nav -->
Expand Down
Loading
Loading