Skip to content

Releases: keven1024/015

0.0.8.1

28 Oct 01:42

Choose a tag to compare

🚀 Improvements & Fixes

  • Removed default Docker environment variables; now the site.url configured in YAML takes effect correctly.
  • Fixed the About page MarkdownRender's class="max-w-full" display issue, ensuring correct rendering.

Full Changelog: 0.0.8...0.0.8.1

0.0.8

19 Oct 11:25

Choose a tag to compare

Release v0.0.8 - The Insight & Configuration Update

This release marks a significant step forward for 015, introducing a powerful new configuration system, a brand new "About" page with detailed analytics, and comprehensive internationalization. You now have more control than ever to customize your instance and gain deeper insights into its usage.


💥 Breaking Changes

  • Configuration System Overhaul: We have migrated from .env files to a single, powerful config.yaml. This allows for richer, nested configurations and easier management. You must migrate your existing .env variables to a new config.yaml file. Please refer to the new config.example.yaml to set up your instance.

✨ New Features

  • YAML Configuration (config.yaml): The new configuration system allows you to customize almost every aspect of your 015 instance, including site branding, "about" page content, share behavior, and storage limits.
  • New "About" Page: A dedicated page (/about) has been added to showcase your instance. It's fully customizable and includes:
    • Admin/owner information (avatar, name, email, URL).
    • Instance storage usage (current vs. maximum).
    • Custom, multi-language markdown content.
  • Enhanced Statistics & Analytics Engine:
    • The statistics system has been rebuilt from the ground up for efficiency and detail.
    • We now track daily metrics for file uploads, share creations, and downloads.
    • The "About" page features interactive charts displaying the last 30 days of activity for files, shares, downloads, and background tasks.
  • Dynamic Site Branding & SEO: You can now set your site's title, description, icon, and default background image directly from the config file. This information is used to automatically generate SEO meta tags for better discoverability.

🚀 Improvements & Fixes

  • Comprehensive Internationalization (i18n): Nearly all user-facing text is now translatable. We've added extensive new translation keys for a complete multilingual experience.
  • Smarter File Deletion: The background job for deleting expired files now waits for an additional "download window" period (configurable, defaults to 12 hours) before removal. This prevents files from being deleted while a user is actively downloading them near the expiration time.
  • UI Polish:
    • Added new foundational UI components like Accordion, Avatar, and DropdownMenu.
    • Improved styling for rendered markdown content.
    • Increased the width of drawers for a better user experience on larger screens.
  • Configurable Download Token Lifetime: The validity period for single-use download tokens is now configurable via share.download_window.

⚙️ Backend Changes

  • Added new API endpoints: /api/config for public site settings and /api/about for the about page data.
  • Refactored all environment variable access to use the new Viper-based configuration system.
  • Introduced a new Redis hash (015:stat) to efficiently store and retrieve daily aggregated statistics.
  • The API server port is now configurable via api.port.

0.0.7.1

28 Sep 03:04

Choose a tag to compare

Added

  • New Environment Variable: Introduced PASSWORD_SALT in .env.example to enhance password hashing security.
  • Documentation Screenshots: Added several new image assets (0.png, 3.png, 4.png, 5.png, 6.png) to .github/image/ for updated UI demonstrations in the READMEs.
  • Docker Compose Configuration: Included a new docker-compose.yml file to streamline development and deployment setup for the application, worker, and Redis.
  • Backend Test Files: Added backend/internal/utils/http_result_test.go and backend/internal/utils/password_test.go to improve test coverage for HTTP response handling and password utilities.
  • Frontend Visualization Components:
    • FileUploadBlockProgressView.vue: A new component for displaying upload progress as a series of blocks.
    • FileUploadHeatMapView.vue: A new component for a file upload heatmap visualization.
    • FileUploadSpeedInfoView.vue: A new component providing explanation on upload speed calculation.
    • Pixi.vue: A wrapper component for integrating PixiJS, likely for custom graphical visualizations.
  • Frontend Utility Functions: Included new helper functions in front/lib/:
    • asyncRetry.ts: For implementing retry logic in asynchronous operations.
    • asyncTimeout.ts: For setting timeouts on asynchronous operations.
    • getFileChunk.ts: To efficiently read file chunks.
    • getFileSize.ts: A utility to format file sizes into human-readable strings.
  • Frontend Type Definitions: A new file front/components/Preprocessing/types.ts to centralize type definitions for preprocessing components.
  • Development Page: Added front/pages/dev.vue for internal testing and showcasing frontend components.

Changed

  • Redis URL for Docker: Updated REDIS_URL in .env.example from redis://127.0.0.1:6379/0 to redis://redis:6379/0, aligning with Docker Compose service naming.
  • Documentation Structure and Content:
    • Renamed docs/README-zh.md to README-zh.md (moved to root).
    • Updated image paths in both README.md and README-zh.md to point to the new .github/image/ directory.
    • Added new descriptive text and a language toggle to the READMEs.
    • Updated Go version in the "Backend Tech Stack" section of the READMEs.
  • Dynamic File Chunking Logic: Modified backend/internal/controllers/file.go to implement a more adaptive chunk size calculation during file upload, starting at 0.25MB and doubling until the total number of chunks is below 1000.
  • Frontend Multi-file Handling:
    • front/components/Drawer/FileShareDrawer.vue and front/components/Field/FileUploadField.vue: Modified to accept and manage an array of File objects, enabling multiple file uploads simultaneously. FileUploadField now displays multiple file previews with individual removal options.
    • front/components/Result/FileShareResult.vue: Adjusted to display results for multiple shared files with a selection mechanism to view details for each.
    • front/composables/useMyAppShare.ts: The createFileShare function now processes and returns data for multiple files.
  • Frontend Global State Management: Refactored front/composables/useStore.ts to streamline how global state, particularly for drawers, is accessed and updated, moving from _get/_set methods to direct property access. GlobalDrawer.vue logic was adjusted accordingly.
  • UI Enhancements and Styling:
    • front/components/AboutChartTooltip.vue and front/components/FilePreviewView.vue: Now use the new getFileSize utility for consistent file size display.
    • front/components/FileIcon.vue: Added a class prop for custom styling and fine-tuned icon sizing.
    • front/components/MarkdownRender.vue and front/components/Tiptap.vue: Applied additional Tailwind CSS classes for improved typography and layout consistency (e.g., paragraph spacing, heading margins).
    • front/layouts/default.vue: Added a background gradient for better visual appeal.
  • PWA (serwist) Integration: The serwist PWA module registration in front/app.vue has been commented out.
  • Nuxt and Vite Configuration: front/nuxt.config.ts had vue3-pixi-nuxt added to modules and vite.optimizeDeps.include adjusted.

Removed

  • Old Documentation Images: Original image files in docs/image/ (0.png, 1.webp, 2.webp, 3.png, 4.png) were removed, some being replaced by new versions in the .github/image/ directory.

Technical Improvements

  • Dependency Upgrades (Go): Updated Go runtime from 1.23.1 to 1.24.3 across Dockerfile, backend/Dockerfile, and worker/Dockerfile. Numerous Go module dependencies in backend/go.mod and worker/go.mod were also upgraded (e.g., dario.cat/mergo, github.com/golang-jwt/jwt/v5, github.com/labstack/echo/v4, github.com/redis/go-redis/v9, github.com/samber/lo, github.com/spf13/viper, go.uber.org/zap, golang.org/x/crypto, golang.org/x/sys, google.golang.org/protobuf), indicating better performance, stability, and security.
  • Dependency Upgrades (Node.js/Frontend): Extensive updates to pnpm-lock.yaml reflect broad dependency upgrades across the frontend stack (e.g., @pinia/nuxt, @tailwindcss/postcss, @tanstack/vue-query, @tiptap/vue-3, motion-v, nuxt, pixi.js, reka-ui, tailwindcss, vite), bringing in the latest features, bug fixes, and security patches.
  • Improved Build Process: The Dockerfile updates to Go versions, along with new vue3-pixi-nuxt module and vite.optimizeDeps.include enhancements in front/nuxt.config.ts, all contribute to a more modern and potentially more efficient build ecosystem.
  • Enhanced Frontend Upload Flow: The major refactor of front/components/Home/File/FileUploadProgressView.vue with an internal task queue, granular chunk status, and different visualization modes (block progress, heatmap) represents a significant technical leap in managing concurrent, large-file uploads client-side.
  • Code Quality and Testability: The addition of backend test files and stricter type definitions in the frontend (via Preprocessing/types.ts) indicates a commitment to improving code reliability and maintainability.

Full Changelog: 0.0.7...0.0.7.1

0.0.6

07 Jul 16:17

Choose a tag to compare

Added

  • Security Enhancement: Added password hashing utility using argon2 for secure password storage
  • New Feature: Added PasswallShareDrawer component for password-protected file sharing
  • Backend Enhancement: Enhanced password handling in share and download controllers

Changed

  • Frontend: Updated GlobalDrawer component to use direct drawer reference for better performance
  • Frontend: Updated useStore to set key value to null instead of undefined for better state management
  • Frontend: Refactored file sharing logic to use downloadFileByShare for improved consistency
  • Frontend: Enhanced type safety in GlobalDrawer and PasswallShareDrawer components

Fixed

  • Frontend: Improved drawer management by adding onClose handler and refactoring drawer logic
  • Frontend: Refactored InputField component to improve attribute binding and reduce redundancy
  • Frontend: Enhanced error handling in file download components by refactoring error management
  • Frontend: Fixed various type safety issues and improved component reliability

Technical Improvements

  • Frontend: Better state management with null values instead of undefined
  • Frontend: Improved component architecture and type safety
  • Backend: Enhanced security with proper password hashing
  • Frontend: Better error handling and user experience improvements

Full Changelog: 0.0.5...0.0.6