feat: dbdeployer documentation website (Astro + Starlight) by renecannao · Pull Request #55 · ProxySQL/dbdeployer · GitHub
Skip to content

feat: dbdeployer documentation website (Astro + Starlight)#55

Merged
renecannao merged 15 commits into
masterfrom
feature/website
Mar 24, 2026
Merged

feat: dbdeployer documentation website (Astro + Starlight)#55
renecannao merged 15 commits into
masterfrom
feature/website

Conversation

@renecannao

@renecannao renecannao commented Mar 24, 2026

Copy link
Copy Markdown

Summary

  • Astro + Starlight website in website/ — docs, marketing landing page, providers comparison, blog
  • Wiki content pipelinecopy-wiki.sh transforms and copies 24 wiki pages from docs/wiki/ into Starlight content collections with frontmatter injection
  • 4 fresh quickstart guides — MySQL single, MySQL replication, PostgreSQL, ProxySQL integration
  • Marketing landing page — hero, feature grid, terminal demo, dark theme
  • Providers comparison page — matrix table + per-provider cards (MySQL, PostgreSQL, ProxySQL)
  • Blog — content collection, 2 launch posts, landing page integration
  • GitHub Actions deployment — builds on push to master, deploys to gh-pages

Test Plan

  • Clean build from scratch: 40 pages, Pagefind search index, sitemap
  • Enable GitHub Pages in repo settings: Settings → Pages → Source: GitHub Actions
  • Verify site loads at proxysql.github.io/dbdeployer/
  • Spot-check: landing page, docs sidebar, quickstarts, providers page, blog
  • Replace public/og-image.svg with a real 1200x630 PNG before sharing on social

Summary by CodeRabbit

Release Notes

  • New Features

    • Automated documentation website deployed to GitHub Pages with comprehensive guides for deploying and managing MySQL, PostgreSQL, and ProxySQL databases
    • Added blog section for announcements and release updates
  • Documentation

    • Comprehensive documentation pages covering installation, quickstart guides, deployment topologies, provider-specific configurations, and sandbox management

Covers provider interface changes, deb extraction, single sandbox,
streaming replication, ProxySQL+PostgreSQL wiring, cross-database
topology constraints, and testing strategy.
13 tasks covering: provider interface changes, PostgreSQL core,
config generation, CreateSandbox, deb extraction, replication,
cmd layer routing, ProxySQL wiring, topology constraints,
standalone command, integration tests, and CI issue tracking.
10 tasks: scaffold, wiki pipeline, stub docs, quickstart guides,
landing page, providers page, blog, 404/OG, GitHub Actions, verification.
Initializes the website/ directory with Astro 6 + Starlight 0.38,
including full sidebar config, stub docs for all 34 sidebar pages,
content collection config using the Astro v6 loader API, a database-
themed SVG favicon, sitemap integration, and a verified production build.
Copies 24 wiki markdown files into the Starlight content collection,
injecting frontmatter and stripping [[HOME]] navigation links.
Four polished quickstart guides covering MySQL single sandbox,
MySQL replication, PostgreSQL (deb-based unpack), and ProxySQL
integration with read/write split. Each guide follows a numbered
Install → Deploy → Connect → Clean up pattern with copy-pasteable
bash and links to deeper docs.
Adds a custom Astro landing page (not Starlight) at the site root with a
dark-themed design: sticky nav, animated hero with gradient title and
copy-able install snippet, 4-card feature grid, and a styled terminal
demo showing MySQL replication deployment. Includes global CSS custom
properties and responsive layout.
Adds a providers comparison page at /providers with a feature matrix
table, per-provider cards (MySQL, PostgreSQL, ProxySQL) with command
snippets, and a coming-soon Orchestrator teaser section.
- BlogPost.astro layout wrapping Landing.astro with title, date, author, tags, and back-link
- BlogPostCard.astro preview card component with hover effects
- blog/index.astro listing posts in reverse chronological order
- blog/[...slug].astro dynamic route using getCollection + render
- Two launch posts: new maintainership announcement and PostgreSQL support
- index.astro "What's New" section showing latest 2 blog posts
Custom 404 page uses the Landing layout with dark theme styling,
a large accent-colored 404 heading, and links to Home and Docs.
SVG OG image placeholder (1200x630) added to public/ for social
card metadata; replace with a real PNG before launch.
Copilot AI review requested due to automatic review settings March 24, 2026 17:57
@coderabbitai

coderabbitai Bot commented Mar 24, 2026

Copy link
Copy Markdown

@renecannao renecannao merged commit 8831722 into master Mar 24, 2026
17 of 20 checks passed
@gemini-code-assist

Copy link
Copy Markdown

Warning

Gemini encountered an error creating the summary. You can try again by commenting /gemini summary.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Astro + Starlight documentation website under website/, intended to replace/augment the GitHub wiki with a docs site, marketing landing page, provider comparison page, and a small blog, deployed to GitHub Pages via Actions.

Changes:

  • Introduces an Astro + Starlight site (base path /dbdeployer) with landing page, providers page, blog, and global styling.
  • Adds a wiki→Starlight content copy script plus a large set of docs pages and quickstarts.
  • Adds a GitHub Actions workflow to build and deploy the site to GitHub Pages.

Reviewed changes

Copilot reviewed 61 out of 65 changed files in this pull request and generated 20 comments.

Show a summary per file
File Description
website/tsconfig.json Adds strict Astro TS config.
website/src/styles/global.css Adds global design tokens and shared UI styles.
website/src/pages/providers.astro Adds providers comparison page (matrix + cards).
website/src/pages/index.astro Adds marketing landing page with blog “What’s New” integration.
website/src/pages/blog/index.astro Adds blog index page (collection listing).
website/src/pages/blog/[...slug].astro Adds blog post route using content collection.
website/src/pages/404.astro Adds custom 404 page.
website/src/layouts/Landing.astro Adds shared marketing layout (nav/footer/meta/CSS).
website/src/layouts/BlogPost.astro Adds blog post layout and typography styling.
website/src/content/docs/reference/configuration.md Adds migrated wiki doc page (configuration/init).
website/src/content/docs/reference/cli-commands.md Adds migrated wiki doc page (CLI completion).
website/src/content/docs/reference/api-changelog.md Adds placeholder API changelog page.
website/src/content/docs/providers/pxc.md Adds placeholder provider doc page for PXC.
website/src/content/docs/providers/proxysql.md Adds ProxySQL integration guide content.
website/src/content/docs/providers/postgresql.md Adds placeholder provider doc page for PostgreSQL.
website/src/content/docs/providers/mysql.md Adds migrated wiki doc page (MySQL basedir naming).
website/src/content/docs/managing/using.md Adds migrated wiki doc page (use latest sandbox).
website/src/content/docs/managing/users.md Adds migrated wiki doc page (default DB users).
website/src/content/docs/managing/starting-stopping.md Adds migrated wiki doc page (sandbox management).
website/src/content/docs/managing/logs.md Adds migrated wiki doc page (logs).
website/src/content/docs/managing/deletion.md Adds migrated wiki doc page (deletion/cleanup).
website/src/content/docs/managing/customization.md Adds migrated wiki doc page (customization).
website/src/content/docs/index.mdx Adds docs landing page for Starlight.
website/src/content/docs/getting-started/quickstart-proxysql.md Adds new ProxySQL quickstart.
website/src/content/docs/getting-started/quickstart-postgresql.md Adds new PostgreSQL quickstart.
website/src/content/docs/getting-started/quickstart-mysql-single.md Adds new MySQL single quickstart.
website/src/content/docs/getting-started/quickstart-mysql-replication.md Adds new MySQL replication quickstart.
website/src/content/docs/getting-started/installation.md Adds migrated wiki installation page.
website/src/content/docs/deploying/single.md Adds migrated wiki “single sandbox” doc.
website/src/content/docs/deploying/replication.md Adds migrated wiki “replication” doc.
website/src/content/docs/deploying/ndb-cluster.md Adds placeholder NDB doc page.
website/src/content/docs/deploying/multiple.md Adds migrated wiki “multiple sandboxes” doc.
website/src/content/docs/deploying/group-replication.md Adds placeholder group replication doc page.
website/src/content/docs/deploying/fan-in-all-masters.md Adds placeholder fan-in/all-masters doc page.
website/src/content/docs/concepts/sandboxes.md Adds migrated wiki “default sandbox” concept page.
website/src/content/docs/concepts/ports.md Adds migrated wiki “ports management” concept page.
website/src/content/docs/concepts/flavors.md Adds migrated wiki “flavors/capabilities” concept page.
website/src/content/docs/concepts/environment-variables.md Adds env var reference page.
website/src/content/docs/advanced/inter-sandbox-replication.md Adds migrated wiki advanced replication page.
website/src/content/docs/advanced/importing.md Adds migrated wiki importing page.
website/src/content/docs/advanced/go-library.md Adds migrated wiki Go library page.
website/src/content/docs/advanced/concurrent.md Adds migrated wiki concurrent ops page.
website/src/content/docs/advanced/compiling.md Adds migrated wiki compiling page.
website/src/content/docs/advanced/cloning.md Adds migrated wiki cloning page.
website/src/content/blog/2026-03-24-postgresql-support.md Adds launch blog post (PostgreSQL support).
website/src/content/blog/2026-03-24-new-maintainership.md Adds launch blog post (maintainership).
website/src/content.config.ts Defines content collections (docs + blog).
website/src/components/Terminal.astro Adds terminal demo component.
website/src/components/ProviderCard.astro Adds reusable provider card component.
website/src/components/Hero.astro Adds landing hero + install command copy UX.
website/src/components/FeatureGrid.astro Adds landing feature grid component.
website/src/components/BlogPostCard.astro Adds reusable blog post card component.
website/scripts/copy-wiki.sh Adds wiki→Starlight copy pipeline script.
website/public/og-image.svg Adds placeholder OG image asset.
website/public/favicon.svg Adds site favicon.
website/package.json Adds website package metadata/dependencies.
website/astro.config.mjs Configures Astro base/site + Starlight sidebar + sitemap.
website/.gitignore Ignores Astro build artifacts for website subproject.
docs/superpowers/specs/2026-03-24-website-design.md Adds website design spec.
docs/superpowers/specs/2026-03-24-phase3-postgresql-provider-design.md Adds PostgreSQL provider design spec.
docs/superpowers/plans/2026-03-24-website.md Adds implementation plan.
.gitignore Adds ignores for website artifacts and .worktrees/.
.github/workflows/deploy-website.yml Adds GitHub Pages deployment workflow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +23 to +27
<!-- Open Graph -->
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://proxysql.github.io/dbdeployer/" />

Copilot AI Mar 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The layout includes Open Graph tags but doesn’t set og:image (and likewise no twitter:image). Since the repo includes an OG image asset, add image meta tags so social shares render a preview card.

Copilot uses AI. Check for mistakes.
Comment on lines +8 to +12
## Prerequisites

- dbdeployer installed ([Installation guide](/getting-started/installation))
- Internet access to download the MySQL binary

Copilot AI Mar 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These links are missing the /docs prefix (e.g. (/getting-started/installation)), so they will resolve to /dbdeployer/getting-started/... instead of Starlight docs pages under /dbdeployer/docs/.... Use absolute /docs/... links (which will be base-prefixed) or relative links within the docs section.

Copilot uses AI. Check for mistakes.
Comment on lines +73 to +77
## What's next?

- [Replication topologies](/deploying/replication) — fan-in, all-masters, semi-sync
- [Group Replication](/deploying/group-replication) — single-primary and multi-primary
- [Quick Start: ProxySQL Integration](/getting-started/quickstart-proxysql)

Copilot AI Mar 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The “What’s next?” links (/deploying/replication, /deploying/group-replication, /getting-started/quickstart-proxysql) are missing the /docs prefix and will 404 under the configured site base. Update them to /docs/deploying/... and /docs/getting-started/....

Copilot uses AI. Check for mistakes.
Comment on lines +8 to +12
## Prerequisites

- dbdeployer installed ([Installation guide](/getting-started/installation))
- `dpkg-deb` available (standard on Debian/Ubuntu)
- `apt-get` or `apt` for downloading packages (no root needed for `apt-get download`)

Copilot AI Mar 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This page links to the installation guide as (/getting-started/installation), which will resolve outside the docs section. Use /docs/getting-started/installation/ (or a relative link) so it works under the /dbdeployer base path.

Copilot uses AI. Check for mistakes.
Comment on lines +74 to +77
## What's next?

- [PostgreSQL provider details](/providers/postgresql) — replication, options, limitations
- [Managing sandboxes](/managing/using) — start, stop, status

Copilot AI Mar 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The “What’s next?” links (/providers/postgresql, /managing/using) are missing the /docs prefix and will 404 under Starlight routing. Update them to /docs/providers/postgresql/ and /docs/managing/using/ (or use relative links).

Copilot uses AI. Check for mistakes.
Comment on lines +5 to +7

Deploy a three-node master/slave replication setup from a single command. Assumes you have already downloaded MySQL 8.4 (see [Quick Start: MySQL Single](/getting-started/quickstart-mysql-single)).

Copilot AI Mar 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This page links to [Quick Start: MySQL Single](/getting-started/quickstart-mysql-single), which will resolve outside the Starlight docs section. Use /docs/getting-started/quickstart-mysql-single/ (base-prefixed) or a relative link.

Copilot uses AI. Check for mistakes.
---
const base = '/dbdeployer';
const githubUrl = 'https://github.com/ProxySQL/dbdeployer';
const installCmd = 'curl -sSL https://raw.githubusercontent.com/ProxySQL/dbdeployer/main/scripts/install.sh | bash';

Copilot AI Mar 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The installCmd points to scripts/install.sh, but this repo contains scripts/dbdeployer-install.sh and no scripts/install.sh. The copy-to-clipboard install command on the homepage will fail; update it to a real install entrypoint (e.g., the existing scripts/dbdeployer-install.sh raw URL) or a documented release-install method.

Suggested change
const installCmd = 'curl -sSL https://raw.githubusercontent.com/ProxySQL/dbdeployer/main/scripts/install.sh | bash';
const installCmd = 'curl -sSL https://raw.githubusercontent.com/ProxySQL/dbdeployer/main/scripts/dbdeployer-install.sh | bash';

Copilot uses AI. Check for mistakes.
Comment on lines +36 to +38
<style>
@import '../styles/global.css';
</style>

Copilot AI Mar 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Global CSS is imported twice (once in <head> and again in <style is:global>). This duplicates styles in the output and makes it harder to reason about precedence. Keep a single import (prefer the is:global block, or import the CSS in the frontmatter) and remove the other.

Copilot uses AI. Check for mistakes.
Comment on lines +57 to +61
## What's next?

- [Deploying a single sandbox](/deploying/single) — ports, passwords, options
- [Managing sandboxes](/managing/using) — start, stop, restart
- [Quick Start: MySQL Replication](/getting-started/quickstart-mysql-replication)

Copilot AI Mar 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The “What’s next?” section links (e.g. /deploying/single, /managing/using) are missing the /docs prefix, which will make them 404 under the configured base path. Switch them to /docs/deploying/... and /docs/managing/... (or use relative links).

Copilot uses AI. Check for mistakes.
echo "---"
echo ""
# Strip lines containing [[HOME]] or [[home]] style wiki nav
sed -E '/\[\[HOME\]\]/Id' "$src" \

Copilot AI Mar 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sed -E '/\[\[HOME\]\]/Id' relies on GNU sed’s case-insensitive (I) flag, which is not portable to BSD sed (default on macOS). Since local doc builds are likely on macOS too, consider using a portable regex (e.g. [Hh][Oo][Mm][Ee]) or detecting/using gsed when available.

Suggested change

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants