feat: enhance documentation and add new features for Afilmory

- Introduced a comprehensive `DEVELOPMENT.md` guide for contributors and self-hosters, detailing workspace layout and common commands.
- Updated `README.md` to include links to the new development guide and improved deployment instructions.
- Added new documentation files covering architecture, builder pipeline, configuration, and deployment strategies.
- Implemented new storage provider documentation for Backblaze B2, Eagle, GitHub, and local storage options.
- Enhanced the UI components with new features, including a navigation context and improved theme handling.
- Removed outdated GitHub Action deployment documentation.

Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
Innei
2025-11-23 19:40:51 +08:00
parent f598add893
commit d5a2ea4db2
61 changed files with 5768 additions and 1939 deletions

20
docs/architecture.md Normal file
View File

@@ -0,0 +1,20 @@
# Architecture Overview
- **apps/web**: React 19 + Vite SPA. Consumes `photos-manifest.json` and thumbnails under `apps/web/public`. Runs standalone or with injected manifest.
- **apps/ssr**: Next.js 15 wrapper. Injects manifest into HTML for SEO/OG and serves SPA assets. Provides dynamic OG generation.
- **packages/builder**: Photo pipeline. Syncs from storage (S3/B2/GitHub/local/Eagle), processes images, and writes manifest + thumbnails into the SPA.
- **packages/data / packages/utils / packages/hooks / packages/components / packages/ui**: Shared data access, utilities, hooks, and design system pieces.
- **be/**: Backend (Hono) and dashboard apps. Tenant/auth/billing logic lives here; see `docs/backend/*` and `be/apps/*/AGENTS.md`.
## Data Flow
1. Builder downloads photos from configured storage.
2. Generates thumbnails and `photos-manifest.json` (`apps/web/src/data/photos-manifest.json`).
3. SPA loads manifest either from the bundled JSON or `window.__MANIFEST__` when SSR/backend injects it.
4. SSR wraps SPA for SEO/OG; backend can also inject manifest for full-server mode.
## Key Traits
- Incremental sync to avoid reprocessing unchanged photos.
- Adapter pattern for storage providers.
- Shared types between builder, SPA, and SSR/backends to keep manifest schema aligned.