Commit Graph

267 Commits

Author SHA1 Message Date
Vincent He
7fbb82c533 perf(web): optimize thumbnail loading with virtual scrolling and lazy… (#167) 2025-11-25 16:17:12 +08:00
Chrys
3a52858473 feat(location): add location-based search functionality (#168) 2025-11-25 16:16:14 +08:00
Innei
ef48808363 feat: enhance landing page with GitHub link and NocturneButton updates
- Added a GitHub link in the footer for easy access to the project repository.
- Simplified the NocturneButton component by removing unnecessary elements and adjusting styles for improved layout.
- Updated localization files to include the new GitHub string in both English and Chinese.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 23:06:05 +08:00
Innei
b6ec7886dd fix: adjust padding in NormalContainer for improved layout
- Updated the top padding in the NormalContainer component to enhance spacing and visual consistency across different screen sizes.
- Ensured that the layout remains responsive and aligns with the overall design standards of the landing page.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 22:46:09 +08:00
Innei
d9a5be56e6 feat: add support for Aliyun OSS and Tencent COS storage providers
- Updated documentation to include Aliyun OSS and Tencent COS as storage options.
- Introduced configuration examples for both providers in the storage providers documentation.
- Enhanced the storage provider registration to accommodate new providers.
- Updated the storage configuration interfaces to support OSS and COS.
- Modified the S3 client and provider implementations to handle requests for OSS and COS.
- Added environment variable configurations for OSS and COS.
- Implemented necessary changes in the UI schema and routes to reflect the new providers.
- Updated localization files for new storage provider types.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 22:26:47 +08:00
Innei
59c647ec96 refactor: clean up styles and layout on landing page
- Removed unnecessary background color from the landing page container for a cleaner look.
- Simplified the NocturneHero section by eliminating redundant styles, enhancing responsiveness.
- Updated global styles to apply background color alongside text color for improved readability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 21:24:50 +08:00
Innei
3980e24617 feat: integrate react-responsive-masonry for improved gallery layout
- Added the react-responsive-masonry package to enhance the layout of the GalleryShowcase component, allowing for a responsive grid display of galleries.
- Updated the GalleryShowcase component to utilize Masonry and ResponsiveMasonry for better visual organization of gallery items.
- Included new dependencies in package.json and pnpm-lock.yaml for react-responsive-masonry and its types.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 21:22:16 +08:00
Innei
471c1b11ae feat: enhance GalleryShowcase with photo count and tags
- Added photo count and tags display to the GalleryShowcase component, improving the information presented to users.
- Updated the FeaturedGalleriesService to fetch photo counts and popular tags for each tenant, ensuring accurate data representation.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 21:08:46 +08:00
Innei
5a98b43544 feat: add Gallery Showcase component and update documentation
- Introduced a new Gallery Showcase component to display featured galleries on the landing page.
- Updated localization files to include new strings for the Gallery Showcase.
- Enhanced the landing page by integrating the Gallery Showcase component alongside existing elements.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 21:00:19 +08:00
Wenzhuo Liu
58a989c1e4 feat(geocoding): implement reverse geocoding (#157)
Co-authored-by: Innei <tukon479@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-24 14:48:57 +08:00
Whitewater
7844b3a0b2 docs: add Cloudflare Pages deployment guide (#162)
Co-authored-by: Innei <tukon479@gmail.com>
2025-11-23 20:49:54 +08:00
Innei
1cdab9835f feat: update GitHub Actions workflow and reorganize route imports
- Added a step to the GitHub Actions workflow in `core-image.yml` to trigger a Dokploy deployment via a webhook.
- Reorganized route imports in `routes.ts` to improve clarity and maintainability, adding new routes for storage providers and SaaS documentation.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-23 20:46:49 +08:00
Innei
b5fa9576a4 feat: enhance SaaS documentation and introduce health check module
- Added new documentation sections for SaaS architecture, deployment, and CMS functionality, detailing multi-tenant capabilities and live updates.
- Removed the outdated "Advanced SaaS Deployment" documentation in favor of a more streamlined approach.
- Introduced a health check module with endpoints to monitor the status of the database and Redis services, improving system reliability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-23 20:44:15 +08:00
Chrys
5f03285531 fix: photo viewer logic to use filtered photos for opening (#161) 2025-11-23 20:24:32 +08:00
Chrys
46e573c5e1 refactor: social media URL handling improvement (#165) 2025-11-23 20:23:03 +08:00
Innei
1c64070a5d feat: add GitHub Actions workflow for building and publishing core Docker image
- Introduced a new GitHub Actions workflow in `core-image.yml` to automate the build and publish process for the core Docker image.
- The workflow triggers on pushes to the main branch and supports manual dispatch.
- Configured steps for checking out the repository, setting up Docker Buildx, logging into the GitHub Container Registry, extracting Docker metadata, and building and pushing the Docker image.

Additionally, updated documentation to reflect changes in the deployment process, including a new section for multi-tenant SaaS deployment.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-23 20:22:23 +08:00
Innei
848d9af672 refactor: update route imports and improve scroller functionality
- Reorganized route imports in `routes.ts` to enhance clarity and maintainability, adding new storage provider routes.
- Modified `scroller.ts` to use a default scroller element based on window availability, improving compatibility in different environments.
- Updated context creation in `ctx.ts` to ensure proper handling of the scroll element in non-browser environments.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-23 19:50:45 +08:00
Innei
4b931f8c7a refactor: simplify build process and remove unused components
- Updated the build script for the client to streamline the process by removing TypeScript compilation.
- Removed the LinearBorderPanel component and its associated exports from the index file, cleaning up unused code.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-23 19:45:24 +08:00
Innei
d5a2ea4db2 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>
2025-11-23 19:40:51 +08:00
Innei
914342807d feat: add SSR support for photo pages with separate dev and prod handlers
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-21 00:06:18 +08:00
Innei
eadb5b2f3d fix: update OG_IMAGE_URL to point to the correct asset location
- Changed the OG_IMAGE_URL constant to a direct link for the Afilmory readme image on GitHub, ensuring proper display in SEO metadata.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 16:24:35 +08:00
Innei
da429585da feat: add background color to body in global styles
- Applied a black background color to the body element in the global CSS file to enhance the visual design of the landing page.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 14:00:33 +08:00
Innei
c1dc142f41 feat: add logo image and update page header with new branding
- Introduced a new logo image for Afilmory.
- Updated the PageHeader component to display the logo using Next.js Image component for optimized loading.
- Enhanced SEO by updating the title in English and Chinese locale files to reflect the new branding.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 01:30:03 +08:00
Innei
84ff4ef44f fix: update documentation artifact path in GitHub Actions workflow
- Changed the artifact path from './packages/docs/dist' to './apps/docs/dist' to reflect the correct directory structure for documentation deployment.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 01:20:13 +08:00
Innei
b5fdb326a4 feat: update landing configuration and remove unused components
- Enhanced Next.js configuration by integrating codeInspectorPlugin for improved bundler support.
- Added dynamic export settings in robots and sitemap files to enforce static generation.
- Removed obsolete components and hooks to streamline the codebase, including error handling, UI elements, and various utility functions.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 00:49:30 +08:00
Innei
a39e130c65 feat: enhance SEO and metadata handling across landing pages
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 00:18:59 +08:00
Innei
8713d2c9e7 feat: add tenant slug validation and availability check
- Implemented TenantController with a new endpoint to check tenant slug availability.
- Added slug normalization and validation logic to ensure slugs meet specified criteria.
- Integrated SystemSettingService to retrieve base domain for tenant URLs.
- Updated TenantService to include a method for checking slug availability against existing records.
- Modified TenantModule to include the new TenantController and SystemSettingModule dependencies.
- Updated pnpm-lock.yaml to include new dependencies and version updates.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 23:56:30 +08:00
Innei
fcee67b309 feat: Implement AppStateModule and AppStateService for application initialization state management
feat: Enhance PhotoAssetService with findPhotosByIds method for batch retrieval of photo manifests

refactor: Move PhotoAsset types to a dedicated file for better organization

feat: Introduce StaticAssetController and StaticShareController for handling static asset requests

feat: Create StaticShareService to manage share page functionality and dynamic data injection

refactor: Consolidate static web controller logic into StaticBaseController for code reuse

fix: Update module imports to reflect new directory structure for AppStateModule

chore: Update pnpm lockfile to include new dependencies
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 21:51:48 +08:00
Innei
c8b7fcc882 feat(dashboard): update photo management components and dependencies
- Updated `babel-plugin-react-compiler` and `react-compiler-runtime` to version 1.0.0 across multiple package.json files.
- Refactored `PhotoPage` and related components to utilize new tab structure for better organization.
- Introduced `PhotoPageScaffold` and `PhotoPageTabs` for improved layout and navigation within the photo management section.
- Enhanced `PhotoSyncTab`, `PhotoStorageTab`, and `PhotoUsageTab` components for better functionality and user experience.
- Adjusted imports and component structure for clarity and maintainability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 01:14:03 +08:00
Innei
855decbe77 refactor(photo): optimize photo loading and improve component imports
- Changed photo loading methods to remove unnecessary await for synchronous operations.
- Updated import path for icons in PhotoItem component for better clarity and organization.
- Adjusted class names for consistency in styling.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-17 23:29:07 +08:00
Innei
af3b5b9799 feat(landing): update landing page metadata and branding
- Changed website URL and updated SEO metadata to reflect new branding for Afilmory.
- Revised title, description, and keywords to align with the new focus on photography and immersive experiences.
- Removed unused user-related metadata to streamline the layout.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-16 22:55:53 +08:00
Innei
fab85313b0 refactor(landing): remove unused navigation items from PageHeader component
- Eliminated hardcoded navigation items from the PageHeader component to streamline the layout.
- Cleaned up the code by removing the associated navigation rendering logic.
- Improved maintainability of the component by focusing on essential elements.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-16 20:41:38 +08:00
Innei
2e6ef268e5 feat(landing): enhance landing page with privacy and terms of service
- Added new pages for Privacy Policy and Terms of Service, including markdown content rendering.
- Integrated `react-markdown` for displaying legal documents.
- Updated layout to include a footer with links to the new pages.
- Refactored layout components to improve structure and maintainability.
- Removed unused footer navigation items to streamline the design.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-16 20:41:02 +08:00
Innei
d1dee58219 feat(billing): implement billing plan management and usage tracking
- Introduced billing plans with associated quotas for tenants, including maximum upload sizes and processing limits.
- Added new endpoints and services for managing tenant billing plans and tracking usage events.
- Enhanced the dashboard with components for viewing and updating tenant plans, including a new tenant management interface.
- Implemented database migrations to support billing-related data structures and relationships.
- Updated documentation to reflect the new billing plan features and usage tracking capabilities.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-16 20:10:47 +08:00
Innei
dafc621033 feat(config): update site configuration and enhance author handling
- Changed default site name and URL to reflect new branding.
- Updated author information in the site configuration, including name, URL, and avatar.
- Removed author-related settings from the configuration schema to streamline the setup.
- Enhanced the SiteSettingService to resolve author details dynamically based on tenant context.
- Added a new endpoint to retrieve the status of photo synchronization, improving user feedback on sync operations.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-15 01:08:31 +08:00
Innei
77f16490e4 chore: adjust docs and add cjk font
- Created a new documentation site under `apps/docs` using Vite, React, and MDX.
- Added essential files including `index.html`, `package.json`, and various configuration files.
- Implemented a file-system based routing system with automatic route generation from markdown files.
- Included support for syntax highlighting, responsive design, and TypeScript.
- Established a structure for documentation content with initial deployment guides and storage provider information.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-14 21:52:54 +08:00
Wenzhuo Liu
f2658cf5a5 feat: support hdr motion photo (#155) 2025-11-14 14:26:03 +08:00
Innei
6a4f868a5a feat(docker): add Docker Compose configuration for database and caching services
- Introduced a new `docker-compose.yml` file to define services for PostgreSQL and Redis, facilitating local development and testing.
- Configured health checks for both services to ensure they are ready before the core application starts.
- Set up environment variables for the PostgreSQL service to manage user credentials and database initialization.
- Added volume mappings for persistent data storage in both PostgreSQL and Redis.

refactor(auth): streamline tenant context resolution and error handling

- Simplified the `AuthGuard` to throw a `BizException` with a detailed message when tenant IDs do not match.
- Removed unnecessary response header settings in the `TenantContextResolver` and middleware, improving clarity and maintainability.
- Updated various controllers and services to utilize the new tenant context handling logic, ensuring consistent behavior across the application.

feat(super-admin): implement builder debug functionality

- Added `SuperAdminBuilderDebugController` to handle image debugging requests with progress tracking.
- Introduced an in-memory storage provider for debugging purposes, allowing for temporary file uploads and processing.
- Enhanced the dashboard with a new debug page for super admins to test and validate image processing workflows.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-13 23:43:22 +08:00
Innei
936666d8a2 refactor: remove unnecessary window checks across components
- Eliminated checks for `typeof window !== 'undefined'` in various components and utility functions, simplifying the codebase.
- Updated logic to directly access `window` properties, assuming the code runs in a browser environment.
- Improved readability and maintainability by streamlining conditional checks related to window availability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-13 15:03:46 +08:00
Innei
42c217e2f8 chore(deps): update package versions across the project
- Bumped versions for several dependencies including `@types/node`, `eslint`, `sharp`, `vite`, and various `@tanstack/react-query` packages to their latest releases for improved stability and features.
- Updated Tailwind CSS related packages to version 4.1.17 for consistency across the project.
- Adjusted other dependencies such as `jotai`, `lucide-react`, and `tailwind-merge` to their latest versions to ensure compatibility and access to new features.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-12 23:57:37 +08:00
Innei
76d60fd672 feat(ui): introduce LinearBorderContainer component and enhance NotFound pages
- Added LinearBorderContainer component for improved UI styling with gradient borders.
- Refactored NotFound components in both web and dashboard to utilize LinearBorderContainer, enhancing visual presentation and user experience.
- Updated layout and messaging for 404 error pages to provide clearer navigation options.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-12 22:47:56 +08:00
Innei
9c4fe4155f chore(landing): update
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-11 23:21:54 +08:00
Innei
16d78812ee chore(landing): update landing
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-11 22:52:35 +08:00
Innei
2665778890 chore: landing init 2025-11-11 21:47:58 +08:00
Wenzhuo Liu
777e8cbbba feat: add support for motion photo (#153) 2025-11-10 23:23:09 +08:00
Innei
5fd3fcb1b5 fix(logging): enhance HTTP logging to include tenant information
- Updated the LoggingInterceptor to extract and log tenant information during HTTP requests.
- Improved log messages to include tenant slug for better traceability in multi-tenant environments.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-10 17:23:41 +08:00
Innei
8d0e5dfe6b feat(sdk): consolidate SDK functionality and update dependencies
- Introduced a new SDK package to replace the previous ssr-sdk, consolidating shared functionality for handling views and reactions.
- Updated package.json files across applications to reference the new @afilmory/sdk.
- Removed the old ssr-sdk package and its associated files, streamlining the codebase.
- Enhanced API routes for reactions and views to utilize the new SDK schemas and client methods.
- Updated dependencies in various packages to ensure compatibility and improved functionality.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-08 21:13:02 +08:00
Innei
caf47a4a01 feat(og): implement Open Graph image generation for photos
- Added OgModule with OgController and OgService to handle Open Graph image requests.
- Integrated Satori and Resvg for rendering images based on photo metadata.
- Created OgTemplate for structuring the Open Graph image layout.
- Enhanced error handling for photo retrieval and image generation processes.
- Updated package dependencies to include @resvg/resvg-js and satori for image processing.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-08 17:58:12 +08:00
Innei
44f9cbb376 feat(feed): implement RSS feed generation and caching mechanism
- Introduced a new FeedModule with FeedService and FeedController for managing RSS feed generation.
- Added CacheModule to handle caching of feed data, improving performance and reducing load.
- Implemented generateRSSFeed function to create RSS XML from photo manifest data.
- Enhanced static web service to include site metadata and configuration in the generated documents.
- Refactored existing modules to integrate new feed functionalities and ensure proper dependency management.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-08 17:05:09 +08:00
Innei
51f586705c feat: integrate site configuration and enhance photo navigation
- Added site configuration injection to the document for dynamic site settings.
- Updated photo navigation links to include the correct path structure.
- Introduced a new page for displaying individual photos with enhanced viewer functionality.
- Refactored various components to utilize the new site configuration and improve code organization.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-08 14:31:13 +08:00