A German-language shared document management system. All authenticated users share a single document library and can upload, organize, search, and preview documents.
- Astro 5 — SSR framework with Node adapter
- Vue 3 — Interactive components
- Better Auth — Authentication with passkey (WebAuthn) support
- Drizzle ORM — Database toolkit with PostgreSQL via Bun's native SQL driver
- Tailwind CSS 4 — Utility-first styling
- Reka UI — Headless component primitives (shadcn-vue)
-
Clone the repository and install dependencies:
bun install
-
Copy
.env.exampleto.envand configure the environment variables:cp .env.example .env
Variable Description Example DATABASE_URLPostgreSQL connection string postgresql://docura:password@localhost:5432/docuraBETTER_AUTH_SECRET32-byte base64 secret for sessions (generate with openssl rand -base64 32)BETTER_AUTH_URLAuth callback base URL http://localhost:4321PASSKEY_RP_IDWebAuthn relying party ID localhostPASSKEY_ORIGINWebAuthn origin http://localhost:4321 -
Run database migrations:
bun run db:migrate
-
Start the development server:
bun --bun run dev
The app will be available at
http://localhost:4321.
All commands are run from the project root:
| Command | Action |
|---|---|
bun --bun run dev |
Start dev server at localhost:4321 |
bun run build |
Build for production |
bun --bun run preview |
Preview production build |
bun run db:generate |
Generate Drizzle migrations from schema |
bun run db:migrate |
Run database migrations |
bun run lint --type-aware |
Run OxLint |
bun run astro check |
Run Astro project checks |
The postgres package is listed as a devDependency but is not used at runtime — the app uses Bun's native SQL driver (bun:sql) for all database access.
It exists solely because Drizzle Kit CLI commands (db:generate, db:migrate, etc.) require a recognized PostgreSQL driver package to connect to the database. Drizzle Kit does not support bun:sql yet.
Upstream issue: drizzle-orm#4122
This dependency can be removed once Drizzle Kit adds native Bun SQL support.