562 Commits

Author SHA1 Message Date
Xudong Sun
e15d066e6d feat(rss): enhance rss feed with thumbnail and detailed exif info, and fix feed link (#169) 2025-11-25 16:31:27 +08:00
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
fc994edc1e feat: update README with SaaS details and self-hosting instructions
- Added a new section for getting started with the official SaaS, highlighting its benefits and ease of use.
- Expanded the self-hosting section to clarify requirements and provide a tip for users to consider the SaaS option.
- Included links to official documentation for further guidance on setup and advanced usage.
- Updated related links to reflect the official SaaS and documentation resources.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 22:49:56 +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
6b48fe7333 refactor: simplify FeaturedGalleriesService and remove TenantModule dependency
- Removed the TenantModule import from the FeaturedGalleriesModule, streamlining the module structure.
- Refactored the FeaturedGalleriesService to eliminate the TenantService dependency, enhancing service independence.
- Updated the logic in listFeaturedGalleries to calculate quality scores for tenants directly from the database, improving performance and clarity.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 22:04:49 +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
Innei
f7956c9a4e refactor: simplify domain verification logic and update localization
- Removed unnecessary parameters from the domain verification instructions in the CustomDomainCard component.
- Simplified the hostname normalization function by eliminating checks for server-side rendering.
- Updated localization strings to remove references to TXT token requirements for domain binding, streamlining the user experience.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 19:58:43 +08:00
Innei
0b51776899 chore: update Dockerfile to include curl and improve entrypoint permissions
- Added curl to the Dockerfile for enhanced functionality.
- Ensured the docker-entrypoint.sh script has executable permissions.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-24 18:53:50 +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
Innei
a56f6aac4e fix: dns cname
- Enhanced AGENTS.md to provide a more detailed description of the dashboard's design aesthetic, emphasizing a linear, data-first approach.
- Updated UI design guidelines in the dashboard to reflect a clearer description of the design principles, focusing on simplicity and clarity.
- Improved domain verification instructions in the CustomDomainCard and DomainListItem components, ensuring better user guidance for DNS setup.
- Added new localization keys for improved clarity in domain verification steps and UI elements.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-23 21:33:21 +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
f598add893 feat: enhance static asset handling and improve request processing
- Refactored StaticAssetService to remove unnecessary request options, simplifying the handleRequest method.
- Introduced resolveRequestHost method to streamline host resolution logic.
- Updated StaticBaseController and StaticShareController to align with the new request handling approach.
- Added I18nProvider to tenant missing and restricted entry points for improved localization support.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-23 00:09:28 +08:00
Innei
9095bb08c8 feat: add normalization helper functions and integrate into services
- Introduced new helper functions for string and date normalization, enhancing input validation across various services.
- Updated SiteSettingService and SystemSettingService to utilize the new normalization functions for improved data handling.
- Refactored existing code to replace custom normalization logic with the new helper methods, ensuring consistency and reducing redundancy.
- Enhanced localization files to support new error messages related to normalization.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-22 01:21:26 +08:00
Innei
f0678038c2 feat: implement managed storage plans and provider settings
- Added new UI schema for managing storage plans, including catalog, pricing, and product configurations.
- Introduced StoragePlanService to handle storage plan operations and integrate with existing billing services.
- Updated SuperAdmin settings to include managed storage provider configurations.
- Enhanced localization files with new keys for storage plan management.
- Implemented API endpoints for fetching and updating storage plans.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-21 16:23:13 +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
1835aff210 feat: update event handling to use async/await for improved reliability
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-20 23:51:30 +08:00
Innei
ac9f12b172 feat: enhance domain management UI with loading states and improved button styles
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-20 23:25:23 +08:00
Innei
2d7b4e316f feat: enhance tenant management with photo handling and UI improvements
- Added a new endpoint in SuperAdminTenantController to fetch tenant photos.
- Introduced TenantDetailModal for displaying tenant details and associated photos.
- Created TenantUsageCell component to visualize tenant usage metrics.
- Updated localization files to include new keys for tenant photo management.
- Enhanced SuperAdminTenantManager to support modal interactions for tenant details.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-20 22:59:04 +08:00
Innei
a1710924a8 feat: implement custom domain management for tenants
- Introduced a new TenantDomainRepository and TenantDomainService to handle domain-related operations.
- Added endpoints in TenantController for listing, requesting, verifying, and deleting custom domains.
- Implemented domain verification logic with CNAME and TXT record support.
- Enhanced UI components for domain management, including CustomDomainCard and DomainListItem.
- Updated localization files to include new keys for domain management features.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-20 20:54:12 +08:00
Innei
dc23b2868e feat: enhance storage provider management and localization support
- Added support for new storage providers including Backblaze B2 and GitHub.
- Introduced a new UI schema for storage provider configuration, allowing for better user experience.
- Updated localization files to include new keys for storage provider fields and usage metrics.
- Refactored existing storage provider logic to accommodate new categories and improve overall structure.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-20 00:16:46 +08:00
Innei
bc9c87d008 feat: b2 provider
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 21:11:47 +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
32dc0e661f refactor: remove Simple CORS implementation and related components
- Deleted SimpleCorsInterceptor, associated decorator, and helper functions to streamline CORS handling.
- Updated CorsMiddleware to use a simplified CORS configuration.
- Refactored StaticAssetController and StaticAssetService to remove references to the removed CORS functionality.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 15:36:19 +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
a75f76ea17 refactor: optimize Dockerfile build process
- Combined multiple build commands into a single RUN command using background execution and wait to improve build efficiency.
- Ensured that builds for @afilmory/web, @afilmory/dashboard, and core are executed concurrently.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 01:26:39 +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
23d208c091 feat: implement simple CORS support and enhance error handling
- Added SimpleCorsInterceptor to manage CORS headers for requests.
- Introduced AllowSimpleCors decorator for easy application of CORS settings on controllers and methods.
- Created helper function to apply CORS headers consistently across responses.
- Updated TenantController to utilize the new CORS functionality.
- Added COMMON_FORBIDDEN error code to improve error handling.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-19 01:04:39 +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
33b01e37ee feat(docker): add patches directory copy in Dockerfile
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 20:32:10 +08:00
Innei
737618b46b feat(i18n): implement internationalization for UI schema and settings
- Introduced UI schema internationalization support by adding translation functions for English and Chinese.
- Updated various controllers and services to accept language headers for localized responses.
- Created new locale files for UI schema in English and Chinese, enhancing user experience for diverse audiences.
- Refactored UI schema generation to utilize translation keys for dynamic content rendering.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 20:27:14 +08:00
Innei
efa5ade0da feat(static-assets): introduce StaticAssetHostService and enhance static asset handling and i18n
- Added StaticAssetHostService to manage static asset host resolution with caching.
- Updated StaticAssetService and StaticDashboardService to utilize the new static asset host resolver.
- Enhanced StaticWebController to pass request host information for improved asset handling.
- Refactored static asset interfaces to support new functionality.
- Integrated CORS headers and cache policies for better asset management.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 17:32:39 +08:00
Innei
c94a601f83 feat(i18n): enhance dashboard with internationalization support
- Integrated `useTranslation` from `react-i18next` across various components for localization.
- Updated navigation, settings, and photo management components to utilize translation keys for labels and descriptions.
- Refactored error messages and user prompts to support multiple languages.
- Improved user experience by ensuring all relevant text is translatable, enhancing accessibility for non-English users.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 14:38:02 +08:00