mirror of
https://github.com/lobehub/lobehub
synced 2026-04-21 17:47:27 +00:00
* feat: Redesign doc
* chore: uopdate site
* chore: uopdate site
* chore: uopdate site
* chore: uopdate site
* chore: uopdate site
* feat: Uopdate content
* chore: New doc
* chore: Update content
* chore: Update content
* chore: add images
* chore: add images
* chore: add images
* chore: add images
* feat: Add more images
* feat: Add more images
* fix: Cannot reach end
* chore: Update content
* chore: Update content
* chore: Update content
* chore: Update content
* chore: Update content
* Revise README content and structure
Updated README to reflect changes in project description and removed outdated notes.
* Revise 'Getting Started' and TOC in README
Updated the 'Getting Started' section and modified the table of contents.
* chore: Update content
* Revise README structure and content
Updated the Getting Started section and removed the Table of Contents. Adjusted the Local Development instructions.
* Remove custom themes section from README
Removed section about custom themes from README.
* Update README.md
* Refine introduction and highlight cloud version
Updated wording for clarity and added recommendation for cloud version.
* chore: Update content
* chore: Update content
* chore: Update content
* chore: Update content
* chore: Update content
* chore: Update content
* chore: Update content
* fix: add missing translation
* 🔀 chore: Move README changes to feat/readme branch
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: add missing translation
* chore: update cdn
* docs: add migration guide from v1.x local database to v2.x and update help sections
Signed-off-by: Innei <tukon479@gmail.com>
* fix: add missing translation
* fix: add missing images
* fix: add missing changelogs
* fix: add missing changelogs
* fix: add missing changelogs
* fix: add missing changelogs
* fix: add missing changelogs
* style: update cdn
---------
Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: canisminor1990 <i@canisminor.cc>
Co-authored-by: Innei <tukon479@gmail.com>
107 lines
5 KiB
Text
107 lines
5 KiB
Text
---
|
|
title: Directory Structure
|
|
description: >-
|
|
Explore the organized directory structure of LobeHub, including app,
|
|
components, and services.
|
|
tags:
|
|
- LobeHub
|
|
- Directory Structure
|
|
- Next.js
|
|
- App Router
|
|
- API Architecture
|
|
---
|
|
|
|
# Directory Structure
|
|
|
|
The directory structure of LobeHub is as follows:
|
|
|
|
```bash
|
|
src
|
|
├── app # Next.js App Router implementation with route groups and API routes
|
|
├── components # Reusable UI components
|
|
├── config # Application configuration files, including client-side and server-side environment variables
|
|
├── features # Function modules related to business functions, such as agent settings, plugin development pop-ups, etc.
|
|
├── hooks # Custom utility hooks reused throughout the application
|
|
├── layout # Application layout components, such as navigation bars, sidebars, etc.
|
|
├── libs # Third-party integrations (analytics, OIDC, etc.)
|
|
├── locales # Internationalization language files
|
|
├── server # Server-side modules and services
|
|
├── services # Encapsulated backend service interfaces, such as HTTP requests
|
|
├── store # Zustand store for state management
|
|
├── styles # Global styles and CSS-in-JS configurations
|
|
├── types # TypeScript type definition files
|
|
└── utils # Common utility functions
|
|
```
|
|
|
|
## app
|
|
|
|
The `app` directory follows Next.js 13+ App Router conventions with a sophisticated architecture using [Route Groups](https://nextjs.org/docs/app/building-your-application/routing/route-groups) to organize backend services, platform variants, and application routes:
|
|
|
|
```bash
|
|
app
|
|
├── (backend)/ # Backend API routes and services
|
|
│ ├── api/ # REST API endpoints
|
|
│ │ ├── auth/ # Authentication routes
|
|
│ │ └── webhooks/ # Webhook handlers
|
|
│ ├── middleware/ # Request middleware
|
|
│ ├── oidc/ # OpenID Connect routes
|
|
│ ├── trpc/ # tRPC API endpoints
|
|
│ │ ├── async/ # Async tRPC routes
|
|
│ │ ├── desktop/ # Desktop-specific tRPC routes
|
|
│ │ ├── edge/ # Edge runtime tRPC routes
|
|
│ │ ├── lambda/ # Lambda tRPC routes
|
|
│ │ └── tools/ # Tools tRPC routes
|
|
│ └── webapi/ # Web API endpoints
|
|
│ ├── chat/ # Chat-related APIs
|
|
│ ├── models/ # Model management APIs
|
|
│ ├── tts/ # Text-to-speech APIs
|
|
│ └── ...
|
|
├── [variants]/ # Platform and device variants
|
|
│ ├── (auth)/ # Authentication pages
|
|
│ │ ├── login/
|
|
│ │ ├── signup/
|
|
│ │ └── next-auth/
|
|
│ ├── (main)/ # Main application routes
|
|
│ │ ├── (mobile)/ # Mobile-specific routes
|
|
│ │ │ └── me/ # Mobile profile pages
|
|
│ │ ├── _layout/ # Layout components
|
|
│ │ ├── chat/ # Chat interface
|
|
│ │ ├── discover/ # Discovery pages
|
|
│ │ ├── files/ # File management
|
|
│ │ ├── image/ # Image generation
|
|
│ │ ├── profile/ # User profile
|
|
│ │ ├── repos/ # Repository management
|
|
│ │ └── settings/ # Application settings
|
|
│ └── @modal/ # Parallel modal routes
|
|
│ ├── (.)changelog/
|
|
│ └── _layout/
|
|
├── desktop/ # Desktop-specific routes
|
|
│ └── devtools/
|
|
├── manifest.ts # PWA manifest
|
|
├── robots.tsx # Robots.txt generation
|
|
├── sitemap.tsx # Sitemap generation
|
|
└── sw.ts # Service worker
|
|
```
|
|
|
|
### Architecture Explanation
|
|
|
|
**Route Groups:**
|
|
|
|
- `(backend)` - Contains all server-side API routes, middleware, and backend services
|
|
- `[variants]` - Dynamic route group handling different platform variants and main application pages
|
|
- `@modal` - Parallel routes for modal dialogs using Next.js parallel routing
|
|
|
|
**Platform Organization:**
|
|
|
|
- The architecture supports multiple platforms (web, desktop, mobile) through route organization
|
|
- Desktop-specific routes are in the `desktop/` directory
|
|
- Mobile-specific routes are organized under `(main)/(mobile)/`
|
|
- Shared layouts and components are in `_layout/` directories
|
|
|
|
**API Architecture:**
|
|
|
|
- REST APIs in `(backend)/api/` and `(backend)/webapi/`
|
|
- tRPC endpoints organized by runtime environment (edge, lambda, async, desktop)
|
|
- Authentication and OIDC handling in dedicated route groups
|
|
|
|
This architecture provides clear separation of concerns while maintaining flexibility for different deployment targets and runtime environments.
|