https://github.com/langliu/novel-planet
书界 - 基于 Cloudflare 的小说网站
https://github.com/langliu/novel-planet
cloudflare hono nextjs novel orpc
Last synced: about 9 hours ago
JSON representation
书界 - 基于 Cloudflare 的小说网站
- Host: GitHub
- URL: https://github.com/langliu/novel-planet
- Owner: langliu
- Created: 2025-09-27T15:23:11.000Z (7 days ago)
- Default Branch: main
- Last Pushed: 2025-09-27T16:32:21.000Z (7 days ago)
- Last Synced: 2025-09-27T18:05:32.962Z (7 days ago)
- Topics: cloudflare, hono, nextjs, novel, orpc
- Language: TypeScript
- Homepage:
- Size: 330 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# novel-planet
This project was created with [Better-T-Stack](https://github.com/AmanVarshney01/create-better-t-stack), a modern TypeScript stack that combines Next.js, Hono, ORPC, and more.
## Features
- **TypeScript** - For type safety and improved developer experience
- **Next.js** - Full-stack React framework
- **TailwindCSS** - Utility-first CSS for rapid UI development
- **shadcn/ui** - Reusable UI components
- **Hono** - Lightweight, performant server framework
- **oRPC** - End-to-end type-safe APIs with OpenAPI integration
- **workers** - Runtime environment
- **Drizzle** - TypeScript-first ORM
- **SQLite/Turso** - Database engine
- **Authentication** - Better-Auth
- **Husky** - Git hooks for code quality
- **Turborepo** - Optimized monorepo build system## Getting Started
First, install the dependencies:
```bash
bun install
```
## Database SetupThis project uses SQLite with Drizzle ORM.
1. Start the local SQLite database:
Local development for a Cloudflare D1 database will already be running as part of the `wrangler dev` command.2. Update your `.env` file in the `apps/server` directory with the appropriate connection details if needed.
3. Apply the schema to your database:
```bash
bun db:push
```Then, run the development server:
```bash
bun dev
```Open [http://localhost:3001](http://localhost:3001) in your browser to see the web application.
The API is running at [http://localhost:3000](http://localhost:3000).## Before Deploying to Cloudflare
When you are ready to deploy your app to Cloudflare Workers, you'll have to make a couple changes.
- Change your url environment variables to match your `*.workers.dev` domains generated by Cloudflare:```bash
# apps/web/.env
SERVER_URL={your-production-server-domain}# apps/server/.env
CORS_ORIGIN={your-production-web-domain}
BETTER_AUTH_URL={your-production-server-domain}
```
- In `apps/server/lib/auth.ts`, uncomment the `session.cookieCache` and `advanced.crossSubDomainCookies` sections and replace `` with your actual workers subdomain. These settings are required to ensure cookies are transferred properly between your web and server domains.## Deployment (Cloudflare Wrangler)
- Web deploy: cd apps/web && bun deploy
- Server dev: cd apps/server && bun dev
- Server deploy: cd apps/server && bun deploy## Project Structure
```
novel-planet/
├── apps/
│ ├── web/ # Frontend application (Next.js)
│ └── server/ # Backend API (Hono, ORPC)
```## Available Scripts
- `bun dev`: Start all applications in development mode
- `bun build`: Build all applications
- `bun dev:web`: Start only the web application
- `bun dev:server`: Start only the server
- `bun check-types`: Check TypeScript types across all apps
- `bun db:push`: Push schema changes to database
- `bun db:studio`: Open database studio UI
- `cd apps/server && bun db:local`: Start the local SQLite database