b73745c56c8feaf98c400e466ed7d4c004f54c0d
Move database setup logic from index.ts to a dedicated database.ts file for better modularity. Update index.ts to re-export from the new file and adjust import in migrations.ts accordingly.
Nontara
Nontara is an alternative to Jellyfin designed to provide private media streaming services. This platform allows users to manage and access their collections of movies, TV shows, music, and photos from various devices.
Features
- TypeScript - For type safety and improved developer experience
- TanStack Start - SSR framework with TanStack Router
- TailwindCSS - Utility-first CSS for rapid UI development
- shadcn/ui - Reusable UI components
- Hono - Lightweight, performant server framework
- tRPC - End-to-end type-safe APIs
- Bun - Runtime environment
- Drizzle - TypeScript-first ORM
- SQLite/Turso - Database engine
- Authentication - Better-Auth
- Biome - Linting and formatting
- Turborepo - Optimized monorepo build system
Getting Started
First, install the dependencies:
bun install
Database Setup
This project uses SQLite with Drizzle ORM.
- Start the local SQLite database:
cd apps/server && bun db:local
-
Update your
.envfile in theapps/serverdirectory with the appropriate connection details if needed. -
Apply the schema to your database:
bun db:push
Then, run the development server:
bun dev
Open http://localhost:3001 in your browser to see the web application. The API is running at http://localhost:3000.
Project Structure
nontara/
├── apps/
│ ├── web/ # Frontend application (React + TanStack Start)
│ └── server/ # Backend API (Hono, TRPC)
Available Scripts
bun dev: Start all applications in development modebun build: Build all applicationsbun dev:web: Start only the web applicationbun dev:server: Start only the serverbun check-types: Check TypeScript types across all appsbun db:push: Push schema changes to databasebun db:studio: Open database studio UIcd apps/server && bun db:local: Start the local SQLite databasebun check: Run Biome formatting and linting
Description
Nontara Media Server is an alternative to Jellyfin designed to provide private media streaming services. This platform allows users to manage and access their collections of movies, TV shows, music, and photos from various devices.
Languages
TypeScript
99.1%
CSS
0.9%