c1a6539af3
- Add "Book an Appointment" as first CTA button in hero section, linking to https://groombook.dev/admin/book - Add "Book Now" to footer navigation links - Add "Book an Appointment" quick-link to getting-started page - Preserve all existing CTAs (Try Demo, Get Started, View on GitHub) cc @cpfarhood Co-Authored-By: Paperclip <noreply@paperclip.ing>
120 lines
4.5 KiB
HTML
120 lines
4.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Getting Started — Groom Book</title>
|
|
<meta name="description" content="Get Groom Book running in minutes with Docker Compose or Kubernetes.">
|
|
<style>
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.7; color: #333; max-width: 800px; margin: 0 auto; padding: 20px; }
|
|
header { background: #1a1a2e; color: #fff; padding: 40px 20px; margin: -20px -20px 40px; }
|
|
header h1 { font-size: 2rem; }
|
|
header a { color: #4CAF50; text-decoration: none; }
|
|
h2 { color: #1a1a2e; margin: 40px 0 15px; font-size: 1.5rem; }
|
|
h3 { color: #333; margin: 25px 0 10px; font-size: 1.2rem; }
|
|
p { margin-bottom: 15px; }
|
|
.warning { background: #fff3cd; border: 1px solid #ffc107; padding: 15px; border-radius: 6px; margin: 20px 0; }
|
|
.warning strong { color: #856404; }
|
|
.code-block { background: #1a1a2e; color: #fff; padding: 20px; border-radius: 6px; overflow-x: auto; font-family: 'Courier New', monospace; font-size: 0.9rem; margin: 20px 0; }
|
|
.code-block code { color: #a0a0a0; display: block; }
|
|
.code-block .prompt { color: #4CAF50; }
|
|
table { width: 100%; border-collapse: collapse; margin: 20px 0; }
|
|
th, td { padding: 12px 15px; text-align: left; border: 1px solid #ddd; }
|
|
th { background: #f5f5f5; font-weight: 600; }
|
|
a { color: #4CAF50; text-decoration: none; }
|
|
a:hover { text-decoration: underline; }
|
|
.back-link { display: inline-block; margin-bottom: 20px; color: #666; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<h1>Getting Started with Groom Book</h1>
|
|
<a href="../">← Back to Home</a>
|
|
</header>
|
|
|
|
<p>Groom Book can be run on a single server with Docker Compose or in a production Kubernetes cluster. Choose the path that fits your needs.</p>
|
|
|
|
<h2>Docker Compose (Recommended for Single Server)</h2>
|
|
|
|
<p>The fastest way to get Groom Book running. This starts PostgreSQL, runs migrations, and serves both the API and web UI.</p>
|
|
|
|
<div class="code-block">
|
|
<code><span class="prompt">$</span> git clone https://github.com/groombook/groombook.git</code><br>
|
|
<code><span class="prompt">$</span> cd groombook</code><br>
|
|
<code><span class="prompt">$</span> docker compose up --build</code>
|
|
</div>
|
|
|
|
<table>
|
|
<tr>
|
|
<th>Service</th>
|
|
<th>URL</th>
|
|
</tr>
|
|
<tr>
|
|
<td>Web UI</td>
|
|
<td><a href="http://localhost:8080">http://localhost:8080</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td>API</td>
|
|
<td><a href="http://localhost:3000">http://localhost:3000</a></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<div class="warning">
|
|
<strong>⚠️ Security Note:</strong> The default <code>docker-compose.yml</code> sets <code>AUTH_DISABLED=true</code> so you can explore without configuring OIDC. <strong>Disable this in any internet-facing deployment.</strong>
|
|
</div>
|
|
|
|
<h3>Production Configuration</h3>
|
|
|
|
<p>Copy <code>.env.example</code> to <code>.env</code> and configure:</p>
|
|
|
|
<table>
|
|
<tr>
|
|
<th>Variable</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
<tr>
|
|
<td><code>DATABASE_URL</code></td>
|
|
<td>PostgreSQL connection string</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>AUTH_DISABLED</code></td>
|
|
<td>Set to <code>false</code> in production</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>OIDC_ISSUER</code></td>
|
|
<td>Authentik issuer URL</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>OIDC_CLIENT_ID</code></td>
|
|
<td>OIDC client ID</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>CORSI_ORIGIN</code></td>
|
|
<td>Public URL of the web frontend</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h2>Kubernetes (Production-Grade)</h2>
|
|
|
|
<p>For production deployments with high availability, see the <a href="https://github.com/groombook/infra">groombook/infra</a> repository for Kubernetes manifests and Flux GitOps configuration.</p>
|
|
|
|
<p>Groom Book is deployed using:</p>
|
|
<ul>
|
|
<li><strong>CNPG</strong> for PostgreSQL</li>
|
|
<li><strong>Authentik</strong> for OIDC authentication</li>
|
|
<li><strong>Flux</strong> for GitOps-managed deployments</li>
|
|
</ul>
|
|
|
|
<h2>Quick Links</h2>
|
|
|
|
<ul>
|
|
<li><a href="https://groombook.dev/admin/book">Book an Appointment →</a></li>
|
|
<li><a href="https://github.com/groombook/groombook">GitHub Repository</a></li>
|
|
<li><a href="https://github.com/groombook/groombook/issues">Report an Issue</a></li>
|
|
<li><a href="https://discord.gg/groombook">Join Our Discord</a></li>
|
|
<li><a href="../blog/launch.html">Launch Announcement</a></li>
|
|
</ul>
|
|
</body>
|
|
</html>
|