Deploy landing site to docs folder

This commit is contained in:
GitHub Action
2025-09-08 21:46:10 +00:00
parent 4b431640e8
commit db29937e7f
23 changed files with 49 additions and 38 deletions

View File

@@ -7,9 +7,9 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&display=swap" rel="stylesheet">
<script type="module" crossorigin src="/assets/api-bFwG1I4T.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-DAhCVYAn.js">
<link rel="stylesheet" crossorigin href="/assets/styles-73wRgAyJ.css">
<script type="module" crossorigin src="/assets/api-DHYfZ7Ms.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-DGJLjUaE.js">
<link rel="stylesheet" crossorigin href="/assets/styles-CsHvZ3hC.css">
</head>
<body>
<div id="root"></div>

View File

@@ -63,6 +63,13 @@
"description": "Upload an audio file without starting transcription",
"tag": "transcription"
},
{
"method": "POST",
"path": "/api/v1/transcription/upload-video",
"summary": "Upload video file for transcription",
"description": "Upload a video file, extract audio from it using ffmpeg, and create a transcription job",
"tag": "transcription"
},
{
"method": "POST",
"path": "/api/v1/transcription/submit",

View File

@@ -1 +1 @@
import{r as t,j as s,G as c}from"./styles-DAhCVYAn.js";function h({active:e="intro",children:i}){const[n,r]=t.useState(!1);return s.jsxs("div",{className:"min-h-screen bg-white",children:[s.jsx("header",{className:"api-topbar",children:s.jsxs("div",{className:"container-narrow py-3 flex items-center justify-between gap-3",children:[s.jsxs("a",{href:"/",className:"flex items-center gap-2 select-none min-w-0",children:[s.jsx("span",{className:"logo-font-poiret text-lg text-gray-900",children:"Scriberr"}),s.jsx("span",{className:"text-gray-300",children:"/"}),s.jsx("span",{className:"text-sm text-gray-600",children:"Docs"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Toggle sidebar",onClick:()=>r(l=>!l),children:s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:s.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),s.jsx("div",{className:"hidden md:block",children:s.jsx(c,{})})]})]})}),s.jsxs("main",{className:"container-narrow py-10",children:[n&&s.jsx("div",{className:"md:hidden mb-4 border border-gray-200 rounded-lg p-3",children:s.jsx(d,{active:e,onClick:()=>r(!1)})}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[240px_minmax(0,1fr)] gap-8",children:[s.jsx("aside",{className:"api-sidebar",children:s.jsxs("div",{className:"sticky top-24 pr-6",children:[s.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Docs"}),s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"space-y-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:a(e==="intro"),children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:a(e==="installation"),children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/diarization.html",className:a(e==="diarization"),children:"Diarization"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/contributing.html",className:a(e==="contributing"),children:"Contributing"})})]})})]})}),s.jsx("section",{className:"space-y-8 docs-prose",children:i})]})]})]})}function a(e){return`block rounded px-2 py-1 ${e?"bg-gray-100 text-gray-900":"text-gray-600 hover:text-gray-900"}`}function d({active:e,onClick:i}){return s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"grid grid-cols-2 gap-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:a(e==="intro"),onClick:i,children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:a(e==="installation"),onClick:i,children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/diarization.html",className:a(e==="diarization"),onClick:i,children:"Diarization"})}),s.jsx("li",{className:"col-span-2",children:s.jsx("a",{href:"/docs/contributing.html",className:a(e==="contributing"),onClick:i,children:"Contributing"})})]})})}export{h as D};
import{r as t,j as s,G as c}from"./styles-DGJLjUaE.js";function h({active:e="intro",children:i}){const[n,r]=t.useState(!1);return s.jsxs("div",{className:"min-h-screen bg-white",children:[s.jsx("header",{className:"api-topbar",children:s.jsxs("div",{className:"container-narrow py-3 flex items-center justify-between gap-3",children:[s.jsxs("a",{href:"/",className:"flex items-center gap-2 select-none min-w-0",children:[s.jsx("span",{className:"logo-font-poiret text-lg text-gray-900",children:"Scriberr"}),s.jsx("span",{className:"text-gray-300",children:"/"}),s.jsx("span",{className:"text-sm text-gray-600",children:"Docs"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Toggle sidebar",onClick:()=>r(l=>!l),children:s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:s.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),s.jsx("div",{className:"hidden md:block",children:s.jsx(c,{})})]})]})}),s.jsxs("main",{className:"container-narrow py-10",children:[n&&s.jsx("div",{className:"md:hidden mb-4 border border-gray-200 rounded-lg p-3",children:s.jsx(d,{active:e,onClick:()=>r(!1)})}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[240px_minmax(0,1fr)] gap-8",children:[s.jsx("aside",{className:"api-sidebar",children:s.jsxs("div",{className:"sticky top-24 pr-6",children:[s.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Docs"}),s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"space-y-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:a(e==="intro"),children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:a(e==="installation"),children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/diarization.html",className:a(e==="diarization"),children:"Diarization"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/contributing.html",className:a(e==="contributing"),children:"Contributing"})})]})})]})}),s.jsx("section",{className:"space-y-8 docs-prose",children:i})]})]})]})}function a(e){return`block rounded px-2 py-1 ${e?"bg-gray-100 text-gray-900":"text-gray-600 hover:text-gray-900"}`}function d({active:e,onClick:i}){return s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"grid grid-cols-2 gap-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:a(e==="intro"),onClick:i,children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:a(e==="installation"),onClick:i,children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/diarization.html",className:a(e==="diarization"),onClick:i,children:"Diarization"})}),s.jsx("li",{className:"col-span-2",children:s.jsx("a",{href:"/docs/contributing.html",className:a(e==="contributing"),onClick:i,children:"Contributing"})})]})})}export{h as D};

View File

@@ -1 +1 @@
import{j as s}from"./styles-DAhCVYAn.js";function o({src:e,alt:l,className:a}){return s.jsxs("div",{className:`rounded-2xl shadow-soft overflow-hidden bg-white hover-lift ${a??""}`,children:[s.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[s.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),s.jsx("img",{src:e,alt:l,className:"w-full object-cover"})]})}export{o as W};
import{j as s}from"./styles-DGJLjUaE.js";function o({src:e,alt:l,className:a}){return s.jsxs("div",{className:`rounded-2xl shadow-soft overflow-hidden bg-white hover-lift ${a??""}`,children:[s.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[s.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),s.jsx("img",{src:e,alt:l,className:"w-full object-cover"})]})}export{o as W};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
import{c as s,j as e,R as n}from"../styles-DAhCVYAn.js";import{D as r}from"../DocsLayout-BDGdyfmi.js";function t(){return e.jsxs(r,{active:"contributing",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Contributing"}),e.jsx("p",{className:"mt-2",children:"Thanks for your interest in improving Scriberr! Heres how to get set up and contribute."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Guidelines"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Open an issue first for large changes to discuss scope and approach."}),e.jsx("li",{children:"Keep pull requests focused and small; write clear descriptions."}),e.jsxs("li",{children:["Use conventional, imperative commit messages (e.g., ",e.jsx("code",{children:"add docs sidebar link"}),", ",e.jsx("code",{children:"fix queue status endpoint"}),")."]}),e.jsxs("li",{children:["Follow coding styles: run ",e.jsx("code",{children:"go fmt ./..."}),", ",e.jsx("code",{children:"go vet ./..."})," and ",e.jsx("code",{children:"npm run lint"})," in the frontend."]}),e.jsxs("li",{children:["Add tests where appropriate (Go tests live under ",e.jsx("code",{children:"tests/"})," or next to packages)."]}),e.jsx("li",{children:"Update docs (README, swagger) when you change API shapes."})]})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Prerequisites"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Node.js 18+ and npm"}),e.jsx("li",{children:"Go 1.24+"}),e.jsxs("li",{children:["Python 3.11+ and ",e.jsx("a",{href:"https://docs.astral.sh/uv/",target:"_blank",rel:"noopener noreferrer",children:"uv"})," (for transcription features)"]})]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:e.jsx("pre",{children:`# macOS (Homebrew)
import{c as s,j as e,R as n}from"../styles-DGJLjUaE.js";import{D as r}from"../DocsLayout-CwjFaNb7.js";function t(){return e.jsxs(r,{active:"contributing",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Contributing"}),e.jsx("p",{className:"mt-2",children:"Thanks for your interest in improving Scriberr! Heres how to get set up and contribute."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Guidelines"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Open an issue first for large changes to discuss scope and approach."}),e.jsx("li",{children:"Keep pull requests focused and small; write clear descriptions."}),e.jsxs("li",{children:["Use conventional, imperative commit messages (e.g., ",e.jsx("code",{children:"add docs sidebar link"}),", ",e.jsx("code",{children:"fix queue status endpoint"}),")."]}),e.jsxs("li",{children:["Follow coding styles: run ",e.jsx("code",{children:"go fmt ./..."}),", ",e.jsx("code",{children:"go vet ./..."})," and ",e.jsx("code",{children:"npm run lint"})," in the frontend."]}),e.jsxs("li",{children:["Add tests where appropriate (Go tests live under ",e.jsx("code",{children:"tests/"})," or next to packages)."]}),e.jsx("li",{children:"Update docs (README, swagger) when you change API shapes."})]})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Prerequisites"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Node.js 18+ and npm"}),e.jsx("li",{children:"Go 1.24+"}),e.jsxs("li",{children:["Python 3.11+ and ",e.jsx("a",{href:"https://docs.astral.sh/uv/",target:"_blank",rel:"noopener noreferrer",children:"uv"})," (for transcription features)"]})]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:e.jsx("pre",{children:`# macOS (Homebrew)
brew install node go python
curl -LsSf https://astral.sh/uv/install.sh | sh

View File

@@ -1 +1 @@
import{c as n,j as e,R as a}from"../styles-DAhCVYAn.js";import{D as t}from"../DocsLayout-BDGdyfmi.js";import{W as r}from"../Window-BTa2N_kG.js";function s(){return e.jsxs(t,{active:"diarization",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Setting up diarization"}),e.jsx("p",{className:"mt-2",children:"Enable local speaker diarization using pyannote models."})]}),e.jsxs("section",{children:[e.jsx("p",{className:"mt-2",children:"Diarization uses the opensource pyannote models for speaker segmentation. These models are hosted on Hugging Face. To access them, you will need a Hugging Face account. The access token is only used to download the models — diarization runs locally and does NOT use any thirdparty cloud services. Follow the steps below to enable diarization."}),e.jsxs("p",{className:"mt-4",children:["Create an account on ",e.jsx("a",{href:"https://huggingface.co",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co"})]}),e.jsx("p",{className:"mt-2",children:"Navigate to the following repositories:"}),e.jsxs("ul",{className:"list-disc pl-5 mt-1 space-y-1",children:[e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization-3.0",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization-3.0"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization-3.1",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization-3.1"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/segmentation-3.0",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/segmentation-3.0"})})]}),e.jsxs("p",{className:"mt-3",children:["Accept their user conditions. Navigate to ",e.jsx("a",{href:"https://huggingface.co/settings/gated-repos",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/settings/gated-repos"})," to ensure these repos show up on that page as gated repos."]}),e.jsx("p",{className:"mt-2",children:'Then navigate to Settings -> Access Tokens and create a new token. Under permissions, enable all under the "Repositories" section. Copy and save the token somewhere securely. You will need this access token for using diarization.'}),e.jsx("p",{className:"mt-3",children:"In the app, to enable diarization — either when creating a new profile or using the Transcribe+ action — open the Diarization tab in the dialog and paste your token into the Hugging Face Token field."})]}),e.jsx("div",{className:"mt-6",children:e.jsx(r,{className:"w-[300px] mx-auto",src:"/screenshots/scriberr-diarization-setup.png",alt:"Diarization setup in Scriberr"})})]})}const i=n(document.getElementById("root"));i.render(e.jsx(a.StrictMode,{children:e.jsx(s,{})}));
import{c as n,j as e,R as a}from"../styles-DGJLjUaE.js";import{D as t}from"../DocsLayout-CwjFaNb7.js";import{W as r}from"../Window-BJy5jSY4.js";function s(){return e.jsxs(t,{active:"diarization",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Setting up diarization"}),e.jsx("p",{className:"mt-2",children:"Enable local speaker diarization using pyannote models."})]}),e.jsxs("section",{children:[e.jsx("p",{className:"mt-2",children:"Diarization uses the opensource pyannote models for speaker segmentation. These models are hosted on Hugging Face. To access them, you will need a Hugging Face account. The access token is only used to download the models — diarization runs locally and does NOT use any thirdparty cloud services. Follow the steps below to enable diarization."}),e.jsxs("p",{className:"mt-4",children:["Create an account on ",e.jsx("a",{href:"https://huggingface.co",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co"})]}),e.jsx("p",{className:"mt-2",children:"Navigate to the following repositories:"}),e.jsxs("ul",{className:"list-disc pl-5 mt-1 space-y-1",children:[e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization-3.0",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization-3.0"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization-3.1",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization-3.1"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/segmentation-3.0",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/segmentation-3.0"})})]}),e.jsxs("p",{className:"mt-3",children:["Accept their user conditions. Navigate to ",e.jsx("a",{href:"https://huggingface.co/settings/gated-repos",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/settings/gated-repos"})," to ensure these repos show up on that page as gated repos."]}),e.jsx("p",{className:"mt-2",children:'Then navigate to Settings -> Access Tokens and create a new token. Under permissions, enable all under the "Repositories" section. Copy and save the token somewhere securely. You will need this access token for using diarization.'}),e.jsx("p",{className:"mt-3",children:"In the app, to enable diarization — either when creating a new profile or using the Transcribe+ action — open the Diarization tab in the dialog and paste your token into the Hugging Face Token field."})]}),e.jsx("div",{className:"mt-6",children:e.jsx(r,{className:"w-[300px] mx-auto",src:"/screenshots/scriberr-diarization-setup.png",alt:"Diarization setup in Scriberr"})})]})}const i=n(document.getElementById("root"));i.render(e.jsx(a.StrictMode,{children:e.jsx(s,{})}));

View File

@@ -1,4 +1,4 @@
import{c as s,j as e,R as r}from"../styles-DAhCVYAn.js";import{D as a}from"../DocsLayout-BDGdyfmi.js";function t(){return e.jsxs(a,{active:"installation",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Installation"}),e.jsx("p",{className:"mt-2",children:"Get Scriberr running on your system in a few minutes."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Install with Homebrew (macOS & Linux)"}),e.jsxs("p",{className:"mt-2",children:["The easiest way to install Scriberr is using Homebrew. If you dont have Homebrew installed,",e.jsx("a",{href:"https://brew.sh",target:"_blank",rel:"noopener noreferrer",className:"ml-1",children:"get it here first"}),"."]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-3",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Add the Scriberr tap"}),e.jsx("br",{}),"brew tap rishikanthc/scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Install Scriberr (automatically installs UV dependency)"}),e.jsx("br",{}),"brew install scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Start the server"}),e.jsx("br",{}),"scriberr"]})}),e.jsxs("p",{className:"mt-3",children:["Open ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"http://localhost:8080"})," in your browser."]}),e.jsx("h3",{className:"mt-8",children:"Configuration"}),e.jsxs("p",{className:"mt-2",children:["Scriberr works out of the box. To customize settings, create a ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:".env"})," file:"]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Server settings"}),e.jsx("br",{}),"HOST=localhost",e.jsx("br",{}),"PORT=8080",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Data storage (optional)"}),e.jsx("br",{}),"DATABASE_PATH=./data/scriberr.db",e.jsx("br",{}),"UPLOAD_DIR=./data/uploads",e.jsx("br",{}),"WHISPERX_ENV=./data/whisperx-env",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Custom paths (if needed)"}),e.jsx("br",{}),"UV_PATH=/custom/path/to/uv"]})}),e.jsx("h3",{className:"mt-8",children:"Troubleshooting"}),e.jsxs("div",{className:"space-y-3 mt-2",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Command not found"}),e.jsxs("p",{className:"mt-1",children:["Make sure the binary is in your PATH or run it with the full path: ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"./scriberr"})]})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Transcription not working"}),e.jsx("p",{className:"mt-1",children:"Ensure Python 3.11+ and UV are installed. Check logs on start for Python environment issues."})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Port already in use"}),e.jsxs("p",{className:"mt-1",children:["Set a different port with ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"PORT=8081 scriberr"})," or add it to your .env file."]})]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"mt-12",children:"Install with Docker"}),e.jsx("p",{className:"mt-2",children:"Run Scriberr in a container with all dependencies included."}),e.jsx("h3",{className:"mt-4",children:"Quick start"}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:[e.jsx("span",{className:"text-green-600",children:"# Run with Docker (data persisted in volume)"}),e.jsx("pre",{className:"mt-2",children:`docker run -d \\
import{c as s,j as e,R as r}from"../styles-DGJLjUaE.js";import{D as a}from"../DocsLayout-CwjFaNb7.js";function t(){return e.jsxs(a,{active:"installation",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Installation"}),e.jsx("p",{className:"mt-2",children:"Get Scriberr running on your system in a few minutes."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Install with Homebrew (macOS & Linux)"}),e.jsxs("p",{className:"mt-2",children:["The easiest way to install Scriberr is using Homebrew. If you dont have Homebrew installed,",e.jsx("a",{href:"https://brew.sh",target:"_blank",rel:"noopener noreferrer",className:"ml-1",children:"get it here first"}),"."]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-3",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Add the Scriberr tap"}),e.jsx("br",{}),"brew tap rishikanthc/scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Install Scriberr (automatically installs UV dependency)"}),e.jsx("br",{}),"brew install scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Start the server"}),e.jsx("br",{}),"scriberr"]})}),e.jsxs("p",{className:"mt-3",children:["Open ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"http://localhost:8080"})," in your browser."]}),e.jsx("h3",{className:"mt-8",children:"Configuration"}),e.jsxs("p",{className:"mt-2",children:["Scriberr works out of the box. To customize settings, create a ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:".env"})," file:"]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Server settings"}),e.jsx("br",{}),"HOST=localhost",e.jsx("br",{}),"PORT=8080",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Data storage (optional)"}),e.jsx("br",{}),"DATABASE_PATH=./data/scriberr.db",e.jsx("br",{}),"UPLOAD_DIR=./data/uploads",e.jsx("br",{}),"WHISPERX_ENV=./data/whisperx-env",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Custom paths (if needed)"}),e.jsx("br",{}),"UV_PATH=/custom/path/to/uv"]})}),e.jsx("h3",{className:"mt-8",children:"Troubleshooting"}),e.jsxs("div",{className:"space-y-3 mt-2",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Command not found"}),e.jsxs("p",{className:"mt-1",children:["Make sure the binary is in your PATH or run it with the full path: ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"./scriberr"})]})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Transcription not working"}),e.jsx("p",{className:"mt-1",children:"Ensure Python 3.11+ and UV are installed. Check logs on start for Python environment issues."})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Port already in use"}),e.jsxs("p",{className:"mt-1",children:["Set a different port with ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"PORT=8081 scriberr"})," or add it to your .env file."]})]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"mt-12",children:"Install with Docker"}),e.jsx("p",{className:"mt-2",children:"Run Scriberr in a container with all dependencies included."}),e.jsx("h3",{className:"mt-4",children:"Quick start"}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:[e.jsx("span",{className:"text-green-600",children:"# Run with Docker (data persisted in volume)"}),e.jsx("pre",{className:"mt-2",children:`docker run -d \\
--name scriberr \\
-p 8080:8080 \\
-v scriberr_data:/app/data \\

View File

@@ -1 +1 @@
import{c as r,j as e,R as i}from"../styles-DAhCVYAn.js";import{D as n}from"../DocsLayout-BDGdyfmi.js";import{W as s}from"../Window-BTa2N_kG.js";function t(){return e.jsxs(n,{active:"intro",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Introduction"}),e.jsx("p",{className:"mt-2",children:"A quick overview of Scriberr and what you can do with it."})]}),e.jsxs("article",{children:[e.jsx("h2",{children:"What is Scriberr?"}),e.jsx("p",{className:"mt-2",children:"Scriberr is a self-hosted, offline transcription app for converting audio files into text. Record or upload audio, get it transcribed, and quickly summarize or chat using your preferred LLM provider. Scriberr doesnt require GPUs (although GPUs can be used for acceleration) and runs on modern CPUs, offering a range of trade-offs between speed and transcription quality."}),e.jsx("p",{className:"mt-2",children:"Scriberr is built with React on the frontend and Go on the backend, compiled into a single binary. It uses the WhisperX engine and open-source Whisper models for transcription. Some key features include:"}),e.jsxs("ul",{className:"mt-2 list-disc pl-5 space-y-1",children:[e.jsx("li",{children:"Fine-tune advanced transcription parameters for precise control over quality"}),e.jsx("li",{children:"Built-in recorder to capture audio directly inapp"}),e.jsx("li",{children:"Speaker diarization to identify and label different speakers"}),e.jsx("li",{children:"Summarize & chat with your audio using LLMs"}),e.jsx("li",{children:"Highlight, annotate, and tag notes"}),e.jsx("li",{children:"Save configurations as profiles for different audio scenarios"}),e.jsx("li",{children:"API endpoints for building your own automations and applications"})]}),e.jsx("div",{className:"mt-5",children:e.jsx(s,{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage"})}),e.jsxs("p",{className:"mt-4",children:["To install Scriberr, check the ",e.jsx("a",{href:"/docs/installation.html",children:"installation page"})," for setup instructions."]})]})]})}const o=r(document.getElementById("root"));o.render(e.jsx(i.StrictMode,{children:e.jsx(t,{})}));
import{c as r,j as e,R as i}from"../styles-DGJLjUaE.js";import{D as n}from"../DocsLayout-CwjFaNb7.js";import{W as s}from"../Window-BJy5jSY4.js";function t(){return e.jsxs(n,{active:"intro",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Introduction"}),e.jsx("p",{className:"mt-2",children:"A quick overview of Scriberr and what you can do with it."})]}),e.jsxs("article",{children:[e.jsx("h2",{children:"What is Scriberr?"}),e.jsx("p",{className:"mt-2",children:"Scriberr is a self-hosted, offline transcription app for converting audio files into text. Record or upload audio, get it transcribed, and quickly summarize or chat using your preferred LLM provider. Scriberr doesnt require GPUs (although GPUs can be used for acceleration) and runs on modern CPUs, offering a range of trade-offs between speed and transcription quality."}),e.jsx("p",{className:"mt-2",children:"Scriberr is built with React on the frontend and Go on the backend, compiled into a single binary. It uses the WhisperX engine and open-source Whisper models for transcription. Some key features include:"}),e.jsxs("ul",{className:"mt-2 list-disc pl-5 space-y-1",children:[e.jsx("li",{children:"Fine-tune advanced transcription parameters for precise control over quality"}),e.jsx("li",{children:"Built-in recorder to capture audio directly inapp"}),e.jsx("li",{children:"Speaker diarization to identify and label different speakers"}),e.jsx("li",{children:"Summarize & chat with your audio using LLMs"}),e.jsx("li",{children:"Highlight, annotate, and tag notes"}),e.jsx("li",{children:"Save configurations as profiles for different audio scenarios"}),e.jsx("li",{children:"API endpoints for building your own automations and applications"})]}),e.jsx("div",{className:"mt-5",children:e.jsx(s,{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage"})}),e.jsxs("p",{className:"mt-4",children:["To install Scriberr, check the ",e.jsx("a",{href:"/docs/installation.html",children:"installation page"})," for setup instructions."]})]})]})}const o=r(document.getElementById("root"));o.render(e.jsx(i.StrictMode,{children:e.jsx(t,{})}));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -7,9 +7,9 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&display=swap" rel="stylesheet">
<script type="module" crossorigin src="/assets/changelog-DGSZ6MXL.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-DAhCVYAn.js">
<link rel="stylesheet" crossorigin href="/assets/styles-73wRgAyJ.css">
<script type="module" crossorigin src="/assets/changelog-DWzfAPOu.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-DGJLjUaE.js">
<link rel="stylesheet" crossorigin href="/assets/styles-CsHvZ3hC.css">
</head>
<body>
<div id="root"></div>

View File

@@ -7,10 +7,10 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/contributing-CmtFphE8.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-DAhCVYAn.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-BDGdyfmi.js">
<link rel="stylesheet" crossorigin href="../assets/styles-73wRgAyJ.css">
<script type="module" crossorigin src="../assets/docs/contributing-CC8jrLw6.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-DGJLjUaE.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-CwjFaNb7.js">
<link rel="stylesheet" crossorigin href="../assets/styles-CsHvZ3hC.css">
</head>
<body>
<div id="root"></div>

View File

@@ -7,11 +7,11 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/diarization-CUktH-fa.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-DAhCVYAn.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-BDGdyfmi.js">
<link rel="modulepreload" crossorigin href="../assets/Window-BTa2N_kG.js">
<link rel="stylesheet" crossorigin href="../assets/styles-73wRgAyJ.css">
<script type="module" crossorigin src="../assets/docs/diarization-7IInt4rl.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-DGJLjUaE.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-CwjFaNb7.js">
<link rel="modulepreload" crossorigin href="../assets/Window-BJy5jSY4.js">
<link rel="stylesheet" crossorigin href="../assets/styles-CsHvZ3hC.css">
</head>
<body>
<div id="root"></div>

View File

@@ -7,10 +7,10 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/installation-DCK86Uqj.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-DAhCVYAn.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-BDGdyfmi.js">
<link rel="stylesheet" crossorigin href="../assets/styles-73wRgAyJ.css">
<script type="module" crossorigin src="../assets/docs/installation-D_xAZIAP.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-DGJLjUaE.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-CwjFaNb7.js">
<link rel="stylesheet" crossorigin href="../assets/styles-CsHvZ3hC.css">
</head>
<body>
<div id="root"></div>

View File

@@ -7,11 +7,11 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poiret+One&family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<script type="module" crossorigin src="../assets/docs/intro-CsxoQerG.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-DAhCVYAn.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-BDGdyfmi.js">
<link rel="modulepreload" crossorigin href="../assets/Window-BTa2N_kG.js">
<link rel="stylesheet" crossorigin href="../assets/styles-73wRgAyJ.css">
<script type="module" crossorigin src="../assets/docs/intro-oOWQqgT4.js"></script>
<link rel="modulepreload" crossorigin href="../assets/styles-DGJLjUaE.js">
<link rel="modulepreload" crossorigin href="../assets/DocsLayout-CwjFaNb7.js">
<link rel="modulepreload" crossorigin href="../assets/Window-BJy5jSY4.js">
<link rel="stylesheet" crossorigin href="../assets/styles-CsHvZ3hC.css">
</head>
<body>
<div id="root"></div>

View File

@@ -2,16 +2,20 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" sizes="32x32" href="/scriberr-thumb.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/scriberr-thumb.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/scriberr-thumb.png" />
<link rel="shortcut icon" href="/scriberr-thumb.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Scriberr — sleek, minimal transcription app. Transcribe, summarize and annotate audio effortlessly." />
<title>Scriberr — Transcribe audio. Summarize. Annotate.</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Poiret+One&display=swap" rel="stylesheet">
<script type="module" crossorigin src="/assets/index-D8RF9mpR.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-DAhCVYAn.js">
<link rel="modulepreload" crossorigin href="/assets/Window-BTa2N_kG.js">
<link rel="stylesheet" crossorigin href="/assets/styles-73wRgAyJ.css">
<script type="module" crossorigin src="/assets/index-CTEra42u.js"></script>
<link rel="modulepreload" crossorigin href="/assets/styles-DGJLjUaE.js">
<link rel="modulepreload" crossorigin href="/assets/Window-BJy5jSY4.js">
<link rel="stylesheet" crossorigin href="/assets/styles-CsHvZ3hC.css">
</head>
<body>
<div id="root"></div>

BIN
docs/scriberr-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
docs/scriberr-thumb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB