docs: add VitePress documentation site with GitHub Pages deployment

Rewrites all documentation with accurate project details (Fastify, port
1349, single-container Docker, all 33+ tools, full database schema).
Adds getting started guide and configuration reference. Updates help and
settings dialogs to link to the docs site.
This commit is contained in:
Siddharth Kumar Sah
2026-03-22 21:00:37 +08:00
parent 977b5f5ec0
commit 6668615750
16 changed files with 1457 additions and 6 deletions
@@ -67,7 +67,7 @@ export function SettingsDialog({ open, onClose }: SettingsDialogProps) {
/>
{/* Dialog */}
<div className="relative bg-background border border-border rounded-xl shadow-2xl w-full max-w-3xl max-h-[85vh] flex overflow-hidden">
<div className="relative bg-background border border-border rounded-xl shadow-2xl w-full max-w-3xl h-[85vh] flex overflow-hidden">
{/* Sidebar nav */}
<div className="w-48 border-r border-border bg-muted/30 p-3 space-y-1 shrink-0">
<div className="flex items-center justify-between mb-4 px-2">
@@ -216,8 +216,8 @@ function SystemSection() {
const [saveMsg, setSaveMsg] = useState<string | null>(null);
useEffect(() => {
apiGet<Record<string, string>>("/v1/settings")
.then((data) => setSettings(data))
apiGet<{ settings: Record<string, string> }>("/v1/settings")
.then((data) => setSettings(data.settings))
.catch(() => {
// Fallback defaults if endpoint not ready
setSettings({
@@ -645,8 +645,8 @@ function ApiKeysSection() {
const loadKeys = useCallback(async () => {
try {
const data = await apiGet<{ keys: ApiKeyEntry[] }>("/v1/api-keys");
setKeys(data.keys);
const data = await apiGet<{ apiKeys: ApiKeyEntry[] }>("/v1/api-keys");
setKeys(data.apiKeys);
} catch {
setKeys([]);
} finally {
@@ -823,13 +823,21 @@ function AboutSection() {
>
GitHub Repository
</a>
<a
href="https://siddharthksah.github.io/Stirling-Image/"
target="_blank"
rel="noopener noreferrer"
className="text-sm text-primary hover:underline"
>
Documentation
</a>
<a
href="/api/docs"
target="_blank"
rel="noopener noreferrer"
className="text-sm text-primary hover:underline"
>
API Documentation
API Reference (Swagger)
</a>
</div>
</div>